pgsql: Allow some exclusion constraints on partitions

Started by Peter Eisentrautabout 3 years ago1 messagescomitters
Jump to latest
#1Peter Eisentraut
peter_e@gmx.net

Allow some exclusion constraints on partitions

Previously we only allowed unique B-tree constraints on partitions
(and only if the constraint included all the partition keys). But we
could allow exclusion constraints with the same restriction. We also
require that those columns be compared for equality, not something
like &&.

Author: Paul A. Jungwirth <pj@illuminatedcomputing.com>
Reviewed-by: Ronan Dunklau <ronan.dunklau@aiven.io>
Reviewed-by: Peter Eisentraut <peter@eisentraut.org>
Discussion: /messages/by-id/ec8b1d9b-502e-d1f8-e909-1bf9dffe6fa5@illuminatedcomputing.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/8c852ba9a4347c4778cc610ad5a9cb50ea701b5c

Modified Files
--------------
contrib/btree_gist/Makefile | 2 +-
contrib/btree_gist/expected/partitions.out | 82 ++++++++++++++++++++++++++++++
contrib/btree_gist/meson.build | 1 +
contrib/btree_gist/sql/partitions.sql | 39 ++++++++++++++
doc/src/sgml/ddl.sgml | 12 +++--
src/backend/commands/indexcmds.c | 59 +++++++++++++--------
src/backend/parser/parse_utilcmd.c | 6 ---
src/test/regress/expected/alter_table.out | 7 +--
src/test/regress/expected/create_table.out | 8 ---
src/test/regress/expected/indexing.out | 73 ++++++++++++++++++++++----
src/test/regress/sql/alter_table.sql | 5 +-
src/test/regress/sql/create_table.sql | 6 ---
src/test/regress/sql/indexing.sql | 57 +++++++++++++++++++--
13 files changed, 284 insertions(+), 73 deletions(-)