diff options
author | Robert Haas <rhaas@postgresql.org> | 2011-06-27 15:06:32 -0400 |
---|---|---|
committer | Robert Haas <rhaas@postgresql.org> | 2011-06-27 15:25:44 -0400 |
commit | 9abbed0629c862710bdc0f0dd3565e069ecab9da (patch) | |
tree | dc1aa4dc7b0708abab6a2408ff05ba2c4cee45ea /src/backend/access/heap/heapam.c | |
parent | e16954f3d27fa8e16c379ff6623ae18d6250a39c (diff) |
Allow callers to pass a missing_ok flag when opening a relation.
Since the names try_relation_openrv() and try_heap_openrv() don't seem
quite appropriate, rename the functions to relation_openrv_extended()
and heap_openrv_extended(). This is also more general, if we have a
future need for additional parameters that are of interest to only a
few callers.
This is infrastructure for a forthcoming patch to allow
get_object_address() to take a missing_ok argument as well.
Patch by me, review by Noah Misch.
Diffstat (limited to 'src/backend/access/heap/heapam.c')
-rw-r--r-- | src/backend/access/heap/heapam.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c index ce82d0418ee..85fd749b76a 100644 --- a/src/backend/access/heap/heapam.c +++ b/src/backend/access/heap/heapam.c @@ -1004,15 +1004,17 @@ relation_openrv(const RangeVar *relation, LOCKMODE lockmode) } /* ---------------- - * try_relation_openrv - open any relation specified by a RangeVar + * relation_openrv_extended - open any relation specified by a RangeVar * - * Same as relation_openrv, but return NULL instead of failing for - * relation-not-found. (Note that some other causes, such as - * permissions problems, will still result in an ereport.) + * Same as relation_openrv, but with an additional missing_ok argument + * allowing a NULL return rather than an error if the relation is not + * found. (Note that some other causes, such as permissions problems, + * will still result in an ereport.) * ---------------- */ Relation -try_relation_openrv(const RangeVar *relation, LOCKMODE lockmode) +relation_openrv_extended(const RangeVar *relation, LOCKMODE lockmode, + bool missing_ok) { Oid relOid; @@ -1032,7 +1034,7 @@ try_relation_openrv(const RangeVar *relation, LOCKMODE lockmode) AcceptInvalidationMessages(); /* Look up the appropriate relation using namespace search */ - relOid = RangeVarGetRelid(relation, true); + relOid = RangeVarGetRelid(relation, missing_ok); /* Return NULL on not-found */ if (!OidIsValid(relOid)) @@ -1125,18 +1127,20 @@ heap_openrv(const RangeVar *relation, LOCKMODE lockmode) } /* ---------------- - * try_heap_openrv - open a heap relation specified + * heap_openrv_extended - open a heap relation specified * by a RangeVar node * - * As above, but return NULL instead of failing for relation-not-found. + * As above, but optionally return NULL instead of failing for + * relation-not-found. * ---------------- */ Relation -try_heap_openrv(const RangeVar *relation, LOCKMODE lockmode) +heap_openrv_extended(const RangeVar *relation, LOCKMODE lockmode, + bool missing_ok) { Relation r; - r = try_relation_openrv(relation, lockmode); + r = relation_openrv_extended(relation, lockmode, missing_ok); if (r) { |