pgsql: Add temporal PRIMARY KEY and UNIQUE constraints

Поиск
Список
Период
Сортировка
От Peter Eisentraut
Тема pgsql: Add temporal PRIMARY KEY and UNIQUE constraints
Дата
Msg-id E1rSfPB-002tu6-5W@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
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 по дате отправления:

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: pgsql: Improve notation of BuiltinTrancheNames
Следующее
От: Alexander Korotkov
Дата:
Сообщение: pgsql: Rename index "abc" in aggregates.sql