Add exclusion constraints, which generalize the concept of uniqueness to
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 7 Dec 2009 05:22:23 +0000 (05:22 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 7 Dec 2009 05:22:23 +0000 (05:22 +0000)
commit0cb65564e5f855b1e9aa145fd645352130f74646
treebadcc3ee73a16d472f9e637246589d6b803e620f
parent8de7472b45859108761223fb19b396efaa8f0a4d
Add exclusion constraints, which generalize the concept of uniqueness to
support any indexable commutative operator, not just equality.  Two rows
violate the exclusion constraint if "row1.col OP row2.col" is TRUE for
each of the columns in the constraint.

Jeff Davis, reviewed by Robert Haas
43 files changed:
doc/src/sgml/catalogs.sgml
doc/src/sgml/errcodes.sgml
doc/src/sgml/ref/create_table.sgml
src/backend/access/index/genam.c
src/backend/bootstrap/bootparse.y
src/backend/bootstrap/bootstrap.c
src/backend/catalog/heap.c
src/backend/catalog/index.c
src/backend/catalog/indexing.c
src/backend/catalog/information_schema.sql
src/backend/catalog/pg_constraint.c
src/backend/catalog/toasting.c
src/backend/commands/constraint.c
src/backend/commands/indexcmds.c
src/backend/commands/tablecmds.c
src/backend/commands/typecmds.c
src/backend/commands/vacuum.c
src/backend/executor/execUtils.c
src/backend/nodes/copyfuncs.c
src/backend/nodes/equalfuncs.c
src/backend/nodes/outfuncs.c
src/backend/parser/gram.y
src/backend/parser/parse_utilcmd.c
src/backend/tcop/utility.c
src/backend/utils/adt/ruleutils.c
src/backend/utils/cache/relcache.c
src/bin/pg_dump/pg_dump.c
src/bin/psql/describe.c
src/include/catalog/catversion.h
src/include/catalog/pg_attribute.h
src/include/catalog/pg_class.h
src/include/catalog/pg_constraint.h
src/include/commands/defrem.h
src/include/executor/executor.h
src/include/nodes/execnodes.h
src/include/nodes/parsenodes.h
src/include/parser/kwlist.h
src/include/utils/errcodes.h
src/include/utils/rel.h
src/include/utils/relcache.h
src/pl/plpgsql/src/plerrcodes.h
src/test/regress/input/constraints.source
src/test/regress/output/constraints.source