diff options
| author | Peter Eisentraut | 2016-11-12 17:00:00 +0000 |
|---|---|---|
| committer | Peter Eisentraut | 2017-03-06 18:31:47 +0000 |
| commit | 8b6d6cf853aab12f0dc2adba7c99c3e458662734 (patch) | |
| tree | 783806b4919b26f56dafde70e34bd6cd38bb261e /src/backend/parser | |
| parent | 550214a4efb214dfc9c2a475607deeeea69da858 (diff) | |
Remove objname/objargs split for referring to objects
In simpler times, it might have worked to refer to all kinds of objects
by a list of name components and an optional argument list. But this
doesn't work for all objects, which has resulted in a collection of
hacks to place various other nodes types into these fields, which have
to be unpacked at the other end. This makes it also weird to represent
lists of such things in the grammar, because they would have to be lists
of singleton lists, to make the unpacking work consistently. The other
problem is that keeping separate name and args fields makes it awkward
to deal with lists of functions.
Change that by dropping the objargs field and have objname, renamed to
object, be a generic Node, which can then be flexibly assigned and
managed using the normal Node mechanisms. In many cases it will still
be a List of names, in some cases it will be a string Value, for types
it will be the existing Typename, for functions it will now use the
existing ObjectWithArgs node type. Some of the more obscure object
types still use somewhat arbitrary nested lists.
Reviewed-by: Jim Nasby <Jim.Nasby@BlueTreble.com>
Reviewed-by: Michael Paquier <michael.paquier@gmail.com>
Diffstat (limited to 'src/backend/parser')
| -rw-r--r-- | src/backend/parser/gram.y | 440 | ||||
| -rw-r--r-- | src/backend/parser/parse_utilcmd.c | 14 |
2 files changed, 212 insertions, 242 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 3289f5cbd4..f0cb956b83 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -440,7 +440,9 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query); %type <boolean> copy_from opt_program %type <ival> opt_column event cursor_options opt_hold opt_set_data -%type <objtype> drop_type comment_type security_label_type +%type <objtype> drop_type_any_name drop_type_name + comment_type_any_name comment_type_name + security_label_type_any_name security_label_type_name %type <node> fetch_args limit_clause select_limit_value offset_clause select_offset_value @@ -4080,8 +4082,7 @@ DropPLangStmt: { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_LANGUAGE; - n->objects = list_make1(list_make1(makeString($4))); - n->arguments = NIL; + n->objects = list_make1(makeString($4)); n->behavior = $5; n->missing_ok = false; n->concurrent = false; @@ -4091,7 +4092,7 @@ DropPLangStmt: { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_LANGUAGE; - n->objects = list_make1(list_make1(makeString($6))); + n->objects = list_make1(makeString($6)); n->behavior = $7; n->missing_ok = true; n->concurrent = false; @@ -4246,7 +4247,7 @@ AlterExtensionContentsStmt: n->extname = $3; n->action = $4; n->objtype = OBJECT_ACCESS_METHOD; - n->objname = list_make1(makeString($7)); + n->object = (Node *) makeString($7); $$ = (Node *)n; } | ALTER EXTENSION name add_drop AGGREGATE aggregate_with_argtypes @@ -4255,8 +4256,7 @@ AlterExtensionContentsStmt: n->extname = $3; n->action = $4; n->objtype = OBJECT_AGGREGATE; - n->objname = $6->objname; - n->objargs = $6->objargs; + n->object = (Node *) $6; $$ = (Node *)n; } | ALTER EXTENSION name add_drop CAST '(' Typename AS Typename ')' @@ -4265,8 +4265,7 @@ AlterExtensionContentsStmt: n->extname = $3; n->action = $4; n->objtype = OBJECT_CAST; - n->objname = list_make1($7); - n->objargs = list_make1($9); + n->object = (Node *) list_make2($7, $9); $$ = (Node *) n; } | ALTER EXTENSION name add_drop COLLATION any_name @@ -4275,7 +4274,7 @@ AlterExtensionContentsStmt: n->extname = $3; n->action = $4; n->objtype = OBJECT_COLLATION; - n->objname = $6; + n->object = (Node *) $6; $$ = (Node *)n; } | ALTER EXTENSION name add_drop CONVERSION_P any_name @@ -4284,7 +4283,7 @@ AlterExtensionContentsStmt: n->extname = $3; n->action = $4; n->objtype = OBJECT_CONVERSION; - n->objname = $6; + n->object = (Node *) $6; $$ = (Node *)n; } | ALTER EXTENSION name add_drop DOMAIN_P Typename @@ -4293,7 +4292,7 @@ AlterExtensionContentsStmt: n->extname = $3; n->action = $4; n->objtype = OBJECT_DOMAIN; - n->objname = list_make1($6); + n->object = (Node *) $6; $$ = (Node *)n; } | ALTER EXTENSION name add_drop FUNCTION function_with_argtypes @@ -4302,8 +4301,7 @@ AlterExtensionContentsStmt: n->extname = $3; n->action = $4; n->objtype = OBJECT_FUNCTION; - n->objname = $6->objname; - n->objargs = $6->objargs; + n->object = (Node *) $6; $$ = (Node *)n; } | ALTER EXTENSION name add_drop opt_procedural LANGUAGE name @@ -4312,7 +4310,7 @@ AlterExtensionContentsStmt: n->extname = $3; n->action = $4; n->objtype = OBJECT_LANGUAGE; - n->objname = list_make1(makeString($7)); + n->object = (Node *) makeString($7); $$ = (Node *)n; } | ALTER EXTENSION name add_drop OPERATOR operator_with_argtypes @@ -4321,8 +4319,7 @@ AlterExtensionContentsStmt: n->extname = $3; n->action = $4; n->objtype = OBJECT_OPERATOR; - n->objname = $6->objname; - n->objargs = $6->objargs; + n->object = (Node *) $6; $$ = (Node *)n; } | ALTER EXTENSION name add_drop OPERATOR CLASS any_name USING access_method @@ -4331,7 +4328,7 @@ AlterExtensionContentsStmt: n->extname = $3; n->action = $4; n->objtype = OBJECT_OPCLASS; - n->objname = lcons(makeString($9), $7); + n->object = (Node *) lcons(makeString($9), $7); $$ = (Node *)n; } | ALTER EXTENSION name add_drop OPERATOR FAMILY any_name USING access_method @@ -4340,7 +4337,7 @@ AlterExtensionContentsStmt: n->extname = $3; n->action = $4; n->objtype = OBJECT_OPFAMILY; - n->objname = lcons(makeString($9), $7); + n->object = (Node *) lcons(makeString($9), $7); $$ = (Node *)n; } | ALTER EXTENSION name add_drop SCHEMA name @@ -4349,7 +4346,7 @@ AlterExtensionContentsStmt: n->extname = $3; n->action = $4; n->objtype = OBJECT_SCHEMA; - n->objname = list_make1(makeString($6)); + n->object = (Node *) makeString($6); $$ = (Node *)n; } | ALTER EXTENSION name add_drop EVENT TRIGGER name @@ -4358,7 +4355,7 @@ AlterExtensionContentsStmt: n->extname = $3; n->action = $4; n->objtype = OBJECT_EVENT_TRIGGER; - n->objname = list_make1(makeString($7)); + n->object = (Node *) makeString($7); $$ = (Node *)n; } | ALTER EXTENSION name add_drop TABLE any_name @@ -4367,7 +4364,7 @@ AlterExtensionContentsStmt: n->extname = $3; n->action = $4; n->objtype = OBJECT_TABLE; - n->objname = $6; + n->object = (Node *) $6; $$ = (Node *)n; } | ALTER EXTENSION name add_drop TEXT_P SEARCH PARSER any_name @@ -4376,7 +4373,7 @@ AlterExtensionContentsStmt: n->extname = $3; n->action = $4; n->objtype = OBJECT_TSPARSER; - n->objname = $8; + n->object = (Node *) $8; $$ = (Node *)n; } | ALTER EXTENSION name add_drop TEXT_P SEARCH DICTIONARY any_name @@ -4385,7 +4382,7 @@ AlterExtensionContentsStmt: n->extname = $3; n->action = $4; n->objtype = OBJECT_TSDICTIONARY; - n->objname = $8; + n->object = (Node *) $8; $$ = (Node *)n; } | ALTER EXTENSION name add_drop TEXT_P SEARCH TEMPLATE any_name @@ -4394,7 +4391,7 @@ AlterExtensionContentsStmt: n->extname = $3; n->action = $4; n->objtype = OBJECT_TSTEMPLATE; - n->objname = $8; + n->object = (Node *) $8; $$ = (Node *)n; } | ALTER EXTENSION name add_drop TEXT_P SEARCH CONFIGURATION any_name @@ -4403,7 +4400,7 @@ AlterExtensionContentsStmt: n->extname = $3; n->action = $4; n->objtype = OBJECT_TSCONFIGURATION; - n->objname = $8; + n->object = (Node *) $8; $$ = (Node *)n; } | ALTER EXTENSION name add_drop SEQUENCE any_name @@ -4412,7 +4409,7 @@ AlterExtensionContentsStmt: n->extname = $3; n->action = $4; n->objtype = OBJECT_SEQUENCE; - n->objname = $6; + n->object = (Node *) $6; $$ = (Node *)n; } | ALTER EXTENSION name add_drop VIEW any_name @@ -4421,7 +4418,7 @@ AlterExtensionContentsStmt: n->extname = $3; n->action = $4; n->objtype = OBJECT_VIEW; - n->objname = $6; + n->object = (Node *) $6; $$ = (Node *)n; } | ALTER EXTENSION name add_drop MATERIALIZED VIEW any_name @@ -4430,7 +4427,7 @@ AlterExtensionContentsStmt: n->extname = $3; n->action = $4; n->objtype = OBJECT_MATVIEW; - n->objname = $7; + n->object = (Node *) $7; $$ = (Node *)n; } | ALTER EXTENSION name add_drop FOREIGN TABLE any_name @@ -4439,7 +4436,7 @@ AlterExtensionContentsStmt: n->extname = $3; n->action = $4; n->objtype = OBJECT_FOREIGN_TABLE; - n->objname = $7; + n->object = (Node *) $7; $$ = (Node *)n; } | ALTER EXTENSION name add_drop FOREIGN DATA_P WRAPPER name @@ -4448,7 +4445,7 @@ AlterExtensionContentsStmt: n->extname = $3; n->action = $4; n->objtype = OBJECT_FDW; - n->objname = list_make1(makeString($8)); + n->object = (Node *) makeString($8); $$ = (Node *)n; } | ALTER EXTENSION name add_drop SERVER name @@ -4457,7 +4454,7 @@ AlterExtensionContentsStmt: n->extname = $3; n->action = $4; n->objtype = OBJECT_FOREIGN_SERVER; - n->objname = list_make1(makeString($6)); + n->object = (Node *) makeString($6); $$ = (Node *)n; } | ALTER EXTENSION name add_drop TRANSFORM FOR Typename LANGUAGE name @@ -4466,8 +4463,7 @@ AlterExtensionContentsStmt: n->extname = $3; n->action = $4; n->objtype = OBJECT_TRANSFORM; - n->objname = list_make1($7); - n->objargs = list_make1(makeString($9)); + n->object = (Node *) list_make2($7, makeString($9)); $$ = (Node *)n; } | ALTER EXTENSION name add_drop TYPE_P Typename @@ -4476,7 +4472,7 @@ AlterExtensionContentsStmt: n->extname = $3; n->action = $4; n->objtype = OBJECT_TYPE; - n->objname = list_make1($6); + n->object = (Node *) $6; $$ = (Node *)n; } ; @@ -4526,8 +4522,7 @@ DropFdwStmt: DROP FOREIGN DATA_P WRAPPER name opt_drop_behavior { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_FDW; - n->objects = list_make1(list_make1(makeString($5))); - n->arguments = NIL; + n->objects = list_make1(makeString($5)); n->missing_ok = false; n->behavior = $6; n->concurrent = false; @@ -4537,8 +4532,7 @@ DropFdwStmt: DROP FOREIGN DATA_P WRAPPER name opt_drop_behavior { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_FDW; - n->objects = list_make1(list_make1(makeString($7))); - n->arguments = NIL; + n->objects = list_make1(makeString($7)); n->missing_ok = true; n->behavior = $8; n->concurrent = false; @@ -4688,8 +4682,7 @@ DropForeignServerStmt: DROP SERVER name opt_drop_behavior { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_FOREIGN_SERVER; - n->objects = list_make1(list_make1(makeString($3))); - n->arguments = NIL; + n->objects = list_make1(makeString($3)); n->missing_ok = false; n->behavior = $4; n->concurrent = false; @@ -4699,8 +4692,7 @@ DropForeignServerStmt: DROP SERVER name opt_drop_behavior { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_FOREIGN_SERVER; - n->objects = list_make1(list_make1(makeString($5))); - n->arguments = NIL; + n->objects = list_make1(makeString($5)); n->missing_ok = true; n->behavior = $6; n->concurrent = false; @@ -5024,7 +5016,6 @@ DropPolicyStmt: DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_POLICY; n->objects = list_make1(lappend($5, makeString($3))); - n->arguments = NIL; n->behavior = $6; n->missing_ok = false; n->concurrent = false; @@ -5035,7 +5026,6 @@ DropPolicyStmt: DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_POLICY; n->objects = list_make1(lappend($7, makeString($5))); - n->arguments = NIL; n->behavior = $8; n->missing_ok = true; n->concurrent = false; @@ -5348,7 +5338,6 @@ DropTrigStmt: DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_TRIGGER; n->objects = list_make1(lappend($5, makeString($3))); - n->arguments = NIL; n->behavior = $6; n->missing_ok = false; n->concurrent = false; @@ -5359,7 +5348,6 @@ DropTrigStmt: DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_TRIGGER; n->objects = list_make1(lappend($7, makeString($5))); - n->arguments = NIL; n->behavior = $8; n->missing_ok = true; n->concurrent = false; @@ -5469,7 +5457,6 @@ DropAssertStmt: { DropStmt *n = makeNode(DropStmt); n->objects = NIL; - n->arguments = NIL; n->behavior = $4; n->removeType = OBJECT_TRIGGER; /* XXX */ ereport(ERROR, @@ -6008,24 +5995,42 @@ ReassignOwnedStmt: * *****************************************************************************/ -DropStmt: DROP drop_type IF_P EXISTS any_name_list opt_drop_behavior +DropStmt: DROP drop_type_any_name IF_P EXISTS any_name_list opt_drop_behavior { DropStmt *n = makeNode(DropStmt); n->removeType = $2; n->missing_ok = TRUE; n->objects = $5; - n->arguments = NIL; n->behavior = $6; n->concurrent = false; $$ = (Node *)n; } - | DROP drop_type any_name_list opt_drop_behavior + | DROP drop_type_any_name any_name_list opt_drop_behavior + { + DropStmt *n = makeNode(DropStmt); + n->removeType = $2; + n->missing_ok = FALSE; + n->objects = $3; + n->behavior = $4; + n->concurrent = false; + $$ = (Node *)n; + } + | DROP drop_type_name IF_P EXISTS name_list opt_drop_behavior + { + DropStmt *n = makeNode(DropStmt); + n->removeType = $2; + n->missing_ok = TRUE; + n->objects = $5; + n->behavior = $6; + n->concurrent = false; + $$ = (Node *)n; + } + | DROP drop_type_name name_list opt_drop_behavior { DropStmt *n = makeNode(DropStmt); n->removeType = $2; n->missing_ok = FALSE; n->objects = $3; - n->arguments = NIL; n->behavior = $4; n->concurrent = false; $$ = (Node *)n; @@ -6076,7 +6081,6 @@ DropStmt: DROP drop_type IF_P EXISTS any_name_list opt_drop_behavior n->removeType = OBJECT_INDEX; n->missing_ok = FALSE; n->objects = $4; - n->arguments = NIL; n->behavior = $5; n->concurrent = true; $$ = (Node *)n; @@ -6087,31 +6091,35 @@ DropStmt: DROP drop_type IF_P EXISTS any_name_list opt_drop_behavior n->removeType = OBJECT_INDEX; n->missing_ok = TRUE; n->objects = $6; - n->arguments = NIL; n->behavior = $7; n->concurrent = true; $$ = (Node *)n; } ; - -drop_type: TABLE { $$ = OBJECT_TABLE; } +/* object types taking any_name_list */ +drop_type_any_name: + TABLE { $$ = OBJECT_TABLE; } | SEQUENCE { $$ = OBJECT_SEQUENCE; } | VIEW { $$ = OBJECT_VIEW; } | MATERIALIZED VIEW { $$ = OBJECT_MATVIEW; } | INDEX { $$ = OBJECT_INDEX; } | FOREIGN TABLE { $$ = OBJECT_FOREIGN_TABLE; } - | ACCESS METHOD { $$ = OBJECT_ACCESS_METHOD; } - | EVENT TRIGGER { $$ = OBJECT_EVENT_TRIGGER; } | COLLATION { $$ = OBJECT_COLLATION; } | CONVERSION_P { $$ = OBJECT_CONVERSION; } - | SCHEMA { $$ = OBJECT_SCHEMA; } - | EXTENSION { $$ = OBJECT_EXTENSION; } | TEXT_P SEARCH PARSER { $$ = OBJECT_TSPARSER; } | TEXT_P SEARCH DICTIONARY { $$ = OBJECT_TSDICTIONARY; } | TEXT_P SEARCH TEMPLATE { $$ = OBJECT_TSTEMPLATE; } | TEXT_P SEARCH CONFIGURATION { $$ = OBJECT_TSCONFIGURATION; } + ; + +/* object types taking name_list */ +drop_type_name: + ACCESS METHOD { $$ = OBJECT_ACCESS_METHOD; } + | EVENT TRIGGER { $$ = OBJECT_EVENT_TRIGGER; } + | EXTENSION { $$ = OBJECT_EXTENSION; } | PUBLICATION { $$ = OBJECT_PUBLICATION; } + | SCHEMA { $$ = OBJECT_SCHEMA; } ; any_name_list: @@ -6130,8 +6138,8 @@ attrs: '.' attr_name ; type_name_list: - Typename { $$ = list_make1(list_make1($1)); } - | type_name_list ',' Typename { $$ = lappend($1, list_make1($3)); } + Typename { $$ = list_make1($1); } + | type_name_list ',' Typename { $$ = lappend($1, $3); } /***************************************************************************** * @@ -6188,12 +6196,19 @@ opt_restart_seqs: *****************************************************************************/ CommentStmt: - COMMENT ON comment_type any_name IS comment_text + COMMENT ON comment_type_any_name any_name IS comment_text { CommentStmt *n = makeNode(CommentStmt); n->objtype = $3; - n->objname = $4; - n->objargs = NIL; + n->object = (Node *) $4; + n->comment = $6; + $$ = (Node *) n; + } + | COMMENT ON comment_type_name name IS comment_text + { + CommentStmt *n = makeNode(CommentStmt); + n->objtype = $3; + n->object = (Node *) makeString($4); n->comment = $6; $$ = (Node *) n; } @@ -6201,8 +6216,7 @@ CommentStmt: { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_TYPE; - n->objname = list_make1($4); - n->objargs = NIL; + n->object = (Node *) $4; n->comment = $6; $$ = (Node *) n; } @@ -6210,8 +6224,7 @@ CommentStmt: { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_DOMAIN; - n->objname = list_make1($4); - n->objargs = NIL; + n->object = (Node *) $4; n->comment = $6; $$ = (Node *) n; } @@ -6219,8 +6232,7 @@ CommentStmt: { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_AGGREGATE; - n->objname = $4->objname; - n->objargs = $4->objargs; + n->object = (Node *) $4; n->comment = $6; $$ = (Node *) n; } @@ -6228,8 +6240,7 @@ CommentStmt: { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_FUNCTION; - n->objname = $4->objname; - n->objargs = $4->objargs; + n->object = (Node *) $4; n->comment = $6; $$ = (Node *) n; } @@ -6237,8 +6248,7 @@ CommentStmt: { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_OPERATOR; - n->objname = $4->objname; - n->objargs = $4->objargs; + n->object = (Node *) $4; n->comment = $6; $$ = (Node *) n; } @@ -6246,8 +6256,7 @@ CommentStmt: { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_TABCONSTRAINT; - n->objname = lappend($6, makeString($4)); - n->objargs = NIL; + n->object = (Node *) lappend($6, makeString($4)); n->comment = $8; $$ = (Node *) n; } @@ -6260,8 +6269,7 @@ CommentStmt: * there's a shift/reduce conflict if we do that, so fix it * up here. */ - n->objname = list_make1(makeTypeNameFromNameList($7)); - n->objargs = list_make1(makeString($4)); + n->object = (Node *) list_make2(makeTypeNameFromNameList($7), makeString($4)); n->comment = $9; $$ = (Node *) n; } @@ -6269,8 +6277,7 @@ CommentStmt: { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_POLICY; - n->objname = lappend($6, makeString($4)); - n->objargs = NIL; + n->object = (Node *) lappend($6, makeString($4)); n->comment = $8; $$ = (Node *) n; } @@ -6278,8 +6285,7 @@ CommentStmt: { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_RULE; - n->objname = lappend($6, makeString($4)); - n->objargs = NIL; + n->object = (Node *) lappend($6, makeString($4)); n->comment = $8; $$ = (Node *) n; } @@ -6287,8 +6293,7 @@ CommentStmt: { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_TRANSFORM; - n->objname = list_make1($5); - n->objargs = list_make1(makeString($7)); + n->object = (Node *) list_make2($5, makeString($7)); n->comment = $9; $$ = (Node *) n; } @@ -6296,8 +6301,7 @@ CommentStmt: { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_TRIGGER; - n->objname = lappend($6, makeString($4)); - n->objargs = NIL; + n->object = (Node *) lappend($6, makeString($4)); n->comment = $8; $$ = (Node *) n; } @@ -6305,7 +6309,7 @@ CommentStmt: { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_OPCLASS; - n->objname = lcons(makeString($7), $5); + n->object = (Node *) lcons(makeString($7), $5); n->comment = $9; $$ = (Node *) n; } @@ -6313,8 +6317,7 @@ CommentStmt: { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_OPFAMILY; - n->objname = lcons(makeString($7), $5); - n->objargs = NIL; + n->object = (Node *) lcons(makeString($7), $5); n->comment = $9; $$ = (Node *) n; } @@ -6322,8 +6325,7 @@ CommentStmt: { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_LARGEOBJECT; - n->objname = list_make1($5); - n->objargs = NIL; + n->object = (Node *) $5; n->comment = $7; $$ = (Node *) n; } @@ -6331,27 +6333,15 @@ CommentStmt: { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_CAST; - n->objname = list_make1($5); - n->objargs = list_make1($7); + n->object = (Node *) list_make2($5, $7); n->comment = $10; $$ = (Node *) n; } - | COMMENT ON opt_procedural LANGUAGE any_name IS comment_text - { - CommentStmt *n = makeNode(CommentStmt); - n->objtype = OBJECT_LANGUAGE; - n->objname = $5; - n->objargs = NIL; - n->comment = $7; - $$ = (Node *) n; - } ; -comment_type: - ACCESS METHOD { $$ = OBJECT_ACCESS_METHOD; } - | COLUMN { $$ = OBJECT_COLUMN; } - | DATABASE { $$ = OBJECT_DATABASE; } - | SCHEMA { $$ = OBJECT_SCHEMA; } +/* object types taking any_name */ +comment_type_any_name: + COLUMN { $$ = OBJECT_COLUMN; } | INDEX { $$ = OBJECT_INDEX; } | SEQUENCE { $$ = OBJECT_SEQUENCE; } | TABLE { $$ = OBJECT_TABLE; } @@ -6359,19 +6349,27 @@ comment_type: | MATERIALIZED VIEW { $$ = OBJECT_MATVIEW; } | COLLATION { $$ = OBJECT_COLLATION; } | CONVERSION_P { $$ = OBJECT_CONVERSION; } - | TABLESPACE { $$ = OBJECT_TABLESPACE; } - | EXTENSION { $$ = OBJECT_EXTENSION; } - | ROLE { $$ = OBJECT_ROLE; } | FOREIGN TABLE { $$ = OBJECT_FOREIGN_TABLE; } - | SERVER { $$ = OBJECT_FOREIGN_SERVER; } - | FOREIGN DATA_P WRAPPER { $$ = OBJECT_FDW; } - | EVENT TRIGGER { $$ = OBJECT_EVENT_TRIGGER; } | TEXT_P SEARCH CONFIGURATION { $$ = OBJECT_TSCONFIGURATION; } | TEXT_P SEARCH DICTIONARY { $$ = OBJECT_TSDICTIONARY; } | TEXT_P SEARCH PARSER { $$ = OBJECT_TSPARSER; } | TEXT_P SEARCH TEMPLATE { $$ = OBJECT_TSTEMPLATE; } ; +/* object types taking name */ +comment_type_name: + ACCESS METHOD { $$ = OBJECT_ACCESS_METHOD; } + | DATABASE { $$ = OBJECT_DATABASE; } + | EVENT TRIGGER { $$ = OBJECT_EVENT_TRIGGER; } + | EXTENSION { $$ = OBJECT_EXTENSION; } + | FOREIGN DATA_P WRAPPER { $$ = OBJECT_FDW; } + | opt_procedural LANGUAGE { $$ = OBJECT_LANGUAGE; } + | ROLE { $$ = OBJECT_ROLE; } + | SCHEMA { $$ = OBJECT_SCHEMA; } + | SERVER { $$ = OBJECT_FOREIGN_SERVER; } + | TABLESPACE { $$ = OBJECT_TABLESPACE; } + ; + comment_text: Sconst { $$ = $1; } | NULL_P { $$ = NULL; } @@ -6388,14 +6386,23 @@ comment_text: *****************************************************************************/ SecLabelStmt: - SECURITY LABEL opt_provider ON security_label_type any_name + SECURITY LABEL opt_provider ON security_label_type_any_name any_name IS security_label { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = $3; n->objtype = $5; - n->objname = $6; - n->objargs = NIL; + n->object = (Node *) $6; + n->label = $8; + $$ = (Node *) n; + } + | SECURITY LABEL opt_provider ON security_label_type_name name + IS security_label + { + SecLabelStmt *n = makeNode(SecLabelStmt); + n->provider = $3; + n->objtype = $5; + n->object = (Node *) makeString($6); n->label = $8; $$ = (Node *) n; } @@ -6405,8 +6412,7 @@ SecLabelStmt: SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = $3; n->objtype = OBJECT_TYPE; - n->objname = list_make1($6); - n->objargs = NIL; + n->object = (Node *) $6; n->label = $8; $$ = (Node *) n; } @@ -6416,8 +6422,7 @@ SecLabelStmt: SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = $3; n->objtype = OBJECT_TYPE; - n->objname = list_make1($6); - n->objargs = NIL; + n->object = (Node *) $6; n->label = $8; $$ = (Node *) n; } @@ -6427,8 +6432,7 @@ SecLabelStmt: SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = $3; n->objtype = OBJECT_AGGREGATE; - n->objname = $6->objname; - n->objargs = $6->objargs; + n->object = (Node *) $6; n->label = $8; $$ = (Node *) n; } @@ -6438,8 +6442,7 @@ SecLabelStmt: SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = $3; n->objtype = OBJECT_FUNCTION; - n->objname = $6->objname; - n->objargs = $6->objargs; + n->object = (Node *) $6; n->label = $8; $$ = (Node *) n; } @@ -6449,19 +6452,7 @@ SecLabelStmt: SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = $3; n->objtype = OBJECT_LARGEOBJECT; - n->objname = list_make1($7); - n->objargs = NIL; - n->label = $9; - $$ = (Node *) n; - } - | SECURITY LABEL opt_provider ON opt_procedural LANGUAGE any_name - IS security_label - { - SecLabelStmt *n = makeNode(SecLabelStmt); - n->provider = $3; - n->objtype = OBJECT_LANGUAGE; - n->objname = $7; - n->objargs = NIL; + n->object = (Node *) $7; n->label = $9; $$ = (Node *) n; } @@ -6471,20 +6462,26 @@ opt_provider: FOR NonReservedWord_or_Sconst { $$ = $2; } | /* empty */ { $$ = NULL; } ; -security_label_type: +/* object types taking any_name */ +security_label_type_any_name: COLUMN { $$ = OBJECT_COLUMN; } - | DATABASE { $$ = OBJECT_DATABASE; } - | EVENT TRIGGER { $$ = OBJECT_EVENT_TRIGGER; } | FOREIGN TABLE { $$ = OBJECT_FOREIGN_TABLE; } - | SCHEMA { $$ = OBJECT_SCHEMA; } | SEQUENCE { $$ = OBJECT_SEQUENCE; } | TABLE { $$ = OBJECT_TABLE; } - | ROLE { $$ = OBJECT_ROLE; } - | TABLESPACE { $$ = OBJECT_TABLESPACE; } | VIEW { $$ = OBJECT_VIEW; } | MATERIALIZED VIEW { $$ = OBJECT_MATVIEW; } ; +/* object types taking name */ +security_label_type_name: + DATABASE { $$ = OBJECT_DATABASE; } + | EVENT TRIGGER { $$ = OBJECT_EVENT_TRIGGER; } + | opt_procedural LANGUAGE { $$ = OBJECT_LANGUAGE; } + | ROLE { $$ = OBJECT_ROLE; } + | SCHEMA { $$ = OBJECT_SCHEMA; } + | TABLESPACE { $$ = OBJECT_TABLESPACE; } + ; + security_label: Sconst { $$ = $1; } | NULL_P { $$ = NULL; } ; @@ -7684,8 +7681,7 @@ RemoveFuncStmt: { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_FUNCTION; - n->objects = list_make1($3->objname); - n->arguments = list_make1($3->objargs); + n->objects = list_make1($3); n->behavior = $4; n->missing_ok = false; n->concurrent = false; @@ -7695,8 +7691,7 @@ RemoveFuncStmt: { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_FUNCTION; - n->objects = list_make1($5->objname); - n->arguments = list_make1($5->objargs); + n->objects = list_make1($5); n->behavior = $6; n->missing_ok = true; n->concurrent = false; @@ -7709,8 +7704,7 @@ RemoveAggrStmt: { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_AGGREGATE; - n->objects = list_make1($3->objname); - n->arguments = list_make1($3->objargs); + n->objects = list_make1($3); n->behavior = $4; n->missing_ok = false; n->concurrent = false; @@ -7720,8 +7714,7 @@ RemoveAggrStmt: { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_AGGREGATE; - n->objects = list_make1($5->objname); - n->arguments = list_make1($5->objargs); + n->objects = list_make1($5); n->behavior = $6; n->missing_ok = true; n->concurrent = false; @@ -7734,8 +7727,7 @@ RemoveOperStmt: { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_OPERATOR; - n->objects = list_make1($3->objname); - n->arguments = list_make1($3->objargs); + n->objects = list_make1($3); n->behavior = $4; n->missing_ok = false; n->concurrent = false; @@ -7745,8 +7737,7 @@ RemoveOperStmt: { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_OPERATOR; - n->objects = list_make1($5->objname); - n->arguments = list_make1($5->objargs); + n->objects = list_make1($5); n->behavior = $6; n->missing_ok = true; n->concurrent = false; @@ -7872,8 +7863,7 @@ DropCastStmt: DROP CAST opt_if_exists '(' Typename AS Typename ')' opt_drop_beha { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_CAST; - n->objects = list_make1(list_make1($5)); - n->arguments = list_make1(list_make1($7)); + n->objects = list_make1(list_make2($5, $7)); n->behavior = $9; n->missing_ok = $3; n->concurrent = false; @@ -7927,8 +7917,7 @@ DropTransformStmt: DROP TRANSFORM opt_if_exists FOR Typename LANGUAGE name opt_d { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_TRANSFORM; - n->objects = list_make1(list_make1($5)); - n->arguments = list_make1(list_make1(makeString($7))); + n->objects = list_make1(list_make2($5, makeString($7))); n->behavior = $8; n->missing_ok = $3; $$ = (Node *)n; @@ -8035,8 +8024,7 @@ RenameStmt: ALTER AGGREGATE aggregate_with_argtypes RENAME TO name { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_AGGREGATE; - n->object = $3->objname; - n->objarg = $3->objargs; + n->object = (Node *) $3; n->newname = $6; n->missing_ok = false; $$ = (Node *)n; @@ -8045,7 +8033,7 @@ RenameStmt: ALTER AGGREGATE aggregate_with_argtypes RENAME TO name { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLLATION; - n->object = $3; + n->object = (Node *) $3; n->newname = $6; n->missing_ok = false; $$ = (Node *)n; @@ -8054,7 +8042,7 @@ RenameStmt: ALTER AGGREGATE aggregate_with_argtypes RENAME TO name { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_CONVERSION; - n->object = $3; + n->object = (Node *) $3; n->newname = $6; n->missing_ok = false; $$ = (Node *)n; @@ -8072,7 +8060,7 @@ RenameStmt: ALTER AGGREGATE aggregate_with_argtypes RENAME TO name { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_DOMAIN; - n->object = $3; + n->object = (Node *) $3; n->newname = $6; n->missing_ok = false; $$ = (Node *)n; @@ -8081,7 +8069,7 @@ RenameStmt: ALTER AGGREGATE aggregate_with_argtypes RENAME TO name { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_DOMCONSTRAINT; - n->object = $3; + n->object = (Node *) $3; n->subname = $6; n->newname = $8; $$ = (Node *)n; @@ -8090,7 +8078,7 @@ RenameStmt: ALTER AGGREGATE aggregate_with_argtypes RENAME TO name { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FDW; - n->object = list_make1(makeString($5)); + n->object = (Node *) makeString($5); n->newname = $8; n->missing_ok = false; $$ = (Node *)n; @@ -8099,8 +8087,7 @@ RenameStmt: ALTER AGGREGATE aggregate_with_argtypes RENAME TO name { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FUNCTION; - n->object = $3->objname; - n->objarg = $3->objargs; + n->object = (Node *) $3; n->newname = $6; n->missing_ok = false; $$ = (Node *)n; @@ -8118,7 +8105,7 @@ RenameStmt: ALTER AGGREGATE aggregate_with_argtypes RENAME TO name { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_LANGUAGE; - n->object = list_make1(makeString($4)); + n->object = (Node *) makeString($4); n->newname = $7; n->missing_ok = false; $$ = (Node *)n; @@ -8127,7 +8114,7 @@ RenameStmt: ALTER AGGREGATE aggregate_with_argtypes RENAME TO name { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_OPCLASS; - n->object = lcons(makeString($6), $4); + n->object = (Node *) lcons(makeString($6), $4); n->newname = $9; n->missing_ok = false; $$ = (Node *)n; @@ -8136,7 +8123,7 @@ RenameStmt: ALTER AGGREGATE aggregate_with_argtypes RENAME TO name { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_OPFAMILY; - n->object = lcons(makeString($6), $4); + n->object = (Node *) lcons(makeString($6), $4); n->newname = $9; n->missing_ok = false; $$ = (Node *)n; @@ -8165,7 +8152,7 @@ RenameStmt: ALTER AGGREGATE aggregate_with_argtypes RENAME TO name { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_PUBLICATION; - n->object = list_make1(makeString($3)); + n->object = (Node *) makeString($3); n->newname = $6; n->missing_ok = false; $$ = (Node *)n; @@ -8183,7 +8170,7 @@ RenameStmt: ALTER AGGREGATE aggregate_with_argtypes RENAME TO name { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FOREIGN_SERVER; - n->object = list_make1(makeString($3)); + n->object = (Node *) makeString($3); n->newname = $6; n->missing_ok = false; $$ = (Node *)n; @@ -8192,7 +8179,7 @@ RenameStmt: ALTER AGGREGATE aggregate_with_argtypes RENAME TO name { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_SUBSCRIPTION; - n->object = list_make1(makeString($3)); + n->object = (Node *) makeString($3); n->newname = $6; n->missing_ok = false; $$ = (Node *)n; @@ -8427,7 +8414,7 @@ RenameStmt: ALTER AGGREGATE aggregate_with_argtypes RENAME TO name { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_EVENT_TRIGGER; - n->object = list_make1(makeString($4)); + n->object = (Node *) makeString($4); n->newname = $7; $$ = (Node *)n; } @@ -8462,7 +8449,7 @@ RenameStmt: ALTER AGGREGATE aggregate_with_argtypes RENAME TO name { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TSPARSER; - n->object = $5; + n->object = (Node *) $5; n->newname = $8; n->missing_ok = false; $$ = (Node *)n; @@ -8471,7 +8458,7 @@ RenameStmt: ALTER AGGREGATE aggregate_with_argtypes RENAME TO name { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TSDICTIONARY; - n->object = $5; + n->object = (Node *) $5; n->newname = $8; n->missing_ok = false; $$ = (Node *)n; @@ -8480,7 +8467,7 @@ RenameStmt: ALTER AGGREGATE aggregate_with_argtypes RENAME TO name { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TSTEMPLATE; - n->object = $5; + n->object = (Node *) $5; n->newname = $8; n->missing_ok = false; $$ = (Node *)n; @@ -8489,7 +8476,7 @@ RenameStmt: ALTER AGGREGATE aggregate_with_argtypes RENAME TO name { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TSCONFIGURATION; - n->object = $5; + n->object = (Node *) $5; n->newname = $8; n->missing_ok = false; $$ = (Node *)n; @@ -8498,7 +8485,7 @@ RenameStmt: ALTER AGGREGATE aggregate_with_argtypes RENAME TO name { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TYPE; - n->object = $3; + n->object = (Node *) $3; n->newname = $6; n->missing_ok = false; $$ = (Node *)n; @@ -8536,9 +8523,7 @@ AlterObjectDependsStmt: { AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); n->objectType = OBJECT_FUNCTION; - n->relation = NULL; - n->objname = $3->objname; - n->objargs = $3->objargs; + n->object = (Node *) $3; n->extname = makeString($7); $$ = (Node *)n; } @@ -8547,8 +8532,7 @@ AlterObjectDependsStmt: AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); n->objectType = OBJECT_TRIGGER; n->relation = $5; - n->objname = list_make1(makeString($3)); - n->objargs = NIL; + n->object = (Node *) list_make1(makeString($3)); n->extname = makeString($9); $$ = (Node *)n; } @@ -8557,8 +8541,6 @@ AlterObjectDependsStmt: AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); n->objectType = OBJECT_MATVIEW; n->relation = $4; - n->objname = NIL; - n->objargs = NIL; n->extname = makeString($8); $$ = (Node *)n; } @@ -8567,8 +8549,6 @@ AlterObjectDependsStmt: AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); n->objectType = OBJECT_INDEX; n->relation = $3; - n->objname = NIL; - n->objargs = NIL; n->extname = makeString($7); $$ = (Node *)n; } @@ -8585,8 +8565,7 @@ AlterObjectSchemaStmt: { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_AGGREGATE; - n->object = $3->objname; - n->objarg = $3->objargs; + n->object = (Node *) $3; n->newschema = $6; n->missing_ok = false; $$ = (Node *)n; @@ -8595,7 +8574,7 @@ AlterObjectSchemaStmt: { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_COLLATION; - n->object = $3; + n->object = (Node *) $3; n->newschema = $6; n->missing_ok = false; $$ = (Node *)n; @@ -8604,7 +8583,7 @@ AlterObjectSchemaStmt: { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_CONVERSION; - n->object = $3; + n->object = (Node *) $3; n->newschema = $6; n->missing_ok = false; $$ = (Node *)n; @@ -8613,16 +8592,16 @@ AlterObjectSchemaStmt: { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_DOMAIN; - n->object = $3; + n->object = (Node *) $3; n->newschema = $6; n->missing_ok = false; $$ = (Node *)n; } - | ALTER EXTENSION any_name SET SCHEMA name + | ALTER EXTENSION name SET SCHEMA name { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_EXTENSION; - n->object = $3; + n->object = (Node *) makeString($3); n->newschema = $6; n->missing_ok = false; $$ = (Node *)n; @@ -8631,8 +8610,7 @@ AlterObjectSchemaStmt: { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_FUNCTION; - n->object = $3->objname; - n->objarg = $3->objargs; + n->object = (Node *) $3; n->newschema = $6; n->missing_ok = false; $$ = (Node *)n; @@ -8641,8 +8619,7 @@ AlterObjectSchemaStmt: { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_OPERATOR; - n->object = $3->objname; - n->objarg = $3->objargs; + n->object = (Node *) $3; n->newschema = $6; n->missing_ok = false; $$ = (Node *)n; @@ -8651,7 +8628,7 @@ AlterObjectSchemaStmt: { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_OPCLASS; - n->object = lcons(makeString($6), $4); + n->object = (Node *) lcons(makeString($6), $4); n->newschema = $9; n->missing_ok = false; $$ = (Node *)n; @@ -8660,7 +8637,7 @@ AlterObjectSchemaStmt: { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_OPFAMILY; - n->object = lcons(makeString($6), $4); + n->object = (Node *) lcons(makeString($6), $4); n->newschema = $9; n->missing_ok = false; $$ = (Node *)n; @@ -8687,7 +8664,7 @@ AlterObjectSchemaStmt: { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TSPARSER; - n->object = $5; + n->object = (Node *) $5; n->newschema = $8; n->missing_ok = false; $$ = (Node *)n; @@ -8696,7 +8673,7 @@ AlterObjectSchemaStmt: { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TSDICTIONARY; - n->object = $5; + n->object = (Node *) $5; n->newschema = $8; n->missing_ok = false; $$ = (Node *)n; @@ -8705,7 +8682,7 @@ AlterObjectSchemaStmt: { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TSTEMPLATE; - n->object = $5; + n->object = (Node *) $5; n->newschema = $8; n->missing_ok = false; $$ = (Node *)n; @@ -8714,7 +8691,7 @@ AlterObjectSchemaStmt: { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TSCONFIGURATION; - n->object = $5; + n->object = (Node *) $5; n->newschema = $8; n->missing_ok = false; $$ = (Node *)n; @@ -8795,7 +8772,7 @@ AlterObjectSchemaStmt: { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TYPE; - n->object = $3; + n->object = (Node *) $3; n->newschema = $6; n->missing_ok = false; $$ = (Node *)n; @@ -8839,8 +8816,7 @@ AlterOwnerStmt: ALTER AGGREGATE aggregate_with_argtypes OWNER TO RoleSpec { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_AGGREGATE; - n->object = $3->objname; - n->objarg = $3->objargs; + n->object = (Node *) $3; n->newowner = $6; $$ = (Node *)n; } @@ -8848,7 +8824,7 @@ AlterOwnerStmt: ALTER AGGREGATE aggregate_with_argtypes OWNER TO RoleSpec { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_COLLATION; - n->object = $3; + n->object = (Node *) $3; n->newowner = $6; $$ = (Node *)n; } @@ -8856,7 +8832,7 @@ AlterOwnerStmt: ALTER AGGREGATE aggregate_with_argtypes OWNER TO RoleSpec { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_CONVERSION; - n->object = $3; + n->object = (Node *) $3; n->newowner = $6; $$ = (Node *)n; } @@ -8864,7 +8840,7 @@ AlterOwnerStmt: ALTER AGGREGATE aggregate_with_argtypes OWNER TO RoleSpec { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_DATABASE; - n->object = list_make1(makeString($3)); + n->object = (Node *) makeString($3); n->newowner = $6; $$ = (Node *)n; } @@ -8872,7 +8848,7 @@ AlterOwnerStmt: ALTER AGGREGATE aggregate_with_argtypes OWNER TO RoleSpec { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_DOMAIN; - n->object = $3; + n->object = (Node *) $3; n->newowner = $6; $$ = (Node *)n; } @@ -8880,8 +8856,7 @@ AlterOwnerStmt: ALTER AGGREGATE aggregate_with_argtypes OWNER TO RoleSpec { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_FUNCTION; - n->object = $3->objname; - n->objarg = $3->objargs; + n->object = (Node *) $3; n->newowner = $6; $$ = (Node *)n; } @@ -8889,7 +8864,7 @@ AlterOwnerStmt: ALTER AGGREGATE aggregate_with_argtypes OWNER TO RoleSpec { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_LANGUAGE; - n->object = list_make1(makeString($4)); + n->object = (Node *) makeString($4); n->newowner = $7; $$ = (Node *)n; } @@ -8897,7 +8872,7 @@ AlterOwnerStmt: ALTER AGGREGATE aggregate_with_argtypes OWNER TO RoleSpec { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_LARGEOBJECT; - n->object = list_make1($4); + n->object = (Node *) $4; n->newowner = $7; $$ = (Node *)n; } @@ -8905,8 +8880,7 @@ AlterOwnerStmt: ALTER AGGREGATE aggregate_with_argtypes OWNER TO RoleSpec { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_OPERATOR; - n->object = $3->objname; - n->objarg = $3->objargs; + n->object = (Node *) $3; n->newowner = $6; $$ = (Node *)n; } @@ -8914,7 +8888,7 @@ AlterOwnerStmt: ALTER AGGREGATE aggregate_with_argtypes OWNER TO RoleSpec { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_OPCLASS; - n->object = lcons(makeString($6), $4); + n->object = (Node *) lcons(makeString($6), $4); n->newowner = $9; $$ = (Node *)n; } @@ -8922,7 +8896,7 @@ AlterOwnerStmt: ALTER AGGREGATE aggregate_with_argtypes OWNER TO RoleSpec { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_OPFAMILY; - n->object = lcons(makeString($6), $4); + n->object = (Node *) lcons(makeString($6), $4); n->newowner = $9; $$ = (Node *)n; } @@ -8930,7 +8904,7 @@ AlterOwnerStmt: ALTER AGGREGATE aggregate_with_argtypes OWNER TO RoleSpec { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_SCHEMA; - n->object = list_make1(makeString($3)); + n->object = (Node *) makeString($3); n->newowner = $6; $$ = (Node *)n; } @@ -8938,7 +8912,7 @@ AlterOwnerStmt: ALTER AGGREGATE aggregate_with_argtypes OWNER TO RoleSpec { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_TYPE; - n->object = $3; + n->object = (Node *) $3; n->newowner = $6; $$ = (Node *)n; } @@ -8946,7 +8920,7 @@ AlterOwnerStmt: ALTER AGGREGATE aggregate_with_argtypes OWNER TO RoleSpec { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_TABLESPACE; - n->object = list_make1(makeString($3)); + n->object = (Node *) makeString($3); n->newowner = $6; $$ = (Node *)n; } @@ -8954,7 +8928,7 @@ AlterOwnerStmt: ALTER AGGREGATE aggregate_with_argtypes OWNER TO RoleSpec { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_TSDICTIONARY; - n->object = $5; + n->object = (Node *) $5; n->newowner = $8; $$ = (Node *)n; } @@ -8962,7 +8936,7 @@ AlterOwnerStmt: ALTER AGGREGATE aggregate_with_argtypes OWNER TO RoleSpec { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_TSCONFIGURATION; - n->object = $5; + n->object = (Node *) $5; n->newowner = $8; $$ = (Node *)n; } @@ -8970,7 +8944,7 @@ AlterOwnerStmt: ALTER AGGREGATE aggregate_with_argtypes OWNER TO RoleSpec { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_FDW; - n->object = list_make1(makeString($5)); + n->object = (Node *) makeString($5); n->newowner = $8; $$ = (Node *)n; } @@ -8978,7 +8952,7 @@ AlterOwnerStmt: ALTER AGGREGATE aggregate_with_argtypes OWNER TO RoleSpec { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_FOREIGN_SERVER; - n->object = list_make1(makeString($3)); + n->object = (Node *) makeString($3); n->newowner = $6; $$ = (Node *)n; } @@ -8986,7 +8960,7 @@ AlterOwnerStmt: ALTER AGGREGATE aggregate_with_argtypes OWNER TO RoleSpec { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_EVENT_TRIGGER; - n->object = list_make1(makeString($4)); + n->object = (Node *) makeString($4); n->newowner = $7; $$ = (Node *)n; } @@ -8994,7 +8968,7 @@ AlterOwnerStmt: ALTER AGGREGATE aggregate_with_argtypes OWNER TO RoleSpec { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_PUBLICATION; - n->object = list_make1(makeString($3)); + n->object = (Node *) makeString($3); n->newowner = $6; $$ = (Node *)n; } @@ -9002,7 +8976,7 @@ AlterOwnerStmt: ALTER AGGREGATE aggregate_with_argtypes OWNER TO RoleSpec { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_SUBSCRIPTION; - n->object = list_make1(makeString($3)); + n->object = (Node *) makeString($3); n->newowner = $6; $$ = (Node *)n; } @@ -9299,7 +9273,6 @@ DropRuleStmt: DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_RULE; n->objects = list_make1(lappend($5, makeString($3))); - n->arguments = NIL; n->behavior = $6; n->missing_ok = false; n->concurrent = false; @@ -9310,7 +9283,6 @@ DropRuleStmt: DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_RULE; n->objects = list_make1(lappend($7, makeString($5))); - n->arguments = NIL; n->behavior = $8; n->missing_ok = true; n->concurrent = false; diff --git a/src/backend/parser/parse_utilcmd.c b/src/backend/parser/parse_utilcmd.c index ff2bab6551..673276a9d3 100644 --- a/src/backend/parser/parse_utilcmd.c +++ b/src/backend/parser/parse_utilcmd.c @@ -947,10 +947,9 @@ transformTableLikeClause(CreateStmtContext *cxt, TableLikeClause *table_like_cla CommentStmt *stmt = makeNode(CommentStmt); stmt->objtype = OBJECT_COLUMN; - stmt->objname = list_make3(makeString(cxt->relation->schemaname), - makeString(cxt->relation->relname), - makeString(def->colname)); - stmt->objargs = NIL; + stmt->object = (Node *) list_make3(makeString(cxt->relation->schemaname), + makeString(cxt->relation->relname), + makeString(def->colname)); stmt->comment = comment; cxt->alist = lappend(cxt->alist, stmt); @@ -1013,10 +1012,9 @@ transformTableLikeClause(CreateStmtContext *cxt, TableLikeClause *table_like_cla CommentStmt *stmt = makeNode(CommentStmt); stmt->objtype = OBJECT_TABCONSTRAINT; - stmt->objname = list_make3(makeString(cxt->relation->schemaname), - makeString(cxt->relation->relname), - makeString(n->conname)); - stmt->objargs = NIL; + stmt->object = (Node *) list_make3(makeString(cxt->relation->schemaname), + makeString(cxt->relation->relname), + makeString(n->conname)); stmt->comment = comment; cxt->alist = lappend(cxt->alist, stmt); |
