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: