diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2002-03-30 01:02:42 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2002-03-30 01:02:42 +0000 |
commit | 5f4745adf4fb2a1f933b25d7a2bc72b39fa9edfd (patch) | |
tree | e024d7d1a3eb76220378e4054bf34485812962ea /src/backend/utils/adt/tid.c | |
parent | 25004eec957853a55789398d4228d7e77d4877c1 (diff) | |
download | postgresql-5f4745adf4fb2a1f933b25d7a2bc72b39fa9edfd.tar.gz postgresql-5f4745adf4fb2a1f933b25d7a2bc72b39fa9edfd.zip |
Further cleanups for relations in schemas: teach nextval and other
sequence functions how to cope with qualified names. Same code is
also used for int4notin, currtid_byrelname, pgstattuple. Also,
move TOAST tables into special pg_toast namespace.
Diffstat (limited to 'src/backend/utils/adt/tid.c')
-rw-r--r-- | src/backend/utils/adt/tid.c | 34 |
1 files changed, 15 insertions, 19 deletions
diff --git a/src/backend/utils/adt/tid.c b/src/backend/utils/adt/tid.c index 623d3178e00..9f3dcf8fa16 100644 --- a/src/backend/utils/adt/tid.c +++ b/src/backend/utils/adt/tid.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/tid.c,v 1.28 2001/10/25 05:49:45 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/tid.c,v 1.29 2002/03/30 01:02:41 tgl Exp $ * * NOTES * input routine largely stolen from boxin(). @@ -19,6 +19,7 @@ #include "postgres.h" #include "access/heapam.h" +#include "catalog/namespace.h" #include "utils/builtins.h" #define DatumGetItemPointer(X) ((ItemPointer) DatumGetPointer(X)) @@ -146,14 +147,13 @@ currtid_byreloid(PG_FUNCTION_ARGS) *result = Current_last_tid; PG_RETURN_ITEMPOINTER(result); } + + rel = heap_open(reloid, AccessShareLock); + ItemPointerCopy(tid, result); - if ((rel = heap_open(reloid, AccessShareLock)) != NULL) - { - heap_get_latest_tid(rel, SnapshotNow, result); - heap_close(rel, AccessShareLock); - } - else - elog(ERROR, "Relation %u not found", reloid); + heap_get_latest_tid(rel, SnapshotNow, result); + + heap_close(rel, AccessShareLock); PG_RETURN_ITEMPOINTER(result); } @@ -164,23 +164,19 @@ currtid_byrelname(PG_FUNCTION_ARGS) text *relname = PG_GETARG_TEXT_P(0); ItemPointer tid = PG_GETARG_ITEMPOINTER(1); ItemPointer result; - char *str; + RangeVar *relrv; Relation rel; - str = DatumGetCString(DirectFunctionCall1(textout, - PointerGetDatum(relname))); + relrv = makeRangeVarFromNameList(textToQualifiedNameList(relname, + "currtid_byrelname")); + rel = heap_openrv(relrv, AccessShareLock); result = (ItemPointer) palloc(sizeof(ItemPointerData)); ItemPointerCopy(tid, result); - if ((rel = heap_openr(str, AccessShareLock)) != NULL) - { - heap_get_latest_tid(rel, SnapshotNow, result); - heap_close(rel, AccessShareLock); - } - else - elog(ERROR, "Relation %s not found", str); - pfree(str); + heap_get_latest_tid(rel, SnapshotNow, result); + + heap_close(rel, AccessShareLock); PG_RETURN_ITEMPOINTER(result); } |