Acl *new_acl);
-#ifdef ACLDEBUG
-static void
-dumpacl(Acl *acl)
-{
- int i;
- AclItem *aip;
-
- elog(DEBUG2, "acl size = %d, # acls = %d",
- ACL_SIZE(acl), ACL_NUM(acl));
- aip = ACL_DAT(acl);
- for (i = 0; i < ACL_NUM(acl); ++i)
- elog(DEBUG2, " acl[%d]: %s", i,
- DatumGetCString(DirectFunctionCall1(aclitemout,
- PointerGetDatum(aip + i))));
-}
-#endif /* ACLDEBUG */
-
-
/*
* If is_grant is true, adds the given privileges for the list of
* grantees to the existing old_acl. If is_grant is false, the
modechg = is_grant ? ACL_MODECHG_ADD : ACL_MODECHG_DEL;
-#ifdef ACLDEBUG
- dumpacl(old_acl);
-#endif
new_acl = old_acl;
foreach(j, grantees)
/* avoid memory leak when there are many grantees */
pfree(new_acl);
new_acl = newer_acl;
-
-#ifdef ACLDEBUG
- dumpacl(new_acl);
-#endif
}
return new_acl;
IsSystemClass(table_oid, classForm) &&
classForm->relkind != RELKIND_VIEW &&
!superuser_arg(roleid))
- {
-#ifdef ACLDEBUG
- elog(DEBUG2, "permission denied for system catalog update");
-#endif
mask &= ~(ACL_INSERT | ACL_UPDATE | ACL_DELETE | ACL_TRUNCATE | ACL_USAGE);
- }
/*
* Otherwise, superusers bypass all permission-checking.
*/
if (superuser_arg(roleid))
{
-#ifdef ACLDEBUG
- elog(DEBUG2, "OID %u is superuser, home free", roleid);
-#endif
ReleaseSysCache(tuple);
return mask;
}
Assert(s && aip);
-#ifdef ACLDEBUG
- elog(LOG, "aclparse: input = \"%s\"", s);
-#endif
s = getid(s, name);
if (*s != '=')
{
ACLITEM_SET_PRIVS_GOPTIONS(*aip, privs, goption);
-#ifdef ACLDEBUG
- elog(LOG, "aclparse: correctly read [%u %x %x]",
- aip->ai_grantee, privs, goption);
-#endif
-
return s;
}