Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitba26d15

Browse files
committed
Remove recordExtensionInitPriv[Worker]'s ownerId argument.
In the wake of the previous commit, we're not doing anythingwith that argument. Hence, revert the portions of5342874that added that argument and taught the callers to pass it.Passing the ownerId requires additional syscache lookups insome code paths, which'd be fine if we were doing anythinguseful with the info, but it seems inadvisable if we're not.Committed separately since there's some thought that we mightwant to un-revert this in future, in case it's decided thatstoring the original owner ID explicitly in pg_init_privsis worth doing.Discussion:https://postgr.es/m/CAMT0RQSVgv48G5GArUvOVhottWqZLrvC5wBzBa4HrUdXe9VRXw@mail.gmail.com
1 parent35dd40d commitba26d15

File tree

1 file changed

+14
-57
lines changed

1 file changed

+14
-57
lines changed

‎src/backend/catalog/aclchk.c

Lines changed: 14 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -165,9 +165,9 @@ static AclMode pg_type_aclmask_ext(Oid type_oid, Oid roleid,
165165
AclModemask,AclMaskHowhow,
166166
bool*is_missing);
167167
staticvoidrecordExtensionInitPriv(Oidobjoid,Oidclassoid,intobjsubid,
168-
OidownerId,Acl*new_acl);
168+
Acl*new_acl);
169169
staticvoidrecordExtensionInitPrivWorker(Oidobjoid,Oidclassoid,intobjsubid,
170-
OidownerId,Acl*new_acl);
170+
Acl*new_acl);
171171

172172

173173
/*
@@ -1802,7 +1802,7 @@ ExecGrant_Attribute(InternalGrant *istmt, Oid relOid, const char *relname,
18021802
CatalogTupleUpdate(attRelation,&newtuple->t_self,newtuple);
18031803

18041804
/* Update initial privileges for extensions */
1805-
recordExtensionInitPriv(relOid,RelationRelationId,attnum,ownerId,
1805+
recordExtensionInitPriv(relOid,RelationRelationId,attnum,
18061806
ACL_NUM(new_acl)>0 ?new_acl :NULL);
18071807

18081808
/* Update the shared dependency ACL info */
@@ -2062,8 +2062,7 @@ ExecGrant_Relation(InternalGrant *istmt)
20622062
CatalogTupleUpdate(relation,&newtuple->t_self,newtuple);
20632063

20642064
/* Update initial privileges for extensions */
2065-
recordExtensionInitPriv(relOid,RelationRelationId,0,
2066-
ownerId,new_acl);
2065+
recordExtensionInitPriv(relOid,RelationRelationId,0,new_acl);
20672066

20682067
/* Update the shared dependency ACL info */
20692068
updateAclDependencies(RelationRelationId,relOid,0,
@@ -2264,7 +2263,7 @@ ExecGrant_common(InternalGrant *istmt, Oid classid, AclMode default_privs,
22642263
CatalogTupleUpdate(relation,&newtuple->t_self,newtuple);
22652264

22662265
/* Update initial privileges for extensions */
2267-
recordExtensionInitPriv(objectid,classid,0,ownerId,new_acl);
2266+
recordExtensionInitPriv(objectid,classid,0,new_acl);
22682267

22692268
/* Update the shared dependency ACL info */
22702269
updateAclDependencies(classid,
@@ -2416,8 +2415,7 @@ ExecGrant_Largeobject(InternalGrant *istmt)
24162415
CatalogTupleUpdate(relation,&newtuple->t_self,newtuple);
24172416

24182417
/* Update initial privileges for extensions */
2419-
recordExtensionInitPriv(loid,LargeObjectRelationId,0,
2420-
ownerId,new_acl);
2418+
recordExtensionInitPriv(loid,LargeObjectRelationId,0,new_acl);
24212419

24222420
/* Update the shared dependency ACL info */
24232421
updateAclDependencies(LargeObjectRelationId,
@@ -2589,7 +2587,7 @@ ExecGrant_Parameter(InternalGrant *istmt)
25892587

25902588
/* Update initial privileges for extensions */
25912589
recordExtensionInitPriv(parameterId,ParameterAclRelationId,0,
2592-
ownerId,new_acl);
2590+
new_acl);
25932591

25942592
/* Update the shared dependency ACL info */
25952593
updateAclDependencies(ParameterAclRelationId,parameterId,0,
@@ -4477,7 +4475,6 @@ recordExtObjInitPriv(Oid objoid, Oid classoid)
44774475
}
44784476

44794477
recordExtensionInitPrivWorker(objoid,classoid,curr_att,
4480-
pg_class_tuple->relowner,
44814478
DatumGetAclP(attaclDatum));
44824479

44834480
ReleaseSysCache(attTuple);
@@ -4490,7 +4487,6 @@ recordExtObjInitPriv(Oid objoid, Oid classoid)
44904487
/* Add the record, if any, for the top-level object */
44914488
if (!isNull)
44924489
recordExtensionInitPrivWorker(objoid,classoid,0,
4493-
pg_class_tuple->relowner,
44944490
DatumGetAclP(aclDatum));
44954491

44964492
ReleaseSysCache(tuple);
@@ -4501,7 +4497,6 @@ recordExtObjInitPriv(Oid objoid, Oid classoid)
45014497
DatumaclDatum;
45024498
boolisNull;
45034499
HeapTupletuple;
4504-
Form_pg_largeobject_metadataform_lo_meta;
45054500
ScanKeyDataentry[1];
45064501
SysScanDescscan;
45074502
Relationrelation;
@@ -4526,7 +4521,6 @@ recordExtObjInitPriv(Oid objoid, Oid classoid)
45264521
tuple=systable_getnext(scan);
45274522
if (!HeapTupleIsValid(tuple))
45284523
elog(ERROR,"could not find tuple for large object %u",objoid);
4529-
form_lo_meta= (Form_pg_largeobject_metadata)GETSTRUCT(tuple);
45304524

45314525
aclDatum=heap_getattr(tuple,
45324526
Anum_pg_largeobject_metadata_lomacl,
@@ -4535,7 +4529,6 @@ recordExtObjInitPriv(Oid objoid, Oid classoid)
45354529
/* Add the record, if any, for the top-level object */
45364530
if (!isNull)
45374531
recordExtensionInitPrivWorker(objoid,classoid,0,
4538-
form_lo_meta->lomowner,
45394532
DatumGetAclP(aclDatum));
45404533

45414534
systable_endscan(scan);
@@ -4544,7 +4537,6 @@ recordExtObjInitPriv(Oid objoid, Oid classoid)
45444537
elseif (get_object_attnum_acl(classoid)!=InvalidAttrNumber)
45454538
{
45464539
intcacheid;
4547-
OidownerId;
45484540
DatumaclDatum;
45494541
boolisNull;
45504542
HeapTupletuple;
@@ -4555,17 +4547,14 @@ recordExtObjInitPriv(Oid objoid, Oid classoid)
45554547
elog(ERROR,"cache lookup failed for %s %u",
45564548
get_object_class_descr(classoid),objoid);
45574549

4558-
ownerId=DatumGetObjectId(SysCacheGetAttrNotNull(cacheid,
4559-
tuple,
4560-
get_object_attnum_owner(classoid)));
45614550
aclDatum=SysCacheGetAttr(cacheid,tuple,
45624551
get_object_attnum_acl(classoid),
45634552
&isNull);
45644553

45654554
/* Add the record, if any, for the top-level object */
45664555
if (!isNull)
45674556
recordExtensionInitPrivWorker(objoid,classoid,0,
4568-
ownerId,DatumGetAclP(aclDatum));
4557+
DatumGetAclP(aclDatum));
45694558

45704559
ReleaseSysCache(tuple);
45714560
}
@@ -4578,8 +4567,6 @@ recordExtObjInitPriv(Oid objoid, Oid classoid)
45784567
void
45794568
removeExtObjInitPriv(Oidobjoid,Oidclassoid)
45804569
{
4581-
OidownerId;
4582-
45834570
/*
45844571
* If this is a relation then we need to see if there are any sub-objects
45854572
* (eg: columns) for it and, if so, be sure to call
@@ -4594,7 +4581,6 @@ removeExtObjInitPriv(Oid objoid, Oid classoid)
45944581
if (!HeapTupleIsValid(tuple))
45954582
elog(ERROR,"cache lookup failed for relation %u",objoid);
45964583
pg_class_tuple= (Form_pg_class)GETSTRUCT(tuple);
4597-
ownerId=pg_class_tuple->relowner;
45984584

45994585
/*
46004586
* Indexes don't have permissions, neither do the pg_class rows for
@@ -4631,44 +4617,17 @@ removeExtObjInitPriv(Oid objoid, Oid classoid)
46314617

46324618
/* when removing, remove all entries, even dropped columns */
46334619

4634-
recordExtensionInitPrivWorker(objoid,classoid,curr_att,
4635-
ownerId,NULL);
4620+
recordExtensionInitPrivWorker(objoid,classoid,curr_att,NULL);
46364621

46374622
ReleaseSysCache(attTuple);
46384623
}
46394624
}
46404625

46414626
ReleaseSysCache(tuple);
46424627
}
4643-
else
4644-
{
4645-
/* Must find out the owner's OID the hard way */
4646-
AttrNumberownerattnum;
4647-
intcacheid;
4648-
HeapTupletuple;
4649-
4650-
/*
4651-
* If the object is of a kind that has no owner, it should not have
4652-
* any pg_init_privs entry either.
4653-
*/
4654-
ownerattnum=get_object_attnum_owner(classoid);
4655-
if (ownerattnum==InvalidAttrNumber)
4656-
return;
4657-
cacheid=get_object_catcache_oid(classoid);
4658-
tuple=SearchSysCache1(cacheid,ObjectIdGetDatum(objoid));
4659-
if (!HeapTupleIsValid(tuple))
4660-
elog(ERROR,"cache lookup failed for %s %u",
4661-
get_object_class_descr(classoid),objoid);
4662-
4663-
ownerId=DatumGetObjectId(SysCacheGetAttrNotNull(cacheid,
4664-
tuple,
4665-
ownerattnum));
4666-
4667-
ReleaseSysCache(tuple);
4668-
}
46694628

46704629
/* Remove the record, if any, for the top-level object */
4671-
recordExtensionInitPrivWorker(objoid,classoid,0,ownerId,NULL);
4630+
recordExtensionInitPrivWorker(objoid,classoid,0,NULL);
46724631
}
46734632

46744633
/*
@@ -4680,8 +4639,7 @@ removeExtObjInitPriv(Oid objoid, Oid classoid)
46804639
* Pass in the object OID, the OID of the class (the OID of the table which
46814640
* the object is defined in) and the 'sub' id of the object (objsubid), if
46824641
* any. If there is no 'sub' id (they are currently only used for columns of
4683-
* tables) then pass in '0'. Also pass the OID of the object's owner.
4684-
* Finally, pass in the complete ACL to store.
4642+
* tables) then pass in '0'. Finally, pass in the complete ACL to store.
46854643
*
46864644
* If an ACL already exists for this object/sub-object then we will replace
46874645
* it with what is passed in.
@@ -4690,8 +4648,7 @@ removeExtObjInitPriv(Oid objoid, Oid classoid)
46904648
* removed, if one is found.
46914649
*/
46924650
staticvoid
4693-
recordExtensionInitPriv(Oidobjoid,Oidclassoid,intobjsubid,
4694-
OidownerId,Acl*new_acl)
4651+
recordExtensionInitPriv(Oidobjoid,Oidclassoid,intobjsubid,Acl*new_acl)
46954652
{
46964653
/*
46974654
* Generally, we only record the initial privileges when an extension is
@@ -4704,7 +4661,7 @@ recordExtensionInitPriv(Oid objoid, Oid classoid, int objsubid,
47044661
if (!creating_extension&& !binary_upgrade_record_init_privs)
47054662
return;
47064663

4707-
recordExtensionInitPrivWorker(objoid,classoid,objsubid,ownerId,new_acl);
4664+
recordExtensionInitPrivWorker(objoid,classoid,objsubid,new_acl);
47084665
}
47094666

47104667
/*
@@ -4721,7 +4678,7 @@ recordExtensionInitPriv(Oid objoid, Oid classoid, int objsubid,
47214678
*/
47224679
staticvoid
47234680
recordExtensionInitPrivWorker(Oidobjoid,Oidclassoid,intobjsubid,
4724-
OidownerId,Acl*new_acl)
4681+
Acl*new_acl)
47254682
{
47264683
Relationrelation;
47274684
ScanKeyDatakey[3];

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp