pgsql: Extend ALTER TABLE to allow Foreign Keys to be added without ini - Mailing list pgsql-committers

From Simon Riggs
Subject pgsql: Extend ALTER TABLE to allow Foreign Keys to be added without ini
Date
Msg-id E1Pmmc7-000194-GY@gemulon.postgresql.org
Whole thread Raw
Responses Re: pgsql: Extend ALTER TABLE to allow Foreign Keys to be added without ini  (Bernd Helmle <mailings@oopsware.de>)
List pgsql-committers
Extend ALTER TABLE to allow Foreign Keys to be added without initial validation.
FK constraints that are marked NOT VALID may later be VALIDATED, which uses an
ShareUpdateExclusiveLock on constraint table and RowShareLock on referenced
table. Significantly reduces lock strength and duration when adding FKs.
New state visible from psql.

Simon Riggs, with reviews from Marko Tiikkaja and Robert Haas

Branch
------
master

Details
-------
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=722bf7017bbe796decc79c1fde03e7a83dae9ada

Modified Files
--------------
doc/src/sgml/ref/alter_table.sgml         |   22 ++++++-
src/backend/catalog/heap.c                |    1 +
src/backend/catalog/index.c               |    1 +
src/backend/catalog/pg_constraint.c       |    2 +
src/backend/commands/tablecmds.c          |  105 +++++++++++++++++++++++++++--
src/backend/commands/trigger.c            |    1 +
src/backend/commands/typecmds.c           |    1 +
src/backend/parser/gram.y                 |   28 +++++++-
src/backend/utils/adt/ri_triggers.c       |    7 ++-
src/bin/psql/describe.c                   |    9 ++-
src/include/catalog/pg_constraint.h       |   40 ++++++-----
src/include/nodes/parsenodes.h            |    2 +
src/include/parser/kwlist.h               |    1 +
src/test/regress/expected/alter_table.out |   12 +++
src/test/regress/sql/alter_table.sql      |   15 ++++
15 files changed, 215 insertions(+), 32 deletions(-)


pgsql-committers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: pgsql: Fix copy-pasto in description of pg_serial, and silence compiler
Next
From: Simon Riggs
Date:
Subject: pgsql: Remove rare corner case for data loss when triggering standby se