]> granicus.if.org Git - postgresql/commitdiff
Make a dedicated AlterTblSpcStmt production
authorStephen Frost <sfrost@snowman.net>
Sun, 13 Apr 2014 05:02:44 +0000 (01:02 -0400)
committerStephen Frost <sfrost@snowman.net>
Sun, 13 Apr 2014 05:02:44 +0000 (01:02 -0400)
Given that ALTER TABLESPACE has moved on from just existing for
general purpose rename/owner changes, it deserves its own top-level
production in the grammar.  This also cleans up the RenameStmt to
only ever be used for actual RENAMEs again- it really wasn't
appropriate to hide non-RENAME productions under there.

Noted by Alvaro.

src/backend/parser/gram.y

index e3060a4dffd50a1d40ec00115d07101953aca333..7b9895d61ece74e80a863809764dfc2a7203b79c 100644 (file)
@@ -218,7 +218,7 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query);
                AlterDatabaseStmt AlterDatabaseSetStmt AlterDomainStmt AlterEnumStmt
                AlterFdwStmt AlterForeignServerStmt AlterGroupStmt
                AlterObjectSchemaStmt AlterOwnerStmt AlterSeqStmt AlterSystemStmt AlterTableStmt
-               AlterExtensionStmt AlterExtensionContentsStmt AlterForeignTableStmt
+               AlterTblSpcStmt AlterExtensionStmt AlterExtensionContentsStmt AlterForeignTableStmt
                AlterCompositeTypeStmt AlterUserStmt AlterUserMappingStmt AlterUserSetStmt
                AlterRoleStmt AlterRoleSetStmt
                AlterDefaultPrivilegesStmt DefACLAction
@@ -728,6 +728,7 @@ stmt :
                        | AlterSeqStmt
                        | AlterSystemStmt
                        | AlterTableStmt
+                       | AlterTblSpcStmt
                        | AlterCompositeTypeStmt
                        | AlterRoleSetStmt
                        | AlterRoleStmt
@@ -6934,6 +6935,128 @@ opt_force:      FORCE                                                                   {  $$ = TRUE; }
                ;
 
 
+/*****************************************************************************
+ *
+ * ALTER TABLESPACE
+ *
+ *****************************************************************************/
+
+AlterTblSpcStmt: ALTER TABLESPACE name MOVE ALL TO name opt_nowait
+                               {
+                                       AlterTableSpaceMoveStmt *n =
+                                               makeNode(AlterTableSpaceMoveStmt);
+                                       n->orig_tablespacename = $3;
+                                       n->objtype = -1;
+                                       n->move_all = true;
+                                       n->roles = NIL;
+                                       n->new_tablespacename = $7;
+                                       n->nowait = $8;
+                                       $$ = (Node *)n;
+                               }
+                       | ALTER TABLESPACE name MOVE TABLES TO name opt_nowait
+                               {
+                                       AlterTableSpaceMoveStmt *n =
+                                               makeNode(AlterTableSpaceMoveStmt);
+                                       n->orig_tablespacename = $3;
+                                       n->objtype = OBJECT_TABLE;
+                                       n->move_all = false;
+                                       n->roles = NIL;
+                                       n->new_tablespacename = $7;
+                                       n->nowait = $8;
+                                       $$ = (Node *)n;
+                               }
+                       | ALTER TABLESPACE name MOVE INDEXES TO name opt_nowait
+                               {
+                                       AlterTableSpaceMoveStmt *n =
+                                               makeNode(AlterTableSpaceMoveStmt);
+                                       n->orig_tablespacename = $3;
+                                       n->objtype = OBJECT_INDEX;
+                                       n->move_all = false;
+                                       n->roles = NIL;
+                                       n->new_tablespacename = $7;
+                                       n->nowait = $8;
+                                       $$ = (Node *)n;
+                               }
+                       | ALTER TABLESPACE name MOVE MATERIALIZED VIEWS TO name opt_nowait
+                               {
+                                       AlterTableSpaceMoveStmt *n =
+                                               makeNode(AlterTableSpaceMoveStmt);
+                                       n->orig_tablespacename = $3;
+                                       n->objtype = OBJECT_MATVIEW;
+                                       n->move_all = false;
+                                       n->roles = NIL;
+                                       n->new_tablespacename = $8;
+                                       n->nowait = $9;
+                                       $$ = (Node *)n;
+                               }
+                       | ALTER TABLESPACE name MOVE ALL OWNED BY role_list TO name opt_nowait
+                               {
+                                       AlterTableSpaceMoveStmt *n =
+                                               makeNode(AlterTableSpaceMoveStmt);
+                                       n->orig_tablespacename = $3;
+                                       n->objtype = -1;
+                                       n->move_all = true;
+                                       n->roles = $8;
+                                       n->new_tablespacename = $10;
+                                       n->nowait = $11;
+                                       $$ = (Node *)n;
+                               }
+                       | ALTER TABLESPACE name MOVE TABLES OWNED BY role_list TO name opt_nowait
+                               {
+                                       AlterTableSpaceMoveStmt *n =
+                                               makeNode(AlterTableSpaceMoveStmt);
+                                       n->orig_tablespacename = $3;
+                                       n->objtype = OBJECT_TABLE;
+                                       n->move_all = false;
+                                       n->roles = $8;
+                                       n->new_tablespacename = $10;
+                                       n->nowait = $11;
+                                       $$ = (Node *)n;
+                               }
+                       | ALTER TABLESPACE name MOVE INDEXES OWNED BY role_list TO name opt_nowait
+                               {
+                                       AlterTableSpaceMoveStmt *n =
+                                               makeNode(AlterTableSpaceMoveStmt);
+                                       n->orig_tablespacename = $3;
+                                       n->objtype = OBJECT_INDEX;
+                                       n->move_all = false;
+                                       n->roles = $8;
+                                       n->new_tablespacename = $10;
+                                       n->nowait = $11;
+                                       $$ = (Node *)n;
+                               }
+                       | ALTER TABLESPACE name MOVE MATERIALIZED VIEWS OWNED BY role_list TO name opt_nowait
+                               {
+                                       AlterTableSpaceMoveStmt *n =
+                                               makeNode(AlterTableSpaceMoveStmt);
+                                       n->orig_tablespacename = $3;
+                                       n->objtype = OBJECT_MATVIEW;
+                                       n->move_all = false;
+                                       n->roles = $9;
+                                       n->new_tablespacename = $11;
+                                       n->nowait = $12;
+                                       $$ = (Node *)n;
+                               }
+                       | ALTER TABLESPACE name SET reloptions
+                               {
+                                       AlterTableSpaceOptionsStmt *n =
+                                               makeNode(AlterTableSpaceOptionsStmt);
+                                       n->tablespacename = $3;
+                                       n->options = $5;
+                                       n->isReset = FALSE;
+                                       $$ = (Node *)n;
+                               }
+                       | ALTER TABLESPACE name RESET reloptions
+                               {
+                                       AlterTableSpaceOptionsStmt *n =
+                                               makeNode(AlterTableSpaceOptionsStmt);
+                                       n->tablespacename = $3;
+                                       n->options = $5;
+                                       n->isReset = TRUE;
+                                       $$ = (Node *)n;
+                               }
+               ;
+
 /*****************************************************************************
  *
  * ALTER THING name RENAME TO newname
@@ -7322,120 +7445,6 @@ RenameStmt: ALTER AGGREGATE func_name aggr_args RENAME TO name
                                        n->missing_ok = false;
                                        $$ = (Node *)n;
                                }
-                       | ALTER TABLESPACE name MOVE ALL TO name opt_nowait
-                               {
-                                       AlterTableSpaceMoveStmt *n =
-                                               makeNode(AlterTableSpaceMoveStmt);
-                                       n->orig_tablespacename = $3;
-                                       n->objtype = -1;
-                                       n->move_all = true;
-                                       n->roles = NIL;
-                                       n->new_tablespacename = $7;
-                                       n->nowait = $8;
-                                       $$ = (Node *)n;
-                               }
-                       | ALTER TABLESPACE name MOVE TABLES TO name opt_nowait
-                               {
-                                       AlterTableSpaceMoveStmt *n =
-                                               makeNode(AlterTableSpaceMoveStmt);
-                                       n->orig_tablespacename = $3;
-                                       n->objtype = OBJECT_TABLE;
-                                       n->move_all = false;
-                                       n->roles = NIL;
-                                       n->new_tablespacename = $7;
-                                       n->nowait = $8;
-                                       $$ = (Node *)n;
-                               }
-                       | ALTER TABLESPACE name MOVE INDEXES TO name opt_nowait
-                               {
-                                       AlterTableSpaceMoveStmt *n =
-                                               makeNode(AlterTableSpaceMoveStmt);
-                                       n->orig_tablespacename = $3;
-                                       n->objtype = OBJECT_INDEX;
-                                       n->move_all = false;
-                                       n->roles = NIL;
-                                       n->new_tablespacename = $7;
-                                       n->nowait = $8;
-                                       $$ = (Node *)n;
-                               }
-                       | ALTER TABLESPACE name MOVE MATERIALIZED VIEWS TO name opt_nowait
-                               {
-                                       AlterTableSpaceMoveStmt *n =
-                                               makeNode(AlterTableSpaceMoveStmt);
-                                       n->orig_tablespacename = $3;
-                                       n->objtype = OBJECT_MATVIEW;
-                                       n->move_all = false;
-                                       n->roles = NIL;
-                                       n->new_tablespacename = $8;
-                                       n->nowait = $9;
-                                       $$ = (Node *)n;
-                               }
-                       | ALTER TABLESPACE name MOVE ALL OWNED BY role_list TO name opt_nowait
-                               {
-                                       AlterTableSpaceMoveStmt *n =
-                                               makeNode(AlterTableSpaceMoveStmt);
-                                       n->orig_tablespacename = $3;
-                                       n->objtype = -1;
-                                       n->move_all = true;
-                                       n->roles = $8;
-                                       n->new_tablespacename = $10;
-                                       n->nowait = $11;
-                                       $$ = (Node *)n;
-                               }
-                       | ALTER TABLESPACE name MOVE TABLES OWNED BY role_list TO name opt_nowait
-                               {
-                                       AlterTableSpaceMoveStmt *n =
-                                               makeNode(AlterTableSpaceMoveStmt);
-                                       n->orig_tablespacename = $3;
-                                       n->objtype = OBJECT_TABLE;
-                                       n->move_all = false;
-                                       n->roles = $8;
-                                       n->new_tablespacename = $10;
-                                       n->nowait = $11;
-                                       $$ = (Node *)n;
-                               }
-                       | ALTER TABLESPACE name MOVE INDEXES OWNED BY role_list TO name opt_nowait
-                               {
-                                       AlterTableSpaceMoveStmt *n =
-                                               makeNode(AlterTableSpaceMoveStmt);
-                                       n->orig_tablespacename = $3;
-                                       n->objtype = OBJECT_INDEX;
-                                       n->move_all = false;
-                                       n->roles = $8;
-                                       n->new_tablespacename = $10;
-                                       n->nowait = $11;
-                                       $$ = (Node *)n;
-                               }
-                       | ALTER TABLESPACE name MOVE MATERIALIZED VIEWS OWNED BY role_list TO name opt_nowait
-                               {
-                                       AlterTableSpaceMoveStmt *n =
-                                               makeNode(AlterTableSpaceMoveStmt);
-                                       n->orig_tablespacename = $3;
-                                       n->objtype = OBJECT_MATVIEW;
-                                       n->move_all = false;
-                                       n->roles = $9;
-                                       n->new_tablespacename = $11;
-                                       n->nowait = $12;
-                                       $$ = (Node *)n;
-                               }
-                       | ALTER TABLESPACE name SET reloptions
-                               {
-                                       AlterTableSpaceOptionsStmt *n =
-                                               makeNode(AlterTableSpaceOptionsStmt);
-                                       n->tablespacename = $3;
-                                       n->options = $5;
-                                       n->isReset = FALSE;
-                                       $$ = (Node *)n;
-                               }
-                       | ALTER TABLESPACE name RESET reloptions
-                               {
-                                       AlterTableSpaceOptionsStmt *n =
-                                               makeNode(AlterTableSpaceOptionsStmt);
-                                       n->tablespacename = $3;
-                                       n->options = $5;
-                                       n->isReset = TRUE;
-                                       $$ = (Node *)n;
-                               }
                        | ALTER TEXT_P SEARCH PARSER any_name RENAME TO name
                                {
                                        RenameStmt *n = makeNode(RenameStmt);