tuptable.h
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:2k
- /*-------------------------------------------------------------------------
- *
- * tuptable.h
- * tuple table support stuff
- *
- *
- * Copyright (c) 1994, Regents of the University of California
- *
- * $Id: tuptable.h,v 1.12 1999/05/25 16:13:58 momjian Exp $
- *
- * NOTES
- * The tuple table interface is getting pretty ugly.
- * It should be redesigned soon.
- *
- *-------------------------------------------------------------------------
- */
- #ifndef TUPTABLE_H
- #define TUPTABLE_H
- #include <storage/buf.h>
- #include <access/tupdesc.h>
- #include <access/htup.h>
- /* ----------------
- * The executor tuple table is managed and manipulated by special
- * code in executor/execTuples.c and tupTable.h
- *
- * TupleTableSlot information
- *
- * shouldFree boolean - should we call pfree() on tuple
- * descIsNew boolean - true when tupleDescriptor changes
- * tupleDescriptor type information kept regarding the tuple data
- * buffer the buffer for tuples pointing to disk pages
- *
- * The executor stores pointers to tuples in a ``tuple table''
- * which is composed of TupleTableSlot's. Some of the tuples
- * are pointers to buffer pages and others are pointers to
- * palloc'ed memory and the shouldFree variable tells us when
- * we may call pfree() on a tuple. -cim 9/23/90
- *
- * In the implementation of nested-dot queries such as
- * "retrieve (EMP.hobbies.all)", a single scan may return tuples
- * of many types, so now we return pointers to tuple descriptors
- * along with tuples returned via the tuple table. -cim 1/18/90
- *
- * Tuple table macros are all excised from the system now.
- * See executor.h for decls of functions defined in execTuples.c
- * -jolly
- *
- * ----------------
- */
- typedef struct TupleTableSlot
- {
- NodeTag type;
- HeapTuple val;
- bool ttc_shouldFree;
- bool ttc_descIsNew;
- TupleDesc ttc_tupleDescriptor;
- Buffer ttc_buffer;
- int ttc_whichplan;
- } TupleTableSlot;
- /* ----------------
- * tuple table data structure
- * ----------------
- */
- typedef struct TupleTableData
- {
- int size; /* size of the table */
- int next; /* next available slot number */
- TupleTableSlot *array; /* array of TupleTableSlot's */
- } TupleTableData;
- typedef TupleTableData *TupleTable;
- #endif /* TUPTABLE_H */