Re: [PATCH] Largeobject access controls - Mailing list pgsql-hackers

From KaiGai Kohei
Subject Re: [PATCH] Largeobject access controls
Date
Msg-id 4ACAA85D.3060804@ak.jp.nec.com
Whole thread Raw
In response to Re: [PATCH] Largeobject access controls  (KaiGai Kohei <kaigai@ak.jp.nec.com>)
Responses Re: [PATCH] Largeobject access controls  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
I rebased the largeobject access controls patch to the CVS HEAD
because of the patch confliction to the default ACL patch.

The only difference was a switch-case statement was moved from
shdepDropOwned() to RemoveRoleFromObjectACL(), so we had to
change the point to be patched.

I don't think this change needs whole of reviewing again.

Actual changes are as follows:

$ diff -up r2333.patch r2353.patch
  <snip>
+*** base/src/backend/catalog/aclchk.c  Tue Oct  6 08:45:40 2009
+--- blob/src/backend/catalog/aclchk.c  Tue Oct  6 09:44:51 2009
@@ -310,9 +310,21 @@ diff -Nrpc base/src/backend/catalog/aclc
        case ACL_OBJECT_NAMESPACE:
            foreach(cell, objnames)
            {
+*************** RemoveRoleFromObjectACL(Oid roleid, Oid
+*** 1156,1161 ****
+--- 1184,1192 ----
+           case LanguageRelationId:
+               istmt.objtype = ACL_OBJECT_LANGUAGE;
+               break;
++          case LargeObjectMetadataRelationId:
++              istmt.objtype = ACL_OBJECT_LARGEOBJECT;
++              break;
+           case NamespaceRelationId:
+               istmt.objtype = ACL_OBJECT_NAMESPACE;
+               break;
 *************** ExecGrant_Language(InternalGrant *istmt)
   <snip>
-*** base/src/backend/catalog/pg_shdepend.c Thu Jun 18 10:20:52 2009
---- blob/src/backend/catalog/pg_shdepend.c Thu Sep 24 10:46:38 2009
+*** base/src/backend/catalog/pg_shdepend.c Tue Oct  6 08:45:40 2009
+--- blob/src/backend/catalog/pg_shdepend.c Tue Oct  6 09:44:51 2009
 ***************
-*** 24,29 ****
---- 24,30 ----
-  #include "catalog/pg_conversion.h"
+*** 25,30 ****
+--- 25,31 ----
   #include "catalog/pg_database.h"
+  #include "catalog/pg_default_acl.h"
   #include "catalog/pg_language.h"
 + #include "catalog/pg_largeobject_metadata.h"
   #include "catalog/pg_namespace.h"
   #include "catalog/pg_operator.h"
   #include "catalog/pg_proc.h"
-*************** shdepDropOwned(List *roleids, DropBehavi
-*** 1210,1215 ****
---- 1211,1219 ----
-                       case LanguageRelationId:
-                           istmt.objtype = ACL_OBJECT_LANGUAGE;
-                           break;
-+                      case LargeObjectMetadataRelationId:
-+                          istmt.objtype = ACL_OBJECT_LARGEOBJECT;
-+                          break;
-                       case NamespaceRelationId:
-                           istmt.objtype = ACL_OBJECT_NAMESPACE;
-                           break;
 *************** shdepReassignOwned(List *roleids, Oid ne
-*** 1365,1370 ****
---- 1369,1378 ----
+*** 1332,1337 ****
+--- 1333,1342 ----
                    AlterLanguageOwner_oid(sdepForm->objid, newrole);
                    break;

@@ -1178,9 +1178,9 @@ diff -Nrpc base/src/backend/catalog/pg_s
 +                  AlterLargeObjectOwner(sdepForm->objid, newrole);
 +                  break;
 +
-               default:
-                   elog(ERROR, "unexpected classid %d", sdepForm->classid);
-                   break;
+               case DefaultAclRelationId:
+                   /*
+                    * Ignore default ACLs; they should be handled by
 diff -Nrpc base/src/backend/commands/alter.c blob/src/backend/commands/alter.c
 *** base/src/backend/commands/alter.c  Sat Jan  3 13:01:35 2009
 --- blob/src/backend/commands/alter.c  Thu Sep 24 10:46:38 2009

--
OSS Platform Development Division, NEC
KaiGai Kohei <kaigai@ak.jp.nec.com>

Attachment

pgsql-hackers by date:

Previous
From: Andrew Gierth
Date:
Subject: Re: Rules: A Modest Proposal
Next
From: KaiGai Kohei
Date:
Subject: Re: [PATCH] Reworks for Access Control facilities (r2311)