*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/nodeTidscan.c,v 1.18 2001/06/22 19:16:22 wieck Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/nodeTidscan.c,v 1.19 2001/09/29 07:57:06 inoue Exp $
*
*-------------------------------------------------------------------------
*/
#include "access/heapam.h"
#include "parser/parsetree.h"
-static int TidListCreate(List *, ExprContext *, ItemPointer *);
+static int TidListCreate(List *, ExprContext *, ItemPointerData []);
static TupleTableSlot *TidNext(TidScan *node);
static int
-TidListCreate(List *evalList, ExprContext *econtext, ItemPointer *tidList)
+TidListCreate(List *evalList, ExprContext *econtext, ItemPointerData tidList[])
{
List *lst;
ItemPointer itemptr;
NULL));
if (!isNull && itemptr && ItemPointerIsValid(itemptr))
{
- tidList[numTids] = itemptr;
+ tidList[numTids] = *itemptr;
numTids++;
}
}
bool bBackward;
int tidNumber;
- ItemPointer *tidList,
- itemptr;
+ ItemPointerData* tidList;
/*
* extract necessary information from tid scan node
{
bool slot_is_valid = false;
- itemptr = tidList[tidstate->tss_TidPtr];
tuple->t_datamcxt = NULL;
tuple->t_data = NULL;
- if (itemptr)
- {
- tuple->t_self = *(itemptr);
- heap_fetch(heapRelation, snapshot, tuple, &buffer, NULL);
- }
+ tuple->t_self = tidList[tidstate->tss_TidPtr];
+ heap_fetch(heapRelation, snapshot, tuple, &buffer, NULL);
if (tuple->t_data != NULL)
{
bool prev_matches = false;
for (prev_tid = 0; prev_tid < tidstate->tss_TidPtr;
prev_tid++)
{
- if (ItemPointerEquals(tidList[prev_tid], &tuple->t_self))
+ if (ItemPointerEquals(&tidList[prev_tid], &tuple->t_self))
{
prev_matches = true;
break;
{
EState *estate;
TidScanState *tidstate;
- ItemPointer *tidList;
+ ItemPointerData* tidList;
tidstate = node->tidstate;
estate = node->scan.plan.state;
{
TidScanState *tidstate;
CommonScanState *scanstate;
- ItemPointer *tidList;
+ ItemPointerData* tidList;
int numTids;
int tidPtr;
List *rangeTable;
/*
* get the tid node information
*/
- tidList = (ItemPointer *) palloc(length(node->tideval) * sizeof(ItemPointer));
+ tidList = (ItemPointerData *) palloc(length(node->tideval) * sizeof(ItemPointerData));
numTids = 0;
if (!node->needRescan)
numTids = TidListCreate(node->tideval, scanstate->cstate.cs_ExprContext, tidList);
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: execnodes.h,v 1.62 2001/07/16 05:07:00 tgl Exp $
+ * $Id: execnodes.h,v 1.63 2001/09/29 07:57:04 inoue Exp $
*
*-------------------------------------------------------------------------
*/
int tss_NumTids;
int tss_TidPtr;
int tss_MarkTidPtr;
- ItemPointer *tss_TidList;
+ ItemPointerData* tss_TidList;
HeapTupleData tss_htup;
} TidScanState;