pgsql: Add exclusion constraints, which generalize the concept of

From: tgl(at)postgresql(dot)org (Tom Lane)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Add exclusion constraints, which generalize the concept of
Date: 2009-12-07 05:22:23
Message-ID: 20091207052223.D838D753FB7@cvs.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Log Message:
-----------
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

Modified Files:
--------------
pgsql/doc/src/sgml:
catalogs.sgml (r2.211 -> r2.212)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/catalogs.sgml?r1=2.211&r2=2.212)
errcodes.sgml (r1.27 -> r1.28)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/errcodes.sgml?r1=1.27&r2=1.28)
pgsql/doc/src/sgml/ref:
create_table.sgml (r1.119 -> r1.120)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/ref/create_table.sgml?r1=1.119&r2=1.120)
pgsql/src/backend/access/index:
genam.c (r1.76 -> r1.77)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/index/genam.c?r1=1.76&r2=1.77)
pgsql/src/backend/bootstrap:
bootparse.y (r1.100 -> r1.101)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/bootstrap/bootparse.y?r1=1.100&r2=1.101)
bootstrap.c (r1.253 -> r1.254)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/bootstrap/bootstrap.c?r1=1.253&r2=1.254)
pgsql/src/backend/catalog:
heap.c (r1.360 -> r1.361)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/heap.c?r1=1.360&r2=1.361)
index.c (r1.324 -> r1.325)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/index.c?r1=1.324&r2=1.325)
indexing.c (r1.118 -> r1.119)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/indexing.c?r1=1.118&r2=1.119)
information_schema.sql (r1.59 -> r1.60)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/information_schema.sql?r1=1.59&r2=1.60)
pg_constraint.c (r1.49 -> r1.50)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/pg_constraint.c?r1=1.49&r2=1.50)
toasting.c (r1.20 -> r1.21)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/toasting.c?r1=1.20&r2=1.21)
pgsql/src/backend/commands:
constraint.c (r1.1 -> r1.2)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/constraint.c?r1=1.1&r2=1.2)
indexcmds.c (r1.187 -> r1.188)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/indexcmds.c?r1=1.187&r2=1.188)
tablecmds.c (r1.306 -> r1.307)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/tablecmds.c?r1=1.306&r2=1.307)
typecmds.c (r1.138 -> r1.139)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/typecmds.c?r1=1.138&r2=1.139)
vacuum.c (r1.396 -> r1.397)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/vacuum.c?r1=1.396&r2=1.397)
pgsql/src/backend/executor:
execUtils.c (r1.166 -> r1.167)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/execUtils.c?r1=1.166&r2=1.167)
pgsql/src/backend/nodes:
copyfuncs.c (r1.452 -> r1.453)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/copyfuncs.c?r1=1.452&r2=1.453)
equalfuncs.c (r1.374 -> r1.375)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/equalfuncs.c?r1=1.374&r2=1.375)
outfuncs.c (r1.373 -> r1.374)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/outfuncs.c?r1=1.373&r2=1.374)
pgsql/src/backend/parser:
gram.y (r2.694 -> r2.695)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/gram.y?r1=2.694&r2=2.695)
parse_utilcmd.c (r2.30 -> r2.31)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_utilcmd.c?r1=2.30&r2=2.31)
pgsql/src/backend/tcop:
utility.c (r1.320 -> r1.321)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/tcop/utility.c?r1=1.320&r2=1.321)
pgsql/src/backend/utils/adt:
ruleutils.c (r1.315 -> r1.316)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/ruleutils.c?r1=1.315&r2=1.316)
pgsql/src/backend/utils/cache:
relcache.c (r1.292 -> r1.293)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/cache/relcache.c?r1=1.292&r2=1.293)
pgsql/src/bin/pg_dump:
pg_dump.c (r1.553 -> r1.554)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/bin/pg_dump/pg_dump.c?r1=1.553&r2=1.554)
pgsql/src/bin/psql:
describe.c (r1.231 -> r1.232)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/bin/psql/describe.c?r1=1.231&r2=1.232)
pgsql/src/include/catalog:
catversion.h (r1.555 -> r1.556)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/catversion.h?r1=1.555&r2=1.556)
pg_attribute.h (r1.154 -> r1.155)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_attribute.h?r1=1.154&r2=1.155)
pg_class.h (r1.116 -> r1.117)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_class.h?r1=1.116&r2=1.117)
pg_constraint.h (r1.33 -> r1.34)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_constraint.h?r1=1.33&r2=1.34)
pgsql/src/include/commands:
defrem.h (r1.97 -> r1.98)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/commands/defrem.h?r1=1.97&r2=1.98)
pgsql/src/include/executor:
executor.h (r1.163 -> r1.164)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/executor.h?r1=1.163&r2=1.164)
pgsql/src/include/nodes:
execnodes.h (r1.212 -> r1.213)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/execnodes.h?r1=1.212&r2=1.213)
parsenodes.h (r1.416 -> r1.417)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/parsenodes.h?r1=1.416&r2=1.417)
pgsql/src/include/parser:
kwlist.h (r1.6 -> r1.7)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/parser/kwlist.h?r1=1.6&r2=1.7)
pgsql/src/include/utils:
errcodes.h (r1.29 -> r1.30)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/utils/errcodes.h?r1=1.29&r2=1.30)
rel.h (r1.116 -> r1.117)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/utils/rel.h?r1=1.116&r2=1.117)
relcache.h (r1.64 -> r1.65)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/utils/relcache.h?r1=1.64&r2=1.65)
pgsql/src/pl/plpgsql/src:
plerrcodes.h (r1.18 -> r1.19)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpgsql/src/plerrcodes.h?r1=1.18&r2=1.19)
pgsql/src/test/regress/input:
constraints.source (r1.13 -> r1.14)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/input/constraints.source?r1=1.13&r2=1.14)
pgsql/src/test/regress/output:
constraints.source (r1.45 -> r1.46)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/output/constraints.source?r1=1.45&r2=1.46)

Browse pgsql-committers by date

  From Date Subject
Next Message Magnus Hagander 2009-12-07 19:19:56 pgsql: Update CVS documentation to be more current and add documentation
Previous Message Tom Lane 2009-12-06 02:55:55 pgsql: Don't use a duplicate OID for aclexplode().