aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHiroshi Inoue <inoue@tpf.co.jp>2001-09-08 16:15:28 +0000
committerHiroshi Inoue <inoue@tpf.co.jp>2001-09-08 16:15:28 +0000
commitfc5ec424ab6b21dc9e8c8968372669fd2b73ae73 (patch)
tree883c44212c9d692b3a6e991334fb5b675b4d2c19
parentc0d4d5473a09cb7f6682a84abaee29e087c5886c (diff)
downloadpostgresql-fc5ec424ab6b21dc9e8c8968372669fd2b73ae73.tar.gz
postgresql-fc5ec424ab6b21dc9e8c8968372669fd2b73ae73.zip
Apply 7.1.3 changes to the current tree also.
-rw-r--r--src/backend/executor/execMain.c3
-rw-r--r--src/backend/utils/adt/tid.c12
-rw-r--r--src/include/access/heapam.h3
3 files changed, 15 insertions, 3 deletions
diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c
index 0375e310487..9caad11ae63 100644
--- a/src/backend/executor/execMain.c
+++ b/src/backend/executor/execMain.c
@@ -27,7 +27,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.145 2001/08/10 18:57:35 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.146 2001/09/08 16:15:28 inoue Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1268,6 +1268,7 @@ ExecAppend(TupleTableSlot *slot,
* insert the tuple
*/
newId = heap_insert(resultRelationDesc, tuple);
+ setLastTid(&(tuple->t_self));
IncrAppended();
(estate->es_processed)++;
diff --git a/src/backend/utils/adt/tid.c b/src/backend/utils/adt/tid.c
index db0e864cecf..a09c2f8f4d7 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.25 2001/07/06 09:41:36 inoue Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/tid.c,v 1.26 2001/09/08 16:15:28 inoue Exp $
*
* NOTES
* input routine largely stolen from boxin().
@@ -124,6 +124,11 @@ tidne(PG_FUNCTION_ARGS)
*
* Maybe these implementations should be moved to another place
*/
+static ItemPointerData Current_last_tid = { {0, 0}, 0};
+void setLastTid(const ItemPointer tid)
+{
+ Current_last_tid = *tid;
+}
Datum
currtid_byreloid(PG_FUNCTION_ARGS)
{
@@ -133,6 +138,11 @@ currtid_byreloid(PG_FUNCTION_ARGS)
Relation rel;
result = (ItemPointer) palloc(sizeof(ItemPointerData));
+ if (!reloid)
+ {
+ *result = Current_last_tid;
+ PG_RETURN_ITEMPOINTER(result);
+ }
ItemPointerCopy(tid, result);
if ((rel = heap_open(reloid, AccessShareLock)) != NULL)
{
diff --git a/src/include/access/heapam.h b/src/include/access/heapam.h
index 2f9a6de2ad2..0a44e709a45 100644
--- a/src/include/access/heapam.h
+++ b/src/include/access/heapam.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: heapam.h,v 1.66 2001/07/12 04:11:13 tgl Exp $
+ * $Id: heapam.h,v 1.67 2001/09/08 16:15:28 inoue Exp $
*
*-------------------------------------------------------------------------
*/
@@ -205,6 +205,7 @@ extern void heap_endscan(HeapScanDesc scan);
extern HeapTuple heap_getnext(HeapScanDesc scandesc, int backw);
extern void heap_fetch(Relation relation, Snapshot snapshot, HeapTuple tup, Buffer *userbuf, IndexScanDesc iscan);
extern ItemPointer heap_get_latest_tid(Relation relation, Snapshot snapshot, ItemPointer tid);
+extern void setLastid(const ItemPointer tid);
extern Oid heap_insert(Relation relation, HeapTuple tup);
extern int heap_delete(Relation relation, ItemPointer tid, ItemPointer ctid);
extern int heap_update(Relation relation, ItemPointer otid, HeapTuple tup,