diff options
author | Jan Wieck <JanWieck@Yahoo.com> | 1999-12-16 22:20:03 +0000 |
---|---|---|
committer | Jan Wieck <JanWieck@Yahoo.com> | 1999-12-16 22:20:03 +0000 |
commit | 397e9b32a3c2b2c72dcb9cb99cbf2a162aadcb73 (patch) | |
tree | 17583111e0e7c2ca83b94040d48a1036f870b9a4 /src/backend/access/heap/heapam.c | |
parent | 5ca971a18a708341dd49f27c23fec40ea4342d13 (diff) | |
download | postgresql-397e9b32a3c2b2c72dcb9cb99cbf2a162aadcb73.tar.gz postgresql-397e9b32a3c2b2c72dcb9cb99cbf2a162aadcb73.zip |
Some changes to prepare for LONG attributes.
Jan
Diffstat (limited to 'src/backend/access/heap/heapam.c')
-rw-r--r-- | src/backend/access/heap/heapam.c | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c index 610066893bc..7b03545bf1c 100644 --- a/src/backend/access/heap/heapam.c +++ b/src/backend/access/heap/heapam.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/heap/heapam.c,v 1.60 1999/11/24 00:44:28 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/heap/heapam.c,v 1.61 1999/12/16 22:19:36 wieck Exp $ * * * INTERFACE ROUTINES @@ -117,6 +117,8 @@ initscan(HeapScanDesc scan, * relation is empty * ---------------- */ + scan->rs_ntup.t_datamcxt = scan->rs_ctup.t_datamcxt = + scan->rs_ptup.t_datamcxt = NULL; scan->rs_ntup.t_data = scan->rs_ctup.t_data = scan->rs_ptup.t_data = NULL; scan->rs_nbuf = scan->rs_cbuf = scan->rs_pbuf = InvalidBuffer; @@ -127,8 +129,10 @@ initscan(HeapScanDesc scan, * reverse scan * ---------------- */ + scan->rs_ntup.t_datamcxt = scan->rs_ctup.t_datamcxt = NULL; scan->rs_ntup.t_data = scan->rs_ctup.t_data = NULL; scan->rs_nbuf = scan->rs_cbuf = InvalidBuffer; + scan->rs_ptup.t_datamcxt = NULL; scan->rs_ptup.t_data = NULL; scan->rs_pbuf = UnknownBuffer; } @@ -138,8 +142,10 @@ initscan(HeapScanDesc scan, * forward scan * ---------------- */ + scan->rs_ctup.t_datamcxt = scan->rs_ptup.t_datamcxt = NULL; scan->rs_ctup.t_data = scan->rs_ptup.t_data = NULL; scan->rs_cbuf = scan->rs_pbuf = InvalidBuffer; + scan->rs_ntup.t_datamcxt = NULL; scan->rs_ntup.t_data = NULL; scan->rs_nbuf = UnknownBuffer; } /* invalid too */ @@ -272,6 +278,7 @@ heapgettup(Relation relation, */ if (!(pages = relation->rd_nblocks)) { + tuple->t_datamcxt = NULL; tuple->t_data = NULL; return; } @@ -290,6 +297,7 @@ heapgettup(Relation relation, if (ItemPointerIsValid(tid) == false) { *buffer = InvalidBuffer; + tuple->t_datamcxt = NULL; tuple->t_data = NULL; return; } @@ -306,6 +314,7 @@ heapgettup(Relation relation, lineoff = ItemPointerGetOffsetNumber(tid); lpp = PageGetItemId(dp, lineoff); + tuple->t_datamcxt = NULL; tuple->t_data = (HeapTupleHeader) PageGetItem((Page) dp, lpp); tuple->t_len = ItemIdGetLength(lpp); LockBuffer(*buffer, BUFFER_LOCK_UNLOCK); @@ -376,6 +385,7 @@ heapgettup(Relation relation, if (page >= pages) { *buffer = InvalidBuffer; + tuple->t_datamcxt = NULL; tuple->t_data = NULL; return; } @@ -415,6 +425,7 @@ heapgettup(Relation relation, { if (ItemIdIsUsed(lpp)) { + tuple->t_datamcxt = NULL; tuple->t_data = (HeapTupleHeader) PageGetItem((Page) dp, lpp); tuple->t_len = ItemIdGetLength(lpp); ItemPointerSet(&(tuple->t_self), page, lineoff); @@ -466,6 +477,7 @@ heapgettup(Relation relation, if (BufferIsValid(*buffer)) ReleaseBuffer(*buffer); *buffer = InvalidBuffer; + tuple->t_datamcxt = NULL; tuple->t_data = NULL; return; } @@ -836,6 +848,7 @@ heap_getnext(HeapScanDesc scandesc, int backw) { if (BufferIsValid(scan->rs_nbuf)) ReleaseBuffer(scan->rs_nbuf); + scan->rs_ntup.t_datamcxt = NULL; scan->rs_ntup.t_data = NULL; scan->rs_nbuf = UnknownBuffer; return NULL; @@ -892,10 +905,12 @@ heap_getnext(HeapScanDesc scandesc, int backw) { if (BufferIsValid(scan->rs_pbuf)) ReleaseBuffer(scan->rs_pbuf); + scan->rs_ptup.t_datamcxt = NULL; scan->rs_ptup.t_data = NULL; scan->rs_pbuf = InvalidBuffer; if (BufferIsValid(scan->rs_nbuf)) ReleaseBuffer(scan->rs_nbuf); + scan->rs_ntup.t_datamcxt = NULL; scan->rs_ntup.t_data = NULL; scan->rs_nbuf = InvalidBuffer; return NULL; @@ -903,6 +918,7 @@ heap_getnext(HeapScanDesc scandesc, int backw) if (BufferIsValid(scan->rs_pbuf)) ReleaseBuffer(scan->rs_pbuf); + scan->rs_ptup.t_datamcxt = NULL; scan->rs_ptup.t_data = NULL; scan->rs_pbuf = UnknownBuffer; @@ -918,6 +934,7 @@ heap_getnext(HeapScanDesc scandesc, int backw) { if (BufferIsValid(scan->rs_pbuf)) ReleaseBuffer(scan->rs_pbuf); + scan->rs_ptup.t_datamcxt = NULL; scan->rs_ptup.t_data = NULL; scan->rs_pbuf = UnknownBuffer; HEAPDEBUG_3; /* heap_getnext returns NULL at end */ @@ -976,10 +993,12 @@ heap_getnext(HeapScanDesc scandesc, int backw) { if (BufferIsValid(scan->rs_nbuf)) ReleaseBuffer(scan->rs_nbuf); + scan->rs_ntup.t_datamcxt = NULL; scan->rs_ntup.t_data = NULL; scan->rs_nbuf = InvalidBuffer; if (BufferIsValid(scan->rs_pbuf)) ReleaseBuffer(scan->rs_pbuf); + scan->rs_ptup.t_datamcxt = NULL; scan->rs_ptup.t_data = NULL; scan->rs_pbuf = InvalidBuffer; HEAPDEBUG_6; /* heap_getnext returning EOS */ @@ -988,6 +1007,7 @@ heap_getnext(HeapScanDesc scandesc, int backw) if (BufferIsValid(scan->rs_nbuf)) ReleaseBuffer(scan->rs_nbuf); + scan->rs_ntup.t_datamcxt = NULL; scan->rs_ntup.t_data = NULL; scan->rs_nbuf = UnknownBuffer; } @@ -1066,10 +1086,12 @@ heap_fetch(Relation relation, { ReleaseBuffer(buffer); *userbuf = InvalidBuffer; + tuple->t_datamcxt = NULL; tuple->t_data = NULL; return; } + tuple->t_datamcxt = NULL; tuple->t_data = (HeapTupleHeader) PageGetItem((Page) dp, lp); tuple->t_len = ItemIdGetLength(lp); @@ -1156,6 +1178,7 @@ heap_get_latest_tid(Relation relation, * ---------------- */ + tp.t_datamcxt = NULL; t_data = tp.t_data = (HeapTupleHeader) PageGetItem((Page) dp, lp); tp.t_len = ItemIdGetLength(lp); tp.t_self = *tid; @@ -1270,6 +1293,7 @@ heap_delete(Relation relation, ItemPointer tid, ItemPointer ctid) dp = (PageHeader) BufferGetPage(buffer); lp = PageGetItemId(dp, ItemPointerGetOffsetNumber(tid)); + tp.t_datamcxt = NULL; tp.t_data = (HeapTupleHeader) PageGetItem((Page) dp, lp); tp.t_len = ItemIdGetLength(lp); tp.t_self = *tid; @@ -1365,6 +1389,7 @@ heap_update(Relation relation, ItemPointer otid, HeapTuple newtup, dp = (PageHeader) BufferGetPage(buffer); lp = PageGetItemId(dp, ItemPointerGetOffsetNumber(otid)); + oldtup.t_datamcxt = NULL; oldtup.t_data = (HeapTupleHeader) PageGetItem(dp, lp); oldtup.t_len = ItemIdGetLength(lp); oldtup.t_self = *otid; @@ -1488,6 +1513,7 @@ heap_mark4update(Relation relation, HeapTuple tuple, Buffer *buffer) dp = (PageHeader) BufferGetPage(*buffer); lp = PageGetItemId(dp, ItemPointerGetOffsetNumber(tid)); + tuple->t_datamcxt = NULL; tuple->t_data = (HeapTupleHeader) PageGetItem((Page) dp, lp); tuple->t_len = ItemIdGetLength(lp); @@ -1665,10 +1691,14 @@ heap_restrpos(HeapScanDesc scan) scan->rs_nbuf = InvalidBuffer; if (!ItemPointerIsValid(&scan->rs_mptid)) + { + scan->rs_ptup.t_datamcxt = NULL; scan->rs_ptup.t_data = NULL; + } else { scan->rs_ptup.t_self = scan->rs_mptid; + scan->rs_ptup.t_datamcxt = NULL; scan->rs_ptup.t_data = (HeapTupleHeader) 0x1; /* for heapgettup */ heapgettup(scan->rs_rd, &(scan->rs_ptup), @@ -1680,10 +1710,14 @@ heap_restrpos(HeapScanDesc scan) } if (!ItemPointerIsValid(&scan->rs_mctid)) + { + scan->rs_ctup.t_datamcxt = NULL; scan->rs_ctup.t_data = NULL; + } else { scan->rs_ctup.t_self = scan->rs_mctid; + scan->rs_ctup.t_datamcxt = NULL; scan->rs_ctup.t_data = (HeapTupleHeader) 0x1; /* for heapgettup */ heapgettup(scan->rs_rd, &(scan->rs_ctup), @@ -1695,9 +1729,13 @@ heap_restrpos(HeapScanDesc scan) } if (!ItemPointerIsValid(&scan->rs_mntid)) + { + scan->rs_ntup.t_datamcxt = NULL; scan->rs_ntup.t_data = NULL; + } else { + scan->rs_ntup.t_datamcxt = NULL; scan->rs_ntup.t_self = scan->rs_mntid; scan->rs_ntup.t_data = (HeapTupleHeader) 0x1; /* for heapgettup */ heapgettup(scan->rs_rd, |