Fold AlterForeignTableStmt into AlterTableStmt
authorPeter Eisentraut <peter@eisentraut.org>
Thu, 11 Jun 2020 06:21:24 +0000 (08:21 +0200)
committerPeter Eisentraut <peter@eisentraut.org>
Thu, 11 Jun 2020 06:21:24 +0000 (08:21 +0200)
All other relation types are handled by AlterTableStmt, so it's
unnecessary to make a different statement for foreign tables.

Discussion: https://www.postgresql.org/message-id/flat/163c00a5-f634-ca52-fc7c-0e53deda8735%402ndquadrant.com

src/backend/parser/gram.y

index 9ed640c379b752fdf941f0d00f7fb01db188fe83..6797d550cd0cb4789a0d2bd238187b4cf2df0080 100644 (file)
@@ -259,7 +259,7 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query);
                AlterFdwStmt AlterForeignServerStmt AlterGroupStmt
                AlterObjectDependsStmt AlterObjectSchemaStmt AlterOwnerStmt
                AlterOperatorStmt AlterTypeStmt AlterSeqStmt AlterSystemStmt AlterTableStmt
-               AlterTblSpcStmt AlterExtensionStmt AlterExtensionContentsStmt AlterForeignTableStmt
+               AlterTblSpcStmt AlterExtensionStmt AlterExtensionContentsStmt
                AlterCompositeTypeStmt AlterUserMappingStmt
                AlterRoleStmt AlterRoleSetStmt AlterPolicyStmt AlterStatsStmt
                AlterDefaultPrivilegesStmt DefACLAction
@@ -850,7 +850,6 @@ stmt :
                        | AlterExtensionContentsStmt
                        | AlterFdwStmt
                        | AlterForeignServerStmt
-                       | AlterForeignTableStmt
                        | AlterFunctionStmt
                        | AlterGroupStmt
                        | AlterObjectDependsStmt
@@ -1836,9 +1835,9 @@ DiscardStmt:
 
 /*****************************************************************************
  *
- *     ALTER [ TABLE | INDEX | SEQUENCE | VIEW | MATERIALIZED VIEW ] variations
+ *     ALTER [ TABLE | INDEX | SEQUENCE | VIEW | MATERIALIZED VIEW | FOREIGN TABLE ] variations
  *
- * Note: we accept all subcommands for each of the five variants, and sort
+ * Note: we accept all subcommands for each of the variants, and sort
  * out what's really legal at execution time.
  *****************************************************************************/
 
@@ -2026,6 +2025,24 @@ AlterTableStmt:
                                        n->nowait = $14;
                                        $$ = (Node *)n;
                                }
+               |       ALTER FOREIGN TABLE relation_expr alter_table_cmds
+                               {
+                                       AlterTableStmt *n = makeNode(AlterTableStmt);
+                                       n->relation = $4;
+                                       n->cmds = $5;
+                                       n->relkind = OBJECT_FOREIGN_TABLE;
+                                       n->missing_ok = false;
+                                       $$ = (Node *)n;
+                               }
+               |       ALTER FOREIGN TABLE IF_P EXISTS relation_expr alter_table_cmds
+                               {
+                                       AlterTableStmt *n = makeNode(AlterTableStmt);
+                                       n->relation = $6;
+                                       n->cmds = $7;
+                                       n->relkind = OBJECT_FOREIGN_TABLE;
+                                       n->missing_ok = true;
+                                       $$ = (Node *)n;
+                               }
                ;
 
 alter_table_cmds:
@@ -5111,34 +5128,6 @@ CreateForeignTableStmt:
                                }
                ;
 
-/*****************************************************************************
- *
- *             QUERY:
- *             ALTER FOREIGN TABLE relname [...]
- *
- *****************************************************************************/
-
-AlterForeignTableStmt:
-                       ALTER FOREIGN TABLE relation_expr alter_table_cmds
-                               {
-                                       AlterTableStmt *n = makeNode(AlterTableStmt);
-                                       n->relation = $4;
-                                       n->cmds = $5;
-                                       n->relkind = OBJECT_FOREIGN_TABLE;
-                                       n->missing_ok = false;
-                                       $$ = (Node *)n;
-                               }
-                       | ALTER FOREIGN TABLE IF_P EXISTS relation_expr alter_table_cmds
-                               {
-                                       AlterTableStmt *n = makeNode(AlterTableStmt);
-                                       n->relation = $6;
-                                       n->cmds = $7;
-                                       n->relkind = OBJECT_FOREIGN_TABLE;
-                                       n->missing_ok = true;
-                                       $$ = (Node *)n;
-                               }
-               ;
-
 /*****************************************************************************
  *
  *             QUERY: