diff options
author | Robert Haas <rhaas@postgresql.org> | 2011-08-05 13:24:03 -0400 |
---|---|---|
committer | Robert Haas <rhaas@postgresql.org> | 2011-08-05 13:24:03 -0400 |
commit | c4096c76399ad99dce35cd62f60599ea8748a3dd (patch) | |
tree | 01116ffd1816868c388f84afc3b5ecca72b05192 /src/backend/parser/parse_utilcmd.c | |
parent | 68cbb9f4e70b7b7ed515b5c63bafbe47d9617bf0 (diff) | |
download | postgresql-c4096c76399ad99dce35cd62f60599ea8748a3dd.tar.gz postgresql-c4096c76399ad99dce35cd62f60599ea8748a3dd.zip |
Allow per-column foreign data wrapper options.
Shigeru Hanada, with fairly minor editing by me.
Diffstat (limited to 'src/backend/parser/parse_utilcmd.c')
-rw-r--r-- | src/backend/parser/parse_utilcmd.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/backend/parser/parse_utilcmd.c b/src/backend/parser/parse_utilcmd.c index 1be2ac68a58..21b54f7f153 100644 --- a/src/backend/parser/parse_utilcmd.c +++ b/src/backend/parser/parse_utilcmd.c @@ -559,6 +559,31 @@ transformColumnDefinition(CreateStmtContext *cxt, ColumnDef *column) break; } } + + /* + * Generate ALTER FOREIGN TABLE ALTER COLUMN statement which adds + * per-column foreign data wrapper options for this column. + */ + if (column->fdwoptions != NIL) + { + AlterTableStmt *stmt; + AlterTableCmd *cmd; + + cmd = makeNode(AlterTableCmd); + cmd->subtype = AT_AlterColumnGenericOptions; + cmd->name = column->colname; + cmd->def = (Node *) column->fdwoptions; + cmd->behavior = DROP_RESTRICT; + cmd->missing_ok = false; + + stmt = makeNode(AlterTableStmt); + stmt->relation = cxt->relation; + stmt->cmds = NIL; + stmt->relkind = OBJECT_FOREIGN_TABLE; + stmt->cmds = lappend(stmt->cmds, cmd); + + cxt->alist = lappend(cxt->alist, stmt); + } } /* |