pgsql: Fix handling of partition bounds for boolean partitioning column

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Fix handling of partition bounds for boolean partitioning column
Date: 2018-04-23 19:29:25
Message-ID: E1fAh9R-0000d5-Fx@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix handling of partition bounds for boolean partitioning columns.

Previously, you could partition by a boolean column as long as you
spelled the bound values as string literals, for instance FOR VALUES
IN ('t'). The trouble with this is that ruleutils.c printed that as
FOR VALUES IN (TRUE), which is reasonable syntax but wasn't accepted by
the grammar. That results in dump-and-reload failures for such cases.

Apply a minimal fix that just causes TRUE and FALSE to be converted to
strings 'true' and 'false'. This is pretty grotty, but it's too late for
a more principled fix in v11 (to say nothing of v10). We should revisit
the whole issue of how partition bound values are parsed for v12.

Amit Langote

Discussion: https://postgr.es/m/e05c5162-1103-7e37-d1ab-6de3e0afaf70@lab.ntt.co.jp

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/4df58f7ed7f9ddc5a3196fcbad35690d1b3218de

Modified Files
--------------
doc/src/sgml/ref/alter_table.sgml | 6 +++---
doc/src/sgml/ref/create_table.sgml | 6 +++---
src/backend/parser/gram.y | 2 ++
src/test/regress/expected/create_table.out | 14 ++++++++++++++
src/test/regress/sql/create_table.sql | 7 +++++++
5 files changed, 29 insertions(+), 6 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Alvaro Herrera 2018-04-23 20:59:43 pgsql: Add GUC enable_partition_pruning
Previous Message Peter Eisentraut 2018-04-23 18:22:58 pgsql: Fix typo in logical truncate replication