diff options
Diffstat (limited to 'src/backend/tcop/utility.c')
-rw-r--r-- | src/backend/tcop/utility.c | 95 |
1 files changed, 38 insertions, 57 deletions
diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c index 82bd8eafc11..40d5e7d7ce6 100644 --- a/src/backend/tcop/utility.c +++ b/src/backend/tcop/utility.c @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/tcop/utility.c,v 1.238 2005/06/22 21:14:30 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/tcop/utility.c,v 1.239 2005/06/28 05:09:00 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -20,7 +20,6 @@ #include "access/twophase.h" #include "catalog/catalog.h" #include "catalog/namespace.h" -#include "catalog/pg_shadow.h" #include "commands/alter.h" #include "commands/async.h" #include "commands/cluster.h" @@ -279,12 +278,11 @@ check_xact_readonly(Node *parsetree) case T_AlterDatabaseSetStmt: case T_AlterDomainStmt: case T_AlterFunctionStmt: - case T_AlterGroupStmt: + case T_AlterRoleStmt: + case T_AlterRoleSetStmt: case T_AlterOwnerStmt: case T_AlterSeqStmt: case T_AlterTableStmt: - case T_AlterUserStmt: - case T_AlterUserSetStmt: case T_RenameStmt: case T_CommentStmt: case T_DefineStmt: @@ -293,7 +291,7 @@ check_xact_readonly(Node *parsetree) case T_CreatedbStmt: case T_CreateDomainStmt: case T_CreateFunctionStmt: - case T_CreateGroupStmt: + case T_CreateRoleStmt: case T_IndexStmt: case T_CreatePLangStmt: case T_CreateOpClassStmt: @@ -304,7 +302,6 @@ check_xact_readonly(Node *parsetree) case T_CreateTableSpaceStmt: case T_CreateTrigStmt: case T_CompositeTypeStmt: - case T_CreateUserStmt: case T_ViewStmt: case T_RemoveAggrStmt: case T_DropCastStmt: @@ -312,13 +309,13 @@ check_xact_readonly(Node *parsetree) case T_DropdbStmt: case T_DropTableSpaceStmt: case T_RemoveFuncStmt: - case T_DropGroupStmt: + case T_DropRoleStmt: case T_DropPLangStmt: case T_RemoveOperStmt: case T_RemoveOpClassStmt: case T_DropPropertyStmt: - case T_DropUserStmt: case T_GrantStmt: + case T_GrantRoleStmt: case T_TruncateStmt: ereport(ERROR, (errcode(ERRCODE_READ_ONLY_SQL_TRANSACTION), @@ -679,11 +676,14 @@ ProcessUtility(Node *parsetree, } break; - case T_GrantStmt: ExecuteGrantStmt((GrantStmt *) parsetree); break; + case T_GrantRoleStmt: + GrantRole((GrantRoleStmt *) parsetree); + break; + /* * ******************************** object creation / * destruction ******************************** @@ -958,22 +958,22 @@ ProcessUtility(Node *parsetree, break; /* - * ******************************** USER statements **** + * ******************************** ROLE statements **** */ - case T_CreateUserStmt: - CreateUser((CreateUserStmt *) parsetree); + case T_CreateRoleStmt: + CreateRole((CreateRoleStmt *) parsetree); break; - case T_AlterUserStmt: - AlterUser((AlterUserStmt *) parsetree); + case T_AlterRoleStmt: + AlterRole((AlterRoleStmt *) parsetree); break; - case T_AlterUserSetStmt: - AlterUserSet((AlterUserSetStmt *) parsetree); + case T_AlterRoleSetStmt: + AlterRoleSet((AlterRoleSetStmt *) parsetree); break; - case T_DropUserStmt: - DropUser((DropUserStmt *) parsetree); + case T_DropRoleStmt: + DropRole((DropRoleStmt *) parsetree); break; case T_LockStmt: @@ -984,18 +984,6 @@ ProcessUtility(Node *parsetree, AfterTriggerSetState((ConstraintsSetStmt *) parsetree); break; - case T_CreateGroupStmt: - CreateGroup((CreateGroupStmt *) parsetree); - break; - - case T_AlterGroupStmt: - AlterGroup((AlterGroupStmt *) parsetree, "ALTER GROUP"); - break; - - case T_DropGroupStmt: - DropGroup((DropGroupStmt *) parsetree); - break; - case T_CheckPointStmt: if (!superuser()) ereport(ERROR, @@ -1350,9 +1338,6 @@ CreateCommandTag(Node *parsetree) case OBJECT_FUNCTION: tag = "ALTER FUNCTION"; break; - case OBJECT_GROUP: - tag = "ALTER GROUP"; - break; case OBJECT_INDEX: tag = "ALTER INDEX"; break; @@ -1362,6 +1347,9 @@ CreateCommandTag(Node *parsetree) case OBJECT_OPCLASS: tag = "ALTER OPERATOR CLASS"; break; + case OBJECT_ROLE: + tag = "ALTER ROLE"; + break; case OBJECT_SCHEMA: tag = "ALTER SCHEMA"; break; @@ -1371,9 +1359,6 @@ CreateCommandTag(Node *parsetree) case OBJECT_TRIGGER: tag = "ALTER TRIGGER"; break; - case OBJECT_USER: - tag = "ALTER USER"; - break; default: tag = "ALTER TABLE"; } @@ -1450,6 +1435,14 @@ CreateCommandTag(Node *parsetree) } break; + case T_GrantRoleStmt: + { + GrantRoleStmt *stmt = (GrantRoleStmt *) parsetree; + + tag = (stmt->is_grant) ? "GRANT ROLE" : "REVOKE ROLE"; + } + break; + case T_DefineStmt: switch (((DefineStmt *) parsetree)->kind) { @@ -1588,20 +1581,20 @@ CreateCommandTag(Node *parsetree) tag = "DROP LANGUAGE"; break; - case T_CreateUserStmt: - tag = "CREATE USER"; + case T_CreateRoleStmt: + tag = "CREATE ROLE"; break; - case T_AlterUserStmt: - tag = "ALTER USER"; + case T_AlterRoleStmt: + tag = "ALTER ROLE"; break; - case T_AlterUserSetStmt: - tag = "ALTER USER"; + case T_AlterRoleSetStmt: + tag = "ALTER ROLE"; break; - case T_DropUserStmt: - tag = "DROP USER"; + case T_DropRoleStmt: + tag = "DROP ROLE"; break; case T_LockStmt: @@ -1612,18 +1605,6 @@ CreateCommandTag(Node *parsetree) tag = "SET CONSTRAINTS"; break; - case T_CreateGroupStmt: - tag = "CREATE GROUP"; - break; - - case T_AlterGroupStmt: - tag = "ALTER GROUP"; - break; - - case T_DropGroupStmt: - tag = "DROP GROUP"; - break; - case T_CheckPointStmt: tag = "CHECKPOINT"; break; |