summaryrefslogtreecommitdiff
path: root/src/backend/access/heap/heapam.c
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2011-06-27 15:06:32 -0400
committerRobert Haas <rhaas@postgresql.org>2011-06-27 15:25:44 -0400
commit9abbed0629c862710bdc0f0dd3565e069ecab9da (patch)
treedc1aa4dc7b0708abab6a2408ff05ba2c4cee45ea /src/backend/access/heap/heapam.c
parente16954f3d27fa8e16c379ff6623ae18d6250a39c (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.c24
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)
{