Add temporal PRIMARY KEY and UNIQUE constraints Add WITHOUT OVERLAPS clause to PRIMARY KEY and UNIQUE constraints. These are backed by GiST indexes instead of B-tree indexes, since they are essentially exclusion constraints with = for the scalar parts of the key and && for the temporal part. Author: Paul A. Jungwirth <pj@illuminatedcomputing.com> Reviewed-by: Peter Eisentraut <peter@eisentraut.org> Reviewed-by: jian he <jian.universality@gmail.com> Discussion: https://www.postgresql.org/message-id/flat/CA+renyUApHgSZF9-nd-a0+OPGharLQLO=mDHcY4_qQ0+noCUVg@mail.gmail.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/46a0cd4cefb4d9b462d8cc4df5e7ecdd190bea92 Modified Files -------------- contrib/btree_gist/Makefile | 2 +- contrib/btree_gist/expected/without_overlaps.out | 44 +++ contrib/btree_gist/meson.build | 1 + contrib/btree_gist/sql/without_overlaps.sql | 25 ++ doc/src/sgml/catalogs.sgml | 10 + doc/src/sgml/gist.sgml | 14 +- doc/src/sgml/ref/create_table.sgml | 45 ++- src/backend/access/gist/gistutil.c | 29 ++ src/backend/catalog/heap.c | 2 + src/backend/catalog/index.c | 4 + src/backend/catalog/pg_constraint.c | 2 + src/backend/commands/indexcmds.c | 143 +++++++- src/backend/commands/tablecmds.c | 6 +- src/backend/commands/trigger.c | 1 + src/backend/commands/typecmds.c | 1 + src/backend/nodes/outfuncs.c | 2 + src/backend/nodes/readfuncs.c | 2 + src/backend/parser/gram.y | 29 +- src/backend/parser/parse_utilcmd.c | 28 +- src/backend/utils/adt/ruleutils.c | 2 + src/backend/utils/cache/relcache.c | 18 +- src/bin/pg_dump/pg_dump.c | 16 +- src/bin/pg_dump/pg_dump.h | 2 + src/bin/pg_dump/t/002_pg_dump.pl | 36 +++ src/bin/psql/describe.c | 12 +- src/include/access/gist.h | 3 + src/include/catalog/catversion.h | 2 +- src/include/catalog/index.h | 1 + src/include/catalog/pg_constraint.h | 10 +- src/include/commands/defrem.h | 6 +- src/include/nodes/parsenodes.h | 2 + src/test/regress/expected/without_overlaps.out | 395 +++++++++++++++++++++++ src/test/regress/parallel_schedule | 2 +- src/test/regress/sql/without_overlaps.sql | 290 +++++++++++++++++ 34 files changed, 1135 insertions(+), 52 deletions(-)
pgsql-committers by date:
Соглашаюсь с условиями обработки персональных данных