mirror of
https://github.com/postgres/postgres.git
synced 2025-09-06 13:46:51 +03:00
Replace GrantObjectType with ObjectType
There used to be a lot of different *Type and *Kind symbol groups to
address objects within different commands, most of which have been
replaced by ObjectType, starting with
b256f24264
. But this conversion was never
done for the ACL commands until now.
This change ends up being just a plain replacement of the types and
symbols, without any code restructuring needed, except deleting some now
redundant code.
Reviewed-by: Michael Paquier <michael.paquier@gmail.com>
Reviewed-by: Stephen Frost <sfrost@snowman.net>
This commit is contained in:
@@ -745,7 +745,7 @@ hash_aclitem_extended(PG_FUNCTION_ARGS)
|
||||
* absence of any pg_default_acl entry.
|
||||
*/
|
||||
Acl *
|
||||
acldefault(GrantObjectType objtype, Oid ownerId)
|
||||
acldefault(ObjectType objtype, Oid ownerId)
|
||||
{
|
||||
AclMode world_default;
|
||||
AclMode owner_default;
|
||||
@@ -755,56 +755,56 @@ acldefault(GrantObjectType objtype, Oid ownerId)
|
||||
|
||||
switch (objtype)
|
||||
{
|
||||
case ACL_OBJECT_COLUMN:
|
||||
case OBJECT_COLUMN:
|
||||
/* by default, columns have no extra privileges */
|
||||
world_default = ACL_NO_RIGHTS;
|
||||
owner_default = ACL_NO_RIGHTS;
|
||||
break;
|
||||
case ACL_OBJECT_RELATION:
|
||||
case OBJECT_TABLE:
|
||||
world_default = ACL_NO_RIGHTS;
|
||||
owner_default = ACL_ALL_RIGHTS_RELATION;
|
||||
break;
|
||||
case ACL_OBJECT_SEQUENCE:
|
||||
case OBJECT_SEQUENCE:
|
||||
world_default = ACL_NO_RIGHTS;
|
||||
owner_default = ACL_ALL_RIGHTS_SEQUENCE;
|
||||
break;
|
||||
case ACL_OBJECT_DATABASE:
|
||||
case OBJECT_DATABASE:
|
||||
/* for backwards compatibility, grant some rights by default */
|
||||
world_default = ACL_CREATE_TEMP | ACL_CONNECT;
|
||||
owner_default = ACL_ALL_RIGHTS_DATABASE;
|
||||
break;
|
||||
case ACL_OBJECT_FUNCTION:
|
||||
case OBJECT_FUNCTION:
|
||||
/* Grant EXECUTE by default, for now */
|
||||
world_default = ACL_EXECUTE;
|
||||
owner_default = ACL_ALL_RIGHTS_FUNCTION;
|
||||
break;
|
||||
case ACL_OBJECT_LANGUAGE:
|
||||
case OBJECT_LANGUAGE:
|
||||
/* Grant USAGE by default, for now */
|
||||
world_default = ACL_USAGE;
|
||||
owner_default = ACL_ALL_RIGHTS_LANGUAGE;
|
||||
break;
|
||||
case ACL_OBJECT_LARGEOBJECT:
|
||||
case OBJECT_LARGEOBJECT:
|
||||
world_default = ACL_NO_RIGHTS;
|
||||
owner_default = ACL_ALL_RIGHTS_LARGEOBJECT;
|
||||
break;
|
||||
case ACL_OBJECT_NAMESPACE:
|
||||
case OBJECT_SCHEMA:
|
||||
world_default = ACL_NO_RIGHTS;
|
||||
owner_default = ACL_ALL_RIGHTS_NAMESPACE;
|
||||
owner_default = ACL_ALL_RIGHTS_SCHEMA;
|
||||
break;
|
||||
case ACL_OBJECT_TABLESPACE:
|
||||
case OBJECT_TABLESPACE:
|
||||
world_default = ACL_NO_RIGHTS;
|
||||
owner_default = ACL_ALL_RIGHTS_TABLESPACE;
|
||||
break;
|
||||
case ACL_OBJECT_FDW:
|
||||
case OBJECT_FDW:
|
||||
world_default = ACL_NO_RIGHTS;
|
||||
owner_default = ACL_ALL_RIGHTS_FDW;
|
||||
break;
|
||||
case ACL_OBJECT_FOREIGN_SERVER:
|
||||
case OBJECT_FOREIGN_SERVER:
|
||||
world_default = ACL_NO_RIGHTS;
|
||||
owner_default = ACL_ALL_RIGHTS_FOREIGN_SERVER;
|
||||
break;
|
||||
case ACL_OBJECT_DOMAIN:
|
||||
case ACL_OBJECT_TYPE:
|
||||
case OBJECT_DOMAIN:
|
||||
case OBJECT_TYPE:
|
||||
world_default = ACL_USAGE;
|
||||
owner_default = ACL_ALL_RIGHTS_TYPE;
|
||||
break;
|
||||
@@ -855,7 +855,7 @@ acldefault(GrantObjectType objtype, Oid ownerId)
|
||||
|
||||
/*
|
||||
* SQL-accessible version of acldefault(). Hackish mapping from "char" type to
|
||||
* ACL_OBJECT_* values, but it's only used in the information schema, not
|
||||
* OBJECT_* values, but it's only used in the information schema, not
|
||||
* documented for general use.
|
||||
*/
|
||||
Datum
|
||||
@@ -863,45 +863,45 @@ acldefault_sql(PG_FUNCTION_ARGS)
|
||||
{
|
||||
char objtypec = PG_GETARG_CHAR(0);
|
||||
Oid owner = PG_GETARG_OID(1);
|
||||
GrantObjectType objtype = 0;
|
||||
ObjectType objtype = 0;
|
||||
|
||||
switch (objtypec)
|
||||
{
|
||||
case 'c':
|
||||
objtype = ACL_OBJECT_COLUMN;
|
||||
objtype = OBJECT_COLUMN;
|
||||
break;
|
||||
case 'r':
|
||||
objtype = ACL_OBJECT_RELATION;
|
||||
objtype = OBJECT_TABLE;
|
||||
break;
|
||||
case 's':
|
||||
objtype = ACL_OBJECT_SEQUENCE;
|
||||
objtype = OBJECT_SEQUENCE;
|
||||
break;
|
||||
case 'd':
|
||||
objtype = ACL_OBJECT_DATABASE;
|
||||
objtype = OBJECT_DATABASE;
|
||||
break;
|
||||
case 'f':
|
||||
objtype = ACL_OBJECT_FUNCTION;
|
||||
objtype = OBJECT_FUNCTION;
|
||||
break;
|
||||
case 'l':
|
||||
objtype = ACL_OBJECT_LANGUAGE;
|
||||
objtype = OBJECT_LANGUAGE;
|
||||
break;
|
||||
case 'L':
|
||||
objtype = ACL_OBJECT_LARGEOBJECT;
|
||||
objtype = OBJECT_LARGEOBJECT;
|
||||
break;
|
||||
case 'n':
|
||||
objtype = ACL_OBJECT_NAMESPACE;
|
||||
objtype = OBJECT_SCHEMA;
|
||||
break;
|
||||
case 't':
|
||||
objtype = ACL_OBJECT_TABLESPACE;
|
||||
objtype = OBJECT_TABLESPACE;
|
||||
break;
|
||||
case 'F':
|
||||
objtype = ACL_OBJECT_FDW;
|
||||
objtype = OBJECT_FDW;
|
||||
break;
|
||||
case 'S':
|
||||
objtype = ACL_OBJECT_FOREIGN_SERVER;
|
||||
objtype = OBJECT_FOREIGN_SERVER;
|
||||
break;
|
||||
case 'T':
|
||||
objtype = ACL_OBJECT_TYPE;
|
||||
objtype = OBJECT_TYPE;
|
||||
break;
|
||||
default:
|
||||
elog(ERROR, "unrecognized objtype abbreviation: %c", objtypec);
|
||||
|
Reference in New Issue
Block a user