From b577a57d4113bcbd1a7900b78b3e41df528c9a35 Mon Sep 17 00:00:00 2001 From: Simon Riggs Date: Mon, 24 Jun 2013 20:07:41 +0100 Subject: ALTER TABLE ... ALTER CONSTRAINT for FKs Allow constraint attributes to be altered, so the default setting of NOT DEFERRABLE can be altered to DEFERRABLE and back. Review by Abhijit Menon-Sen --- src/backend/parser/gram.y | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/backend/parser') diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 50942267500..5e7db52cebc 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -1941,6 +1941,21 @@ alter_table_cmd: n->def = $2; $$ = (Node *)n; } + /* ALTER TABLE ALTER CONSTRAINT ... */ + | ALTER CONSTRAINT name ConstraintAttributeSpec + { + AlterTableCmd *n = makeNode(AlterTableCmd); + Constraint *c = makeNode(Constraint); + n->subtype = AT_AlterConstraint; + n->def = (Node *) c; + c->contype = CONSTR_FOREIGN; /* others not supported, yet */ + c->conname = $3; + processCASbits($4, @4, "ALTER CONSTRAINT statement", + &c->deferrable, + &c->initdeferred, + NULL, NULL, yyscanner); + $$ = (Node *)n; + } /* ALTER TABLE VALIDATE CONSTRAINT ... */ | VALIDATE CONSTRAINT name { -- cgit v1.2.3