diff options
| author | Andrew Dunstan | 2015-07-30 01:30:00 +0000 |
|---|---|---|
| committer | Andrew Dunstan | 2015-07-30 01:30:00 +0000 |
| commit | 2cd40adb85d1d5a7fd448721b326e73c1e318750 (patch) | |
| tree | 31a9ac16f905a9c7774f660ae623239b1c5d84e8 /src/backend/parser | |
| parent | 632cd9f892119858bc5b617bb60c0377a8a2ed13 (diff) | |
Add IF NOT EXISTS processing to ALTER TABLE ADD COLUMN
FabrÃzio de Royes Mello, reviewed by Payal Singh, Alvaro Herrera and
Michael Paquier.
Diffstat (limited to 'src/backend/parser')
| -rw-r--r-- | src/backend/parser/gram.y | 20 |
1 files changed, 20 insertions, 0 deletions
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 <name> ADD IF NOT EXISTS <coldef> */ + | 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 <name> ADD COLUMN <coldef> */ @@ -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 <name> ADD COLUMN IF NOT EXISTS <coldef> */ + | 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 <name> ALTER [COLUMN] <colname> {SET DEFAULT <expr>|DROP DEFAULT} */ |
