Skip to content

Commit 5f508b6

Browse files
committed
Make a dedicated AlterTblSpcStmt production
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.
1 parent b3e6593 commit 5f508b6

File tree

1 file changed

+124
-115
lines changed

1 file changed

+124
-115
lines changed

src/backend/parser/gram.y

Lines changed: 124 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query);
218218
AlterDatabaseStmt AlterDatabaseSetStmt AlterDomainStmt AlterEnumStmt
219219
AlterFdwStmt AlterForeignServerStmt AlterGroupStmt
220220
AlterObjectSchemaStmt AlterOwnerStmt AlterSeqStmt AlterSystemStmt AlterTableStmt
221-
AlterExtensionStmt AlterExtensionContentsStmt AlterForeignTableStmt
221+
AlterTblSpcStmt AlterExtensionStmt AlterExtensionContentsStmt AlterForeignTableStmt
222222
AlterCompositeTypeStmt AlterUserStmt AlterUserMappingStmt AlterUserSetStmt
223223
AlterRoleStmt AlterRoleSetStmt
224224
AlterDefaultPrivilegesStmt DefACLAction
@@ -728,6 +728,7 @@ stmt :
728728
| AlterSeqStmt
729729
| AlterSystemStmt
730730
| AlterTableStmt
731+
| AlterTblSpcStmt
731732
| AlterCompositeTypeStmt
732733
| AlterRoleSetStmt
733734
| AlterRoleStmt
@@ -6934,6 +6935,128 @@ opt_force: FORCE { $$ = TRUE; }
69346935
;
69356936

69366937

6938+
/*****************************************************************************
6939+
*
6940+
* ALTER TABLESPACE
6941+
*
6942+
*****************************************************************************/
6943+
6944+
AlterTblSpcStmt: ALTER TABLESPACE name MOVE ALL TO name opt_nowait
6945+
{
6946+
AlterTableSpaceMoveStmt *n =
6947+
makeNode(AlterTableSpaceMoveStmt);
6948+
n->orig_tablespacename = $3;
6949+
n->objtype = -1;
6950+
n->move_all = true;
6951+
n->roles = NIL;
6952+
n->new_tablespacename = $7;
6953+
n->nowait = $8;
6954+
$$ = (Node *)n;
6955+
}
6956+
| ALTER TABLESPACE name MOVE TABLES TO name opt_nowait
6957+
{
6958+
AlterTableSpaceMoveStmt *n =
6959+
makeNode(AlterTableSpaceMoveStmt);
6960+
n->orig_tablespacename = $3;
6961+
n->objtype = OBJECT_TABLE;
6962+
n->move_all = false;
6963+
n->roles = NIL;
6964+
n->new_tablespacename = $7;
6965+
n->nowait = $8;
6966+
$$ = (Node *)n;
6967+
}
6968+
| ALTER TABLESPACE name MOVE INDEXES TO name opt_nowait
6969+
{
6970+
AlterTableSpaceMoveStmt *n =
6971+
makeNode(AlterTableSpaceMoveStmt);
6972+
n->orig_tablespacename = $3;
6973+
n->objtype = OBJECT_INDEX;
6974+
n->move_all = false;
6975+
n->roles = NIL;
6976+
n->new_tablespacename = $7;
6977+
n->nowait = $8;
6978+
$$ = (Node *)n;
6979+
}
6980+
| ALTER TABLESPACE name MOVE MATERIALIZED VIEWS TO name opt_nowait
6981+
{
6982+
AlterTableSpaceMoveStmt *n =
6983+
makeNode(AlterTableSpaceMoveStmt);
6984+
n->orig_tablespacename = $3;
6985+
n->objtype = OBJECT_MATVIEW;
6986+
n->move_all = false;
6987+
n->roles = NIL;
6988+
n->new_tablespacename = $8;
6989+
n->nowait = $9;
6990+
$$ = (Node *)n;
6991+
}
6992+
| ALTER TABLESPACE name MOVE ALL OWNED BY role_list TO name opt_nowait
6993+
{
6994+
AlterTableSpaceMoveStmt *n =
6995+
makeNode(AlterTableSpaceMoveStmt);
6996+
n->orig_tablespacename = $3;
6997+
n->objtype = -1;
6998+
n->move_all = true;
6999+
n->roles = $8;
7000+
n->new_tablespacename = $10;
7001+
n->nowait = $11;
7002+
$$ = (Node *)n;
7003+
}
7004+
| ALTER TABLESPACE name MOVE TABLES OWNED BY role_list TO name opt_nowait
7005+
{
7006+
AlterTableSpaceMoveStmt *n =
7007+
makeNode(AlterTableSpaceMoveStmt);
7008+
n->orig_tablespacename = $3;
7009+
n->objtype = OBJECT_TABLE;
7010+
n->move_all = false;
7011+
n->roles = $8;
7012+
n->new_tablespacename = $10;
7013+
n->nowait = $11;
7014+
$$ = (Node *)n;
7015+
}
7016+
| ALTER TABLESPACE name MOVE INDEXES OWNED BY role_list TO name opt_nowait
7017+
{
7018+
AlterTableSpaceMoveStmt *n =
7019+
makeNode(AlterTableSpaceMoveStmt);
7020+
n->orig_tablespacename = $3;
7021+
n->objtype = OBJECT_INDEX;
7022+
n->move_all = false;
7023+
n->roles = $8;
7024+
n->new_tablespacename = $10;
7025+
n->nowait = $11;
7026+
$$ = (Node *)n;
7027+
}
7028+
| ALTER TABLESPACE name MOVE MATERIALIZED VIEWS OWNED BY role_list TO name opt_nowait
7029+
{
7030+
AlterTableSpaceMoveStmt *n =
7031+
makeNode(AlterTableSpaceMoveStmt);
7032+
n->orig_tablespacename = $3;
7033+
n->objtype = OBJECT_MATVIEW;
7034+
n->move_all = false;
7035+
n->roles = $9;
7036+
n->new_tablespacename = $11;
7037+
n->nowait = $12;
7038+
$$ = (Node *)n;
7039+
}
7040+
| ALTER TABLESPACE name SET reloptions
7041+
{
7042+
AlterTableSpaceOptionsStmt *n =
7043+
makeNode(AlterTableSpaceOptionsStmt);
7044+
n->tablespacename = $3;
7045+
n->options = $5;
7046+
n->isReset = FALSE;
7047+
$$ = (Node *)n;
7048+
}
7049+
| ALTER TABLESPACE name RESET reloptions
7050+
{
7051+
AlterTableSpaceOptionsStmt *n =
7052+
makeNode(AlterTableSpaceOptionsStmt);
7053+
n->tablespacename = $3;
7054+
n->options = $5;
7055+
n->isReset = TRUE;
7056+
$$ = (Node *)n;
7057+
}
7058+
;
7059+
69377060
/*****************************************************************************
69387061
*
69397062
* ALTER THING name RENAME TO newname
@@ -7322,120 +7445,6 @@ RenameStmt: ALTER AGGREGATE func_name aggr_args RENAME TO name
73227445
n->missing_ok = false;
73237446
$$ = (Node *)n;
73247447
}
7325-
| ALTER TABLESPACE name MOVE ALL TO name opt_nowait
7326-
{
7327-
AlterTableSpaceMoveStmt *n =
7328-
makeNode(AlterTableSpaceMoveStmt);
7329-
n->orig_tablespacename = $3;
7330-
n->objtype = -1;
7331-
n->move_all = true;
7332-
n->roles = NIL;
7333-
n->new_tablespacename = $7;
7334-
n->nowait = $8;
7335-
$$ = (Node *)n;
7336-
}
7337-
| ALTER TABLESPACE name MOVE TABLES TO name opt_nowait
7338-
{
7339-
AlterTableSpaceMoveStmt *n =
7340-
makeNode(AlterTableSpaceMoveStmt);
7341-
n->orig_tablespacename = $3;
7342-
n->objtype = OBJECT_TABLE;
7343-
n->move_all = false;
7344-
n->roles = NIL;
7345-
n->new_tablespacename = $7;
7346-
n->nowait = $8;
7347-
$$ = (Node *)n;
7348-
}
7349-
| ALTER TABLESPACE name MOVE INDEXES TO name opt_nowait
7350-
{
7351-
AlterTableSpaceMoveStmt *n =
7352-
makeNode(AlterTableSpaceMoveStmt);
7353-
n->orig_tablespacename = $3;
7354-
n->objtype = OBJECT_INDEX;
7355-
n->move_all = false;
7356-
n->roles = NIL;
7357-
n->new_tablespacename = $7;
7358-
n->nowait = $8;
7359-
$$ = (Node *)n;
7360-
}
7361-
| ALTER TABLESPACE name MOVE MATERIALIZED VIEWS TO name opt_nowait
7362-
{
7363-
AlterTableSpaceMoveStmt *n =
7364-
makeNode(AlterTableSpaceMoveStmt);
7365-
n->orig_tablespacename = $3;
7366-
n->objtype = OBJECT_MATVIEW;
7367-
n->move_all = false;
7368-
n->roles = NIL;
7369-
n->new_tablespacename = $8;
7370-
n->nowait = $9;
7371-
$$ = (Node *)n;
7372-
}
7373-
| ALTER TABLESPACE name MOVE ALL OWNED BY role_list TO name opt_nowait
7374-
{
7375-
AlterTableSpaceMoveStmt *n =
7376-
makeNode(AlterTableSpaceMoveStmt);
7377-
n->orig_tablespacename = $3;
7378-
n->objtype = -1;
7379-
n->move_all = true;
7380-
n->roles = $8;
7381-
n->new_tablespacename = $10;
7382-
n->nowait = $11;
7383-
$$ = (Node *)n;
7384-
}
7385-
| ALTER TABLESPACE name MOVE TABLES OWNED BY role_list TO name opt_nowait
7386-
{
7387-
AlterTableSpaceMoveStmt *n =
7388-
makeNode(AlterTableSpaceMoveStmt);
7389-
n->orig_tablespacename = $3;
7390-
n->objtype = OBJECT_TABLE;
7391-
n->move_all = false;
7392-
n->roles = $8;
7393-
n->new_tablespacename = $10;
7394-
n->nowait = $11;
7395-
$$ = (Node *)n;
7396-
}
7397-
| ALTER TABLESPACE name MOVE INDEXES OWNED BY role_list TO name opt_nowait
7398-
{
7399-
AlterTableSpaceMoveStmt *n =
7400-
makeNode(AlterTableSpaceMoveStmt);
7401-
n->orig_tablespacename = $3;
7402-
n->objtype = OBJECT_INDEX;
7403-
n->move_all = false;
7404-
n->roles = $8;
7405-
n->new_tablespacename = $10;
7406-
n->nowait = $11;
7407-
$$ = (Node *)n;
7408-
}
7409-
| ALTER TABLESPACE name MOVE MATERIALIZED VIEWS OWNED BY role_list TO name opt_nowait
7410-
{
7411-
AlterTableSpaceMoveStmt *n =
7412-
makeNode(AlterTableSpaceMoveStmt);
7413-
n->orig_tablespacename = $3;
7414-
n->objtype = OBJECT_MATVIEW;
7415-
n->move_all = false;
7416-
n->roles = $9;
7417-
n->new_tablespacename = $11;
7418-
n->nowait = $12;
7419-
$$ = (Node *)n;
7420-
}
7421-
| ALTER TABLESPACE name SET reloptions
7422-
{
7423-
AlterTableSpaceOptionsStmt *n =
7424-
makeNode(AlterTableSpaceOptionsStmt);
7425-
n->tablespacename = $3;
7426-
n->options = $5;
7427-
n->isReset = FALSE;
7428-
$$ = (Node *)n;
7429-
}
7430-
| ALTER TABLESPACE name RESET reloptions
7431-
{
7432-
AlterTableSpaceOptionsStmt *n =
7433-
makeNode(AlterTableSpaceOptionsStmt);
7434-
n->tablespacename = $3;
7435-
n->options = $5;
7436-
n->isReset = TRUE;
7437-
$$ = (Node *)n;
7438-
}
74397448
| ALTER TEXT_P SEARCH PARSER any_name RENAME TO name
74407449
{
74417450
RenameStmt *n = makeNode(RenameStmt);

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy