From 0c514f0c02e72965d171bcf4dc9ddcf9d2f9a29a Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Wed, 25 Feb 2026 09:30:34 +0100 Subject: [PATCH 05/10] Use correct default privileges for property graphs --- src/backend/catalog/aclchk.c | 12 ++++++++++++ src/backend/utils/adt/acl.c | 4 ++++ 2 files changed, 16 insertions(+) diff --git a/src/backend/catalog/aclchk.c b/src/backend/catalog/aclchk.c index 94a16a6ecf7..52f38480c52 100644 --- a/src/backend/catalog/aclchk.c +++ b/src/backend/catalog/aclchk.c @@ -1853,11 +1853,20 @@ ExecGrant_Relation(InternalGrant *istmt) errmsg("\"%s\" is not a sequence", NameStr(pg_class_tuple->relname)))); + if (istmt->objtype == OBJECT_PROPGRAPH && + pg_class_tuple->relkind != RELKIND_PROPGRAPH) + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg("\"%s\" is not a property graph", + NameStr(pg_class_tuple->relname)))); + /* Adjust the default permissions based on object type */ if (istmt->all_privs && istmt->privileges == ACL_NO_RIGHTS) { if (pg_class_tuple->relkind == RELKIND_SEQUENCE) this_privileges = ACL_ALL_RIGHTS_SEQUENCE; + else if (pg_class_tuple->relkind == RELKIND_PROPGRAPH) + this_privileges = ACL_ALL_RIGHTS_PROPGRAPH; else this_privileges = ACL_ALL_RIGHTS_RELATION; } @@ -1951,6 +1960,9 @@ ExecGrant_Relation(InternalGrant *istmt) case RELKIND_SEQUENCE: old_acl = acldefault(OBJECT_SEQUENCE, ownerId); break; + case RELKIND_PROPGRAPH: + old_acl = acldefault(OBJECT_PROPGRAPH, ownerId); + break; default: old_acl = acldefault(OBJECT_TABLE, ownerId); break; diff --git a/src/backend/utils/adt/acl.c b/src/backend/utils/adt/acl.c index 641673f0b0e..a1c0b033ff6 100644 --- a/src/backend/utils/adt/acl.c +++ b/src/backend/utils/adt/acl.c @@ -868,6 +868,10 @@ acldefault(ObjectType objtype, Oid ownerId) world_default = ACL_NO_RIGHTS; owner_default = ACL_ALL_RIGHTS_PARAMETER_ACL; break; + case OBJECT_PROPGRAPH: + world_default = ACL_NO_RIGHTS; + owner_default = ACL_ALL_RIGHTS_PROPGRAPH; + break; default: elog(ERROR, "unrecognized object type: %d", (int) objtype); world_default = ACL_NO_RIGHTS; /* keep compiler quiet */ -- 2.53.0