diff --git a/src/backend/catalog/aclchk.c b/src/backend/catalog/aclchk.c index 3c2fdb0cf14556c9fb98195b68815f1e558c16ca..84dc2c5f4ae06304b5c7ffeb406fcaa581c8c94a 100644 --- a/src/backend/catalog/aclchk.c +++ b/src/backend/catalog/aclchk.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/catalog/aclchk.c,v 1.157 2009/12/11 03:34:55 itagaki Exp $ + * $PostgreSQL: pgsql/src/backend/catalog/aclchk.c,v 1.158 2009/12/21 01:34:10 rhaas Exp $ * * NOTES * See acl.h. @@ -4261,9 +4261,8 @@ pg_language_ownercheck(Oid lan_oid, Oid roleid) /* * Ownership check for a largeobject (specified by OID) * - * Note that we have no candidate to call this routine with a certain - * snapshot except for SnapshotNow, so we don't provide an interface - * with _snapshot() version now. + * This is only used for operations like ALTER LARGE OBJECT that are always + * relative to SnapshotNow. */ bool pg_largeobject_ownercheck(Oid lobj_oid, Oid roleid) diff --git a/src/backend/catalog/pg_largeobject.c b/src/backend/catalog/pg_largeobject.c index 517a0f3932ece4e5b0d2d9d7b6666eb290291b81..db2c44fc4c1c6480ef8ccabecc5257cc4ab342f0 100644 --- a/src/backend/catalog/pg_largeobject.c +++ b/src/backend/catalog/pg_largeobject.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/catalog/pg_largeobject.c,v 1.34 2009/12/11 03:34:55 itagaki Exp $ + * $PostgreSQL: pgsql/src/backend/catalog/pg_largeobject.c,v 1.35 2009/12/21 01:34:10 rhaas Exp $ * *------------------------------------------------------------------------- */ @@ -79,10 +79,8 @@ LargeObjectCreate(Oid loid) } /* - * Drop a large object having the given LO identifier. - * - * When we drop a large object, it is necessary to drop both of metadata - * and data pages in same time. + * Drop a large object having the given LO identifier. Both the data pages + * and metadata must be dropped. */ void LargeObjectDrop(Oid loid) @@ -191,13 +189,12 @@ LargeObjectAlterOwner(Oid loid, Oid newOwnerId) if (!superuser()) { /* - * The 'lo_compat_privileges' is not checked here, because we - * don't have any access control features in the 8.4.x series - * or earlier release. - * So, it is not a place we can define a compatible behavior. + * lo_compat_privileges is not checked here, because ALTER + * LARGE OBJECT ... OWNER did not exist at all prior to + * PostgreSQL 8.5. + * + * We must be the owner of the existing object. */ - - /* Otherwise, must be owner of the existing object */ if (!pg_largeobject_ownercheck(loid, GetUserId())) ereport(ERROR, (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), @@ -251,9 +248,8 @@ LargeObjectAlterOwner(Oid loid, Oid newOwnerId) /* * LargeObjectExists * - * Currently, we don't use system cache to contain metadata of - * large objects, because massive number of large objects can - * consume not a small amount of process local memory. + * We don't use the system cache to for large object metadata, for fear of + * using too much local memory. * * Note that LargeObjectExists always scans the system catalog * with SnapshotNow, so it is unavailable to use to check diff --git a/src/backend/commands/comment.c b/src/backend/commands/comment.c index d57ea25d9ca0892eb51a57ffd54e9275ef82331d..39cc1debc1ee931e0eb05b1c16bd94f4f79a2162 100644 --- a/src/backend/commands/comment.c +++ b/src/backend/commands/comment.c @@ -7,7 +7,7 @@ * Copyright (c) 1996-2009, PostgreSQL Global Development Group * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/comment.c,v 1.109 2009/12/11 03:34:55 itagaki Exp $ + * $PostgreSQL: pgsql/src/backend/commands/comment.c,v 1.110 2009/12/21 01:34:11 rhaas Exp $ * *------------------------------------------------------------------------- */ @@ -1449,7 +1449,7 @@ CommentLargeObject(List *qualname, char *comment) * * See the comment in the inv_create() which describes * the reason why LargeObjectRelationId is used instead - * of the LargeObjectMetadataRelationId. + * of LargeObjectMetadataRelationId. */ CreateComments(loid, LargeObjectRelationId, 0, comment); } diff --git a/src/backend/utils/adt/acl.c b/src/backend/utils/adt/acl.c index 31cbbe7c7609078bfd2b0f14edcb305db47bff2b..098a191c25c348bf46af372ec094e4953577b987 100644 --- a/src/backend/utils/adt/acl.c +++ b/src/backend/utils/adt/acl.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/adt/acl.c,v 1.152 2009/12/11 03:34:55 itagaki Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/acl.c,v 1.153 2009/12/21 01:34:11 rhaas Exp $ * *------------------------------------------------------------------------- */ @@ -765,7 +765,6 @@ acldefault(GrantObjectType objtype, Oid ownerId) owner_default = ACL_ALL_RIGHTS_LANGUAGE; break; case ACL_OBJECT_LARGEOBJECT: - /* Grant SELECT,UPDATE by default, for now */ world_default = ACL_NO_RIGHTS; owner_default = ACL_ALL_RIGHTS_LARGEOBJECT; break; diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 0c9998614fa9062054c2cd7b521c4676ea2ea140..626983d8bd4ae8d9be03dda3afadc91ab08dcbf2 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -10,7 +10,7 @@ * Written by Peter Eisentraut <peter_e@gmx.net>. * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.528 2009/12/19 01:32:37 sriggs Exp $ + * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.529 2009/12/21 01:34:11 rhaas Exp $ * *-------------------------------------------------------------------- */ @@ -1243,9 +1243,9 @@ static struct config_bool ConfigureNamesBool[] = { {"lo_compat_privileges", PGC_SUSET, COMPAT_OPTIONS_PREVIOUS, - gettext_noop("Enables backward compatibility in privilege checks on large objects"), - gettext_noop("When turned on, privilege checks on large objects perform " - "with backward compatibility as 8.4.x or earlier releases.") + gettext_noop("Enables backward compatibility mode for privilege checks on large objects"), + gettext_noop("Skips privilege checks when reading or modifying large objects, " + "for compatibility with PostgreSQL releases prior to 8.5.") }, &lo_compat_privileges, false, NULL, NULL