summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorStephen Frost2014-01-24 04:52:40 +0000
committerStephen Frost2014-01-24 04:52:40 +0000
commitfbe19ee3b87590f1006d072be5fecf8a33d4e9f5 (patch)
tree1e4a87ee5af49862e84d372d1ad29f278ca5648a /src/include
parent3ee74df2e48cde3c471637d14b18475abb0eb69a (diff)
ALTER TABLESPACE ... MOVE ... OWNED BY
Add the ability to specify the objects to move by who those objects are owned by (as relowner) and change ALL to mean ALL objects. This makes the command always operate against a well-defined set of objects and not have the objects-to-be-moved based on the role of the user running the command. Per discussion with Simon and Tom.
Diffstat (limited to 'src/include')
-rw-r--r--src/include/commands/user.h1
-rw-r--r--src/include/nodes/parsenodes.h5
2 files changed, 4 insertions, 2 deletions
diff --git a/src/include/commands/user.h b/src/include/commands/user.h
index 9e73a195e3f..d76685182f8 100644
--- a/src/include/commands/user.h
+++ b/src/include/commands/user.h
@@ -30,5 +30,6 @@ extern void GrantRole(GrantRoleStmt *stmt);
extern Oid RenameRole(const char *oldname, const char *newname);
extern void DropOwnedObjects(DropOwnedStmt *stmt);
extern void ReassignOwnedObjects(ReassignOwnedStmt *stmt);
+extern List *roleNamesToIds(List *memberNames);
#endif /* USER_H */
diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h
index 846c31aebdf..ad58b3949b6 100644
--- a/src/include/nodes/parsenodes.h
+++ b/src/include/nodes/parsenodes.h
@@ -1691,10 +1691,11 @@ typedef struct AlterTableSpaceMoveStmt
{
NodeTag type;
char *orig_tablespacename;
+ ObjectType objtype; /* set to -1 if move_all is true */
+ bool move_all; /* move all, or just objtype objects? */
+ List *roles; /* List of roles to move objects of */
char *new_tablespacename;
- ObjectType objtype;
bool nowait;
- bool move_all;
} AlterTableSpaceMoveStmt;
/* ----------------------