Skip to content

"Cannot copy bound expression" random error #16959

@goosedb-net

Description

@goosedb-net

What happens?

In the test.ddb database,

FROM pg_catalog. pg_constraint c
INNER JOIN pg_catalog.pg_class t ON t.oid=c.conrelid limit 5;

If I do this sentence over and over again, I get random errors.

The test.ddb datafile is available for download below.
https://github.com/goosedb-net/goosedb-download/releases/download/test/test.tgz

STAGE$ cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.1 LTS (Noble Numbat)"
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=noble
LOGO=ubuntu-logo
(myenv) [goose@tnt-factory:/tmp/test]
STAGE$

#################################################################################################################################
# case 1
#################################################################################################################################

__STAGE__$ duckdb test.ddb 
v1.2.1 8e52ec4395
Enter ".help" for usage hints.
D SELECT c.oid,c.*,t.relname as tabrelname, case when c.contype='c' then substring(pg_get_constraintdef(c.oid), 7) else null end consrc_copy
  FROM pg_catalog.pg_constraint c
  INNER JOIN pg_catalog.pg_class t ON t.oid=c.conrelid limit 5;
┌───────────┬───────────┬──────────┬──────────────┬─────────┬───────────────┬─────────────┬───┬───────────┬───────────┬───────────┬─────────┬───────────────────┬─────────────┐
│    oid    │    oid    │ conname  │ connamespace │ contype │ condeferrable │ condeferred │ … │ conppeqop │ conffeqop │ conexclop │ conbin  │    tabrelname     │ consrc_copy │
│   int64   │   int64   │ varchar  │    int64     │ varchar │    boolean    │   boolean   │   │   int32   │   int32   │   int32   │ varchar │      varchar      │   varchar   │
├───────────┼───────────┼──────────┼──────────────┼─────────┼───────────────┼─────────────┼───┼───────────┼───────────┼───────────┼─────────┼───────────────────┼─────────────┤
│ 552000002 │ 552000002 │ NOT NULL │          550 │ x       │ false         │ false       │ … │      NULL │      NULL │      NULL │ NULL    │ postgres_type     │ NULL        │
│ 763000006 │ 763000006 │ NOT NULL │          548 │ x       │ false         │ false       │ … │      NULL │      NULL │      NULL │ NULL    │ example           │ NULL        │
│ 865000010 │ 865000010 │ NOT NULL │          548 │ x       │ false         │ false       │ … │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts1 │ NULL        │
│ 871000014 │ 871000014 │ NOT NULL │          548 │ x       │ false         │ false       │ … │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts2 │ NULL        │
│ 877000018 │ 877000018 │ NOT NULL │          548 │ x       │ false         │ false       │ … │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts3 │ NULL        │
├───────────┴───────────┴──────────┴──────────────┴─────────┴───────────────┴─────────────┴───┴───────────┴───────────┴───────────┴─────────┴───────────────────┴─────────────┤
│ 5 rows                                                                                                                                                28 columns (13 shown) │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
D SELECT c.oid,c.*,t.relname as tabrelname, case when c.contype='c' then substring(pg_get_constraintdef(c.oid), 7) else null end consrc_copy
  FROM pg_catalog.pg_constraint c
  INNER JOIN pg_catalog.pg_class t ON t.oid=c.conrelid limit 5;
┌───────────┬───────────┬──────────┬──────────────┬─────────┬───────────────┬─────────────┬───┬───────────┬───────────┬───────────┬─────────┬───────────────────┬─────────────┐
│    oid    │    oid    │ conname  │ connamespace │ contype │ condeferrable │ condeferred │ … │ conppeqop │ conffeqop │ conexclop │ conbin  │    tabrelname     │ consrc_copy │
│   int64   │   int64   │ varchar  │    int64     │ varchar │    boolean    │   boolean   │   │   int32   │   int32   │   int32   │ varchar │      varchar      │   varchar   │
├───────────┼───────────┼──────────┼──────────────┼─────────┼───────────────┼─────────────┼───┼───────────┼───────────┼───────────┼─────────┼───────────────────┼─────────────┤
│ 552000002 │ 552000002 │ NOT NULL │          550 │ x       │ false         │ false       │ … │      NULL │      NULL │      NULL │ NULL    │ postgres_type     │ NULL        │
│ 763000006 │ 763000006 │ NOT NULL │          548 │ x       │ false         │ false       │ … │      NULL │      NULL │      NULL │ NULL    │ example           │ NULL        │
│ 865000010 │ 865000010 │ NOT NULL │          548 │ x       │ false         │ false       │ … │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts1 │ NULL        │
│ 871000014 │ 871000014 │ NOT NULL │          548 │ x       │ false         │ false       │ … │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts2 │ NULL        │
│ 877000018 │ 877000018 │ NOT NULL │          548 │ x       │ false         │ false       │ … │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts3 │ NULL        │
├───────────┴───────────┴──────────┴──────────────┴─────────┴───────────────┴─────────────┴───┴───────────┴───────────┴───────────┴─────────┴───────────────────┴─────────────┤
│ 5 rows                                                                                                                                                28 columns (13 shown) │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
D SELECT c.oid,c.*,t.relname as tabrelname, case when c.contype='c' then substring(pg_get_constraintdef(c.oid), 7) else null end consrc_copy
  FROM pg_catalog.pg_constraint c
  INNER JOIN pg_catalog.pg_class t ON t.oid=c.conrelid limit 5;
┌───────────┬───────────┬──────────┬──────────────┬─────────┬───────────────┬─────────────┬───┬───────────┬───────────┬───────────┬─────────┬───────────────────┬─────────────┐
│    oid    │    oid    │ conname  │ connamespace │ contype │ condeferrable │ condeferred │ … │ conppeqop │ conffeqop │ conexclop │ conbin  │    tabrelname     │ consrc_copy │
│   int64   │   int64   │ varchar  │    int64     │ varchar │    boolean    │   boolean   │   │   int32   │   int32   │   int32   │ varchar │      varchar      │   varchar   │
├───────────┼───────────┼──────────┼──────────────┼─────────┼───────────────┼─────────────┼───┼───────────┼───────────┼───────────┼─────────┼───────────────────┼─────────────┤
│ 552000002 │ 552000002 │ NOT NULL │          550 │ x       │ false         │ false       │ … │      NULL │      NULL │      NULL │ NULL    │ postgres_type     │ NULL        │
│ 763000006 │ 763000006 │ NOT NULL │          548 │ x       │ false         │ false       │ … │      NULL │      NULL │      NULL │ NULL    │ example           │ NULL        │
│ 865000010 │ 865000010 │ NOT NULL │          548 │ x       │ false         │ false       │ … │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts1 │ NULL        │
│ 871000014 │ 871000014 │ NOT NULL │          548 │ x       │ false         │ false       │ … │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts2 │ NULL        │
│ 877000018 │ 877000018 │ NOT NULL │          548 │ x       │ false         │ false       │ … │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts3 │ NULL        │
├───────────┴───────────┴──────────┴──────────────┴─────────┴───────────────┴─────────────┴───┴───────────┴───────────┴───────────┴─────────┴───────────────────┴─────────────┤
│ 5 rows                                                                                                                                                28 columns (13 shown) │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
D SELECT c.oid,c.*,t.relname as tabrelname, case when c.contype='c' then substring(pg_get_constraintdef(c.oid), 7) else null end consrc_copy
  FROM pg_catalog.pg_constraint c
  INNER JOIN pg_catalog.pg_class t ON t.oid=c.conrelid limit 5;
Segmentation fault (core dumped)
(myenv) [goose@tnt-factory:/tmp/test]
__STAGE__$


#################################################################################################################################
# case 2
#################################################################################################################################

__STAGE__$ duckdb test.ddb 
v1.2.1 8e52ec4395
Enter ".help" for usage hints.
D SELECT c.oid,c.*,t.relname as tabrelname, case when c.contype='c' then substring(pg_get_constraintdef(c.oid), 7) else null end consrc_copy
    FROM pg_catalog.pg_constraint c
    INNER JOIN pg_catalog.pg_class t ON t.oid=c.conrelid limit 5;
Serialization Error:
Cannot copy bound expression
D 

__STAGE__$ 

#################################################################################################################################
# case 3
#################################################################################################################################


__STAGE__$ duckdb test.ddb 
v1.2.1 8e52ec4395
Enter ".help" for usage hints.
D SELECT c.oid,c.*,t.relname as tabrelname, case when c.contype='c' then substring(pg_get_constraintdef(c.oid), 7) else null end consrc_copy
      FROM pg_catalog.pg_constraint c
      INNER JOIN pg_catalog.pg_class t ON t.oid=c.conrelid limit 5;
┌───────────┬───────────┬──────────┬──────────────┬─────────┬───────────────┬─────────────┬──────────────┬───┬───────────┬───────────┬───────────┬───────────┬─────────┬───────────────────┬─────────────┐
│    oid    │    oid    │ conname  │ connamespace │ contype │ condeferrable │ condeferred │ convalidated │ … │ conpfeqop │ conppeqop │ conffeqop │ conexclop │ conbin  │    tabrelname     │ consrc_copy │
│   int64   │   int64   │ varchar  │    int64     │ varchar │    boolean    │   boolean   │   boolean    │   │   int32   │   int32   │   int32   │   int32   │ varchar │      varchar      │   varchar   │
├───────────┼───────────┼──────────┼──────────────┼─────────┼───────────────┼─────────────┼──────────────┼───┼───────────┼───────────┼───────────┼───────────┼─────────┼───────────────────┼─────────────┤
│ 552000002 │ 552000002 │ NOT NULL │          550 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ postgres_type     │ NULL        │
│ 763000006 │ 763000006 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ example           │ NULL        │
│ 865000010 │ 865000010 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts1 │ NULL        │
│ 871000014 │ 871000014 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts2 │ NULL        │
│ 877000018 │ 877000018 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts3 │ NULL        │
├───────────┴───────────┴──────────┴──────────────┴─────────┴───────────────┴─────────────┴──────────────┴───┴───────────┴───────────┴───────────┴───────────┴─────────┴───────────────────┴─────────────┤
│ 5 rows                                                                                                                                                                           28 columns (15 shown) │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
D SELECT c.oid,c.*,t.relname as tabrelname, case when c.contype='c' then substring(pg_get_constraintdef(c.oid), 7) else null end consrc_copy
      FROM pg_catalog.pg_constraint c
      INNER JOIN pg_catalog.pg_class t ON t.oid=c.conrelid limit 5;
┌───────────┬───────────┬──────────┬──────────────┬─────────┬───────────────┬─────────────┬──────────────┬───┬───────────┬───────────┬───────────┬───────────┬─────────┬───────────────────┬─────────────┐
│    oid    │    oid    │ conname  │ connamespace │ contype │ condeferrable │ condeferred │ convalidated │ … │ conpfeqop │ conppeqop │ conffeqop │ conexclop │ conbin  │    tabrelname     │ consrc_copy │
│   int64   │   int64   │ varchar  │    int64     │ varchar │    boolean    │   boolean   │   boolean    │   │   int32   │   int32   │   int32   │   int32   │ varchar │      varchar      │   varchar   │
├───────────┼───────────┼──────────┼──────────────┼─────────┼───────────────┼─────────────┼──────────────┼───┼───────────┼───────────┼───────────┼───────────┼─────────┼───────────────────┼─────────────┤
│ 552000002 │ 552000002 │ NOT NULL │          550 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ postgres_type     │ NULL        │
│ 763000006 │ 763000006 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ example           │ NULL        │
│ 865000010 │ 865000010 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts1 │ NULL        │
│ 871000014 │ 871000014 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts2 │ NULL        │
│ 877000018 │ 877000018 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts3 │ NULL        │
├───────────┴───────────┴──────────┴──────────────┴─────────┴───────────────┴─────────────┴──────────────┴───┴───────────┴───────────┴───────────┴───────────┴─────────┴───────────────────┴─────────────┤
│ 5 rows                                                                                                                                                                           28 columns (15 shown) │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
D SELECT c.oid,c.*,t.relname as tabrelname, case when c.contype='c' then substring(pg_get_constraintdef(c.oid), 7) else null end consrc_copy
      FROM pg_catalog.pg_constraint c
      INNER JOIN pg_catalog.pg_class t ON t.oid=c.conrelid limit 5;
┌───────────┬───────────┬──────────┬──────────────┬─────────┬───────────────┬─────────────┬──────────────┬───┬───────────┬───────────┬───────────┬───────────┬─────────┬───────────────────┬─────────────┐
│    oid    │    oid    │ conname  │ connamespace │ contype │ condeferrable │ condeferred │ convalidated │ … │ conpfeqop │ conppeqop │ conffeqop │ conexclop │ conbin  │    tabrelname     │ consrc_copy │
│   int64   │   int64   │ varchar  │    int64     │ varchar │    boolean    │   boolean   │   boolean    │   │   int32   │   int32   │   int32   │   int32   │ varchar │      varchar      │   varchar   │
├───────────┼───────────┼──────────┼──────────────┼─────────┼───────────────┼─────────────┼──────────────┼───┼───────────┼───────────┼───────────┼───────────┼─────────┼───────────────────┼─────────────┤
│ 552000002 │ 552000002 │ NOT NULL │          550 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ postgres_type     │ NULL        │
│ 763000006 │ 763000006 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ example           │ NULL        │
│ 865000010 │ 865000010 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts1 │ NULL        │
│ 871000014 │ 871000014 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts2 │ NULL        │
│ 877000018 │ 877000018 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts3 │ NULL        │
├───────────┴───────────┴──────────┴──────────────┴─────────┴───────────────┴─────────────┴──────────────┴───┴───────────┴───────────┴───────────┴───────────┴─────────┴───────────────────┴─────────────┤
│ 5 rows                                                                                                                                                                           28 columns (15 shown) │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
D SELECT c.oid,c.*,t.relname as tabrelname, case when c.contype='c' then substring(pg_get_constraintdef(c.oid), 7) else null end consrc_copy
      FROM pg_catalog.pg_constraint c
      INNER JOIN pg_catalog.pg_class t ON t.oid=c.conrelid limit 5;
┌───────────┬───────────┬──────────┬──────────────┬─────────┬───────────────┬─────────────┬──────────────┬───┬───────────┬───────────┬───────────┬───────────┬─────────┬───────────────────┬─────────────┐
│    oid    │    oid    │ conname  │ connamespace │ contype │ condeferrable │ condeferred │ convalidated │ … │ conpfeqop │ conppeqop │ conffeqop │ conexclop │ conbin  │    tabrelname     │ consrc_copy │
│   int64   │   int64   │ varchar  │    int64     │ varchar │    boolean    │   boolean   │   boolean    │   │   int32   │   int32   │   int32   │   int32   │ varchar │      varchar      │   varchar   │
├───────────┼───────────┼──────────┼──────────────┼─────────┼───────────────┼─────────────┼──────────────┼───┼───────────┼───────────┼───────────┼───────────┼─────────┼───────────────────┼─────────────┤
│ 552000002 │ 552000002 │ NOT NULL │          550 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ postgres_type     │ NULL        │
│ 763000006 │ 763000006 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ example           │ NULL        │
│ 865000010 │ 865000010 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts1 │ NULL        │
│ 871000014 │ 871000014 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts2 │ NULL        │
│ 877000018 │ 877000018 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts3 │ NULL        │
├───────────┴───────────┴──────────┴──────────────┴─────────┴───────────────┴─────────────┴──────────────┴───┴───────────┴───────────┴───────────┴───────────┴─────────┴───────────────────┴─────────────┤
│ 5 rows                                                                                                                                                                           28 columns (15 shown) │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
D SELECT c.oid,c.*,t.relname as tabrelname, case when c.contype='c' then substring(pg_get_constraintdef(c.oid), 7) else null end consrc_copy
      FROM pg_catalog.pg_constraint c
      INNER JOIN pg_catalog.pg_class t ON t.oid=c.conrelid limit 5;
┌───────────┬───────────┬──────────┬──────────────┬─────────┬───────────────┬─────────────┬──────────────┬───┬───────────┬───────────┬───────────┬───────────┬─────────┬───────────────────┬─────────────┐
│    oid    │    oid    │ conname  │ connamespace │ contype │ condeferrable │ condeferred │ convalidated │ … │ conpfeqop │ conppeqop │ conffeqop │ conexclop │ conbin  │    tabrelname     │ consrc_copy │
│   int64   │   int64   │ varchar  │    int64     │ varchar │    boolean    │   boolean   │   boolean    │   │   int32   │   int32   │   int32   │   int32   │ varchar │      varchar      │   varchar   │
├───────────┼───────────┼──────────┼──────────────┼─────────┼───────────────┼─────────────┼──────────────┼───┼───────────┼───────────┼───────────┼───────────┼─────────┼───────────────────┼─────────────┤
│ 552000002 │ 552000002 │ NOT NULL │          550 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ postgres_type     │ NULL        │
│ 763000006 │ 763000006 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ example           │ NULL        │
│ 865000010 │ 865000010 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts1 │ NULL        │
│ 871000014 │ 871000014 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts2 │ NULL        │
│ 877000018 │ 877000018 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts3 │ NULL        │
├───────────┴───────────┴──────────┴──────────────┴─────────┴───────────────┴─────────────┴──────────────┴───┴───────────┴───────────┴───────────┴───────────┴─────────┴───────────────────┴─────────────┤
│ 5 rows                                                                                                                                                                           28 columns (15 shown) │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
D SELECT c.oid,c.*,t.relname as tabrelname, case when c.contype='c' then substring(pg_get_constraintdef(c.oid), 7) else null end consrc_copy
      FROM pg_catalog.pg_constraint c
      INNER JOIN pg_catalog.pg_class t ON t.oid=c.conrelid limit 5;
┌───────────┬───────────┬──────────┬──────────────┬─────────┬───────────────┬─────────────┬──────────────┬───┬───────────┬───────────┬───────────┬───────────┬─────────┬───────────────────┬─────────────┐
│    oid    │    oid    │ conname  │ connamespace │ contype │ condeferrable │ condeferred │ convalidated │ … │ conpfeqop │ conppeqop │ conffeqop │ conexclop │ conbin  │    tabrelname     │ consrc_copy │
│   int64   │   int64   │ varchar  │    int64     │ varchar │    boolean    │   boolean   │   boolean    │   │   int32   │   int32   │   int32   │   int32   │ varchar │      varchar      │   varchar   │
├───────────┼───────────┼──────────┼──────────────┼─────────┼───────────────┼─────────────┼──────────────┼───┼───────────┼───────────┼───────────┼───────────┼─────────┼───────────────────┼─────────────┤
│ 552000002 │ 552000002 │ NOT NULL │          550 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ postgres_type     │ NULL        │
│ 763000006 │ 763000006 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ example           │ NULL        │
│ 865000010 │ 865000010 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts1 │ NULL        │
│ 871000014 │ 871000014 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts2 │ NULL        │
│ 877000018 │ 877000018 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts3 │ NULL        │
├───────────┴───────────┴──────────┴──────────────┴─────────┴───────────────┴─────────────┴──────────────┴───┴───────────┴───────────┴───────────┴───────────┴─────────┴───────────────────┴─────────────┤
│ 5 rows                                                                                                                                                                           28 columns (15 shown) │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
D SELECT c.oid,c.*,t.relname as tabrelname, case when c.contype='c' then substring(pg_get_constraintdef(c.oid), 7) else null end consrc_copy
      FROM pg_catalog.pg_constraint c
      INNER JOIN pg_catalog.pg_class t ON t.oid=c.conrelid limit 5;
Serialization Error:
Cannot copy bound expression
D 


#################################################################################################################################
# case 4
#################################################################################################################################

__STAGE__$ duckdb test.ddb 
v1.2.1 8e52ec4395
Enter ".help" for usage hints.
D SELECT c.oid,c.*,t.relname as tabrelname, case when c.contype='c' then substring(pg_get_constraintdef(c.oid), 7) else null end consrc_copy
    FROM pg_catalog.pg_constraint c
    INNER JOIN pg_catalog.pg_class t ON t.oid=c.conrelid limit 5;
┌───────────┬───────────┬──────────┬──────────────┬─────────┬───────────────┬─────────────┬──────────────┬───┬───────────┬───────────┬───────────┬───────────┬─────────┬───────────────────┬─────────────┐
│    oid    │    oid    │ conname  │ connamespace │ contype │ condeferrable │ condeferred │ convalidated │ … │ conpfeqop │ conppeqop │ conffeqop │ conexclop │ conbin  │    tabrelname     │ consrc_copy │
│   int64   │   int64   │ varchar  │    int64     │ varchar │    boolean    │   boolean   │   boolean    │   │   int32   │   int32   │   int32   │   int32   │ varchar │      varchar      │   varchar   │
├───────────┼───────────┼──────────┼──────────────┼─────────┼───────────────┼─────────────┼──────────────┼───┼───────────┼───────────┼───────────┼───────────┼─────────┼───────────────────┼─────────────┤
│ 593000003 │ 593000003 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ example           │ NULL        │
│ 695000007 │ 695000007 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts1 │ NULL        │
│ 701000011 │ 701000011 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts2 │ NULL        │
│ 707000015 │ 707000015 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts3 │ NULL        │
│ 713000016 │ 713000016 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ pgbench_branches  │ NULL        │
├───────────┴───────────┴──────────┴──────────────┴─────────┴───────────────┴─────────────┴──────────────┴───┴───────────┴───────────┴───────────┴───────────┴─────────┴───────────────────┴─────────────┤
│ 5 rows                                                                                                                                                                           28 columns (15 shown) │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
D SELECT c.oid,c.*,t.relname as tabrelname, case when c.contype='c' then substring(pg_get_constraintdef(c.oid), 7) else null end consrc_copy
    FROM pg_catalog.pg_constraint c
    INNER JOIN pg_catalog.pg_class t ON t.oid=c.conrelid limit 5;
Serialization Error:
Cannot copy bound expression
D SELECT c.oid,c.*,t.relname as tabrelname, case when c.contype='c' then substring(pg_get_constraintdef(c.oid), 7) else null end consrc_copy
    FROM pg_catalog.pg_constraint c
    INNER JOIN pg_catalog.pg_class t ON t.oid=c.conrelid limit 5;
Serialization Error:
Cannot copy bound expression
D SELECT c.oid,c.*,t.relname as tabrelname, case when c.contype='c' then substring(pg_get_constraintdef(c.oid), 7) else null end consrc_copy
    FROM pg_catalog.pg_constraint c
    INNER JOIN pg_catalog.pg_class t ON t.oid=c.conrelid limit 5;
┌───────────┬───────────┬──────────┬──────────────┬─────────┬───────────────┬─────────────┬──────────────┬───┬───────────┬───────────┬───────────┬───────────┬─────────┬───────────────────┬─────────────┐
│    oid    │    oid    │ conname  │ connamespace │ contype │ condeferrable │ condeferred │ convalidated │ … │ conpfeqop │ conppeqop │ conffeqop │ conexclop │ conbin  │    tabrelname     │ consrc_copy │
│   int64   │   int64   │ varchar  │    int64     │ varchar │    boolean    │   boolean   │   boolean    │   │   int32   │   int32   │   int32   │   int32   │ varchar │      varchar      │   varchar   │
├───────────┼───────────┼──────────┼──────────────┼─────────┼───────────────┼─────────────┼──────────────┼───┼───────────┼───────────┼───────────┼───────────┼─────────┼───────────────────┼─────────────┤
│ 593000003 │ 593000003 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ example           │ NULL        │
│ 695000007 │ 695000007 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts1 │ NULL        │
│ 701000011 │ 701000011 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts2 │ NULL        │
│ 707000015 │ 707000015 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ pgbench_accounts3 │ NULL        │
│ 713000016 │ 713000016 │ NOT NULL │          548 │ x       │ false         │ false       │ true         │ … │      NULL │      NULL │      NULL │      NULL │ NULL    │ pgbench_branches  │ NULL        │
├───────────┴───────────┴──────────┴──────────────┴─────────┴───────────────┴─────────────┴──────────────┴───┴───────────┴───────────┴───────────┴───────────┴─────────┴───────────────────┴─────────────┤
│ 5 rows                                                                                                                                                                           28 columns (15 shown) │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
D SELECT c.oid,c.*,t.relname as tabrelname, case when c.contype='c' then substring(pg_get_constraintdef(c.oid), 7) else null end consrc_copy
    FROM pg_catalog.pg_constraint c
    INNER JOIN pg_catalog.pg_class t ON t.oid=c.conrelid limit 5;

To Reproduce

in test.ddb database,

"SELECT c.oid,c.*,t.relname as tabrelname, case when c.contype='c' then substring(pg_get_constraintdef(c.oid), 7) else null end consrc_copy
FROM pg_catalog. pg_constraint c
INNER JOIN pg_catalog.pg_class t ON t.oid=c.conrelid limit 5;"

If I do this sentence over and over again, I get random errors.

OS:

Ubuntu 24.04.1 LTS

DuckDB Version:

1.2.1

DuckDB Client:

cli

Hardware:

8core 16gb

Full Name:

SeongSik

Affiliation:

OraScope

What is the latest build you tested with? If possible, we recommend testing with the latest nightly build.

I have tested with a stable release

Did you include all relevant data sets for reproducing the issue?

Yes

Did you include all code required to reproduce the issue?

  • Yes, I have

Did you include all relevant configuration (e.g., CPU architecture, Python version, Linux distribution) to reproduce the issue?

  • Yes, I have

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions