From 2cd40adb85d1d5a7fd448721b326e73c1e318750 Mon Sep 17 00:00:00 2001 From: Andrew Dunstan Date: Wed, 29 Jul 2015 21:30:00 -0400 Subject: Add IF NOT EXISTS processing to ALTER TABLE ADD COLUMN Fabrízio de Royes Mello, reviewed by Payal Singh, Alvaro Herrera and Michael Paquier. --- src/backend/parser/gram.y | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/backend/parser') diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 8f053e47e82..6b02cecac14 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -1942,6 +1942,16 @@ alter_table_cmd: AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddColumn; n->def = $2; + n->missing_ok = false; + $$ = (Node *)n; + } + /* ALTER TABLE ADD IF NOT EXISTS */ + | ADD_P IF_P NOT EXISTS columnDef + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_AddColumn; + n->def = $5; + n->missing_ok = true; $$ = (Node *)n; } /* ALTER TABLE ADD COLUMN */ @@ -1950,6 +1960,16 @@ alter_table_cmd: AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddColumn; n->def = $3; + n->missing_ok = false; + $$ = (Node *)n; + } + /* ALTER TABLE ADD COLUMN IF NOT EXISTS */ + | ADD_P COLUMN IF_P NOT EXISTS columnDef + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_AddColumn; + n->def = $6; + n->missing_ok = true; $$ = (Node *)n; } /* ALTER TABLE ALTER [COLUMN] {SET DEFAULT |DROP DEFAULT} */ -- cgit v1.2.3