From bf21cdb7e74c37841a06d5058f0e2f5d4e59e24f Mon Sep 17 00:00:00 2001 From: Peter Eisentraut <peter_e@gmx.net> Date: Mon, 12 Jan 2009 09:38:30 +0000 Subject: [PATCH] Use qualified_name instead of relation_expr for commands that have no business with inheritance recursion: ALTER INDEX, ALTER SEQUENCE, ALTER TRIGGER, ALTER VIEW. They would just silently ignore the ONLY. ALTER TABLE has mixed behavior and cannot be dealt with this way because of the resulting shift/reduce conflicts. --- src/backend/parser/gram.y | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 145e4aac5d3..448b7615988 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -11,7 +11,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.653 2009/01/12 08:54:26 petere Exp $ + * $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.654 2009/01/12 09:38:30 petere Exp $ * * HISTORY * AUTHOR DATE MAJOR EVENT @@ -1503,7 +1503,7 @@ AlterTableStmt: n->relkind = OBJECT_TABLE; $$ = (Node *)n; } - | ALTER INDEX relation_expr alter_table_cmds + | ALTER INDEX qualified_name alter_table_cmds { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = $3; @@ -1511,7 +1511,7 @@ AlterTableStmt: n->relkind = OBJECT_INDEX; $$ = (Node *)n; } - | ALTER SEQUENCE relation_expr alter_table_cmds + | ALTER SEQUENCE qualified_name alter_table_cmds { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = $3; @@ -1519,7 +1519,7 @@ AlterTableStmt: n->relkind = OBJECT_SEQUENCE; $$ = (Node *)n; } - | ALTER VIEW relation_expr alter_table_cmds + | ALTER VIEW qualified_name alter_table_cmds { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = $3; @@ -2548,7 +2548,7 @@ CreateSeqStmt: ; AlterSeqStmt: - ALTER SEQUENCE relation_expr SeqOptList + ALTER SEQUENCE qualified_name SeqOptList { AlterSeqStmt *n = makeNode(AlterSeqStmt); n->sequence = $3; @@ -5185,7 +5185,7 @@ RenameStmt: ALTER AGGREGATE func_name aggr_args RENAME TO name n->newname = $6; $$ = (Node *)n; } - | ALTER SEQUENCE relation_expr RENAME TO name + | ALTER SEQUENCE qualified_name RENAME TO name { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_SEQUENCE; @@ -5194,7 +5194,7 @@ RenameStmt: ALTER AGGREGATE func_name aggr_args RENAME TO name n->newname = $6; $$ = (Node *)n; } - | ALTER VIEW relation_expr RENAME TO name + | ALTER VIEW qualified_name RENAME TO name { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_VIEW; @@ -5203,7 +5203,7 @@ RenameStmt: ALTER AGGREGATE func_name aggr_args RENAME TO name n->newname = $6; $$ = (Node *)n; } - | ALTER INDEX relation_expr RENAME TO name + | ALTER INDEX qualified_name RENAME TO name { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_INDEX; @@ -5221,7 +5221,7 @@ RenameStmt: ALTER AGGREGATE func_name aggr_args RENAME TO name n->newname = $8; $$ = (Node *)n; } - | ALTER TRIGGER name ON relation_expr RENAME TO name + | ALTER TRIGGER name ON qualified_name RENAME TO name { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TRIGGER; @@ -5345,7 +5345,7 @@ AlterObjectSchemaStmt: n->newschema = $6; $$ = (Node *)n; } - | ALTER SEQUENCE relation_expr SET SCHEMA name + | ALTER SEQUENCE qualified_name SET SCHEMA name { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_SEQUENCE; @@ -5353,7 +5353,7 @@ AlterObjectSchemaStmt: n->newschema = $6; $$ = (Node *)n; } - | ALTER VIEW relation_expr SET SCHEMA name + | ALTER VIEW qualified_name SET SCHEMA name { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_VIEW; -- GitLab