Quite simply: d1=# create table bp (b bool) partition by list(b); CREATE TABLE d1=# create table bp_f partition of bp for values in('f'); CREATE TABLE d1=# \q $ createdb d2 $ pg_dump d1 | psql d2
... ERROR: syntax error at or near "false" LINE 2: FOR VALUES IN (false); ^ ERROR: relation "public.bp_f" does not exist ERROR: relation "public.bp_f" does not exist invalid command \. I understand there's a thread [1] which is discussing making this valid syntax, but on skimming it, there's no mention of any bugs. I'd thought about something like the attached patch (against master) to fix, but that leaves pg_dumps that have already been taken a bit out in the cold, so perhaps we need to think harder about allowing this syntax. Thoughts? This was noticed by Jesper Pedersen in [2], but I've diagnosed this as an existing bug rather than a bug in the patch that thread relates to. [1] https://www.postgresql.org/message-id/flat/e05c5162-1103-7e37-d1ab-6de3e0afa...@lab.ntt.co.jp#e05c5162-1103-7e37-d1ab-6de3e0afa...@lab.ntt.co.jp [2] https://www.postgresql.org/message-id/c3eb3284-24c8-eff0-f930-a33984d11...@redhat.com -- David Rowley http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
very_minimal_bool_partition_syntax_fix.patch
Description: Binary data