Use qualified_name instead of relation_expr for commands that have no
authorPeter Eisentraut <peter_e@gmx.net>
Mon, 12 Jan 2009 09:38:30 +0000 (09:38 +0000)
committerPeter Eisentraut <peter_e@gmx.net>
Mon, 12 Jan 2009 09:38:30 +0000 (09:38 +0000)
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

index 10d162b42ea55751d39b70d45de70c8fefb27fa9..f193f4390c677fe653228b0e957f7f6043619740 100644 (file)
@@ -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;