postgresql/src/include/commands
Alvaro Herrera 897795240c Enable CHECK constraints to be declared NOT VALID
This means that they can initially be added to a large existing table
without checking its initial contents, but new tuples must comply to
them; a separate pass invoked by ALTER TABLE / VALIDATE can verify
existing data and ensure it complies with the constraint, at which point
it is marked validated and becomes a normal part of the table ecosystem.

An non-validated CHECK constraint is ignored in the planner for
constraint_exclusion purposes; when validated, cached plans are
recomputed so that partitioning starts working right away.

This patch also enables domains to have unvalidated CHECK constraints
attached to them as well by way of ALTER DOMAIN / ADD CONSTRAINT / NOT
VALID, which can later be validated with ALTER DOMAIN / VALIDATE
CONSTRAINT.

Thanks to Thom Brown, Dean Rasheed and Jaime Casanova for the various
reviews, and Robert Hass for documentation wording improvement
suggestions.

This patch was sponsored by Enova Financial.
2011-06-30 11:24:31 -04:00
..
alter.h pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
async.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
cluster.h Make ALTER TABLE revalidate uniqueness and exclusion constraints. 2011-01-20 22:44:10 -05:00
collationcmds.h pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
comment.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
conversioncmds.h Core support for "extensions", which are packages of SQL objects. 2011-02-08 16:13:22 -05:00
copy.h pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
dbcommands.h pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
defrem.h pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
discard.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
explain.h pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
extension.h pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
lockcmds.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
portalcmds.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
prepare.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
proclang.h pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
schemacmds.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
seclabel.h pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
sequence.h Implement remaining fields of information_schema.sequences view 2011-01-02 15:15:21 +02:00
tablecmds.h Allow ALTER TABLE name {OF type | NOT OF}. 2011-04-20 21:38:47 -04:00
tablespace.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
trigger.h pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
typecmds.h Enable CHECK constraints to be declared NOT VALID 2011-06-30 11:24:31 -04:00
user.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
vacuum.h Fix VACUUM so that it always updates pg_class.reltuples/relpages. 2011-05-30 17:06:52 -04:00
variable.h Revise the API for GUC variable assign hooks. 2011-04-07 00:12:02 -04:00
view.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00