pgsql: Arrange for the pg_foo_is_visible and has_foo_privilege families

From: tgl(at)postgresql(dot)org (Tom Lane)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Arrange for the pg_foo_is_visible and has_foo_privilege families
Date: 2008-12-15 18:09:41
Message-ID: 20081215180941.43B5D7563FE@cvs.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Log Message:
-----------
Arrange for the pg_foo_is_visible and has_foo_privilege families of functions
to return NULL, instead of erroring out, if the target object is specified by
OID and we can't find that OID in the catalogs. Since these functions operate
internally on SnapshotNow rules, there is a race condition when using them
in user queries: the query's MVCC snapshot might "see" a catalog row that's
already committed dead, leading to a failure when the inquiry function is
applied. Returning NULL should generally provide more convenient behavior.
This issue has been complained of before, and in particular we are now seeing
it in the regression tests due to another recent patch.

Modified Files:
--------------
pgsql/src/backend/catalog:
namespace.c (r1.113 -> r1.114)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/namespace.c?r1=1.113&r2=1.114)
pgsql/src/backend/utils/adt:
acl.c (r1.142 -> r1.143)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/acl.c?r1=1.142&r2=1.143)
pgsql/src/test/regress/expected:
privileges.out (r1.40 -> r1.41)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/privileges.out?r1=1.40&r2=1.41)

Browse pgsql-committers by date

  From Date Subject
Next Message Simon Riggs 2008-12-15 18:30:00 Re: pgsql: Do not try to change a const variable.
Previous Message Tom Lane 2008-12-15 16:52:16 pgsql: Remove newly-added regression test cases that referenced