summaryrefslogtreecommitdiff
path: root/src/backend/parser
diff options
context:
space:
mode:
authorPeter Eisentraut2016-11-12 17:00:00 +0000
committerPeter Eisentraut2017-03-06 18:31:47 +0000
commit8b6d6cf853aab12f0dc2adba7c99c3e458662734 (patch)
tree783806b4919b26f56dafde70e34bd6cd38bb261e /src/backend/parser
parent550214a4efb214dfc9c2a475607deeeea69da858 (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.y440
-rw-r--r--src/backend/parser/parse_utilcmd.c14
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);