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

Commit2cb67c4

Browse files
committed
Improve a couple of comments relating to large object snapshot management.
1 parent55233c3 commit2cb67c4

File tree

2 files changed

+12
-15
lines changed

2 files changed

+12
-15
lines changed

‎src/backend/catalog/aclchk.c

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $PostgreSQL: pgsql/src/backend/catalog/aclchk.c,v 1.160 2010/01/05 21:53:58 rhaas Exp $
11+
* $PostgreSQL: pgsql/src/backend/catalog/aclchk.c,v 1.161 2010/01/07 02:41:15 rhaas Exp $
1212
*
1313
* NOTES
1414
* See acl.h.
@@ -3515,16 +3515,11 @@ pg_language_aclmask(Oid lang_oid, Oid roleid,
35153515
/*
35163516
* Exported routine for examining a user's privileges for a largeobject
35173517
*
3518-
* The reason why this interface has an argument of snapshot is that
3519-
* we apply a snapshot available on lo_open(), not SnapshotNow, when
3520-
* it is opened as read-only mode.
3521-
* If we could see the metadata and data from inconsistent viewpoint,
3522-
* it will give us much confusion. So, we need to provide an interface
3523-
* which takes an argument of snapshot.
3524-
*
3525-
* If the caller refers a large object with a certain snapshot except
3526-
* for SnapshotNow, its permission checks should be also applied in
3527-
* the same snapshot.
3518+
* When a large object is opened for reading, it is opened relative to the
3519+
* caller's snapshot, but when it is opened for writing, it is always relative
3520+
* to SnapshotNow, as documented in doc/src/sgml/lobj.sgml. This function
3521+
* takes a snapshot argument so that the permissions check can be made relative
3522+
* to the same snapshot that will be used to read the underlying data.
35283523
*/
35293524
AclMode
35303525
pg_largeobject_aclmask_snapshot(Oidlobj_oid,Oidroleid,

‎src/backend/catalog/pg_largeobject.c

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $PostgreSQL: pgsql/src/backend/catalog/pg_largeobject.c,v 1.36 2010/01/02 16:57:36 momjian Exp $
11+
* $PostgreSQL: pgsql/src/backend/catalog/pg_largeobject.c,v 1.37 2010/01/07 02:41:16 rhaas Exp $
1212
*
1313
*-------------------------------------------------------------------------
1414
*/
@@ -251,9 +251,11 @@ LargeObjectAlterOwner(Oid loid, Oid newOwnerId)
251251
* We don't use the system cache to for large object metadata, for fear of
252252
* using too much local memory.
253253
*
254-
* Note that LargeObjectExists always scans the system catalog
255-
* with SnapshotNow, so it is unavailable to use to check
256-
* existence in read-only accesses.
254+
* This function always scans the system catalog using SnapshotNow, so it
255+
* should not be used when a large object is opened in read-only mode (because
256+
* large objects opened in read only mode are supposed to be viewed relative
257+
* to the caller's snapshot, whereas in read-write mode they are relative to
258+
* SnapshotNow).
257259
*/
258260
bool
259261
LargeObjectExists(Oidloid)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp