diff options
| author | Stephen Frost | 2014-01-18 23:56:40 +0000 |
|---|---|---|
| committer | Stephen Frost | 2014-01-18 23:56:40 +0000 |
| commit | 76e91b38ba64e1da70ea21744b342cb105ea3400 (patch) | |
| tree | bc485da708d31d5484d5a3de6489cf73684a9640 /src/include | |
| parent | 6f25c62d788ea6312fe718ed57a3d169d8efc066 (diff) | |
Add ALTER TABLESPACE ... MOVE command
This adds a 'MOVE' sub-command to ALTER TABLESPACE which allows moving sets of
objects from one tablespace to another. This can be extremely handy and avoids
a lot of error-prone scripting. ALTER TABLESPACE ... MOVE will only move
objects the user owns, will notify the user if no objects were found, and can
be used to move ALL objects or specific types of objects (TABLES, INDEXES, or
MATERIALIZED VIEWS).
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/commands/tablespace.h | 1 | ||||
| -rw-r--r-- | src/include/nodes/nodes.h | 1 | ||||
| -rw-r--r-- | src/include/nodes/parsenodes.h | 10 | ||||
| -rw-r--r-- | src/include/parser/kwlist.h | 1 |
4 files changed, 13 insertions, 0 deletions
diff --git a/src/include/commands/tablespace.h b/src/include/commands/tablespace.h index c7af55917d7..1603f677a7d 100644 --- a/src/include/commands/tablespace.h +++ b/src/include/commands/tablespace.h @@ -43,6 +43,7 @@ extern Oid CreateTableSpace(CreateTableSpaceStmt *stmt); extern void DropTableSpace(DropTableSpaceStmt *stmt); extern Oid RenameTableSpace(const char *oldname, const char *newname); extern Oid AlterTableSpaceOptions(AlterTableSpaceOptionsStmt *stmt); +extern Oid AlterTableSpaceMove(AlterTableSpaceMoveStmt *stmt); extern void TablespaceCreateDbspace(Oid spcNode, Oid dbNode, bool isRedo); diff --git a/src/include/nodes/nodes.h b/src/include/nodes/nodes.h index ae12c0de038..dfcc01344ea 100644 --- a/src/include/nodes/nodes.h +++ b/src/include/nodes/nodes.h @@ -354,6 +354,7 @@ typedef enum NodeTag T_AlterUserMappingStmt, T_DropUserMappingStmt, T_AlterTableSpaceOptionsStmt, + T_AlterTableSpaceMoveStmt, T_SecLabelStmt, T_CreateForeignTableStmt, T_CreateExtensionStmt, diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h index 9a3a5d76cc2..f86edc61c3a 100644 --- a/src/include/nodes/parsenodes.h +++ b/src/include/nodes/parsenodes.h @@ -1686,6 +1686,16 @@ typedef struct AlterTableSpaceOptionsStmt bool isReset; } AlterTableSpaceOptionsStmt; +typedef struct AlterTableSpaceMoveStmt +{ + NodeTag type; + char *orig_tablespacename; + char *new_tablespacename; + ObjectType objtype; + bool nowait; + bool move_all; +} AlterTableSpaceMoveStmt; + /* ---------------------- * Create/Alter Extension Statements * ---------------------- diff --git a/src/include/parser/kwlist.h b/src/include/parser/kwlist.h index 41ec2696b05..61fae22f0a0 100644 --- a/src/include/parser/kwlist.h +++ b/src/include/parser/kwlist.h @@ -406,6 +406,7 @@ PG_KEYWORD("varying", VARYING, UNRESERVED_KEYWORD) PG_KEYWORD("verbose", VERBOSE, TYPE_FUNC_NAME_KEYWORD) PG_KEYWORD("version", VERSION_P, UNRESERVED_KEYWORD) PG_KEYWORD("view", VIEW, UNRESERVED_KEYWORD) +PG_KEYWORD("views", VIEWS, UNRESERVED_KEYWORD) PG_KEYWORD("volatile", VOLATILE, UNRESERVED_KEYWORD) PG_KEYWORD("when", WHEN, RESERVED_KEYWORD) PG_KEYWORD("where", WHERE, RESERVED_KEYWORD) |
