head 1.13; access; symbols release_4_2:1.13 aix_ok:1.13 Version_2_1:1.10 Version_2:1.7 C_Demo_1:1.5; locks; strict; comment @ * @; 1.13 date 93.08.10.08.27.28; author aoki; state Exp; branches; next 1.12; 1.12 date 91.08.25.13.30.37; author hong; state Exp; branches; next 1.11; 1.11 date 91.04.28.09.15.56; author cimarron; state Exp; branches; next 1.10; 1.10 date 91.02.24.09.05.03; author mao; state Exp; branches; next 1.9; 1.9 date 90.09.10.20.41.14; author hong; state Exp; branches; next 1.8; 1.8 date 90.08.17.08.51.04; author cimarron; state Exp; branches; next 1.7; 1.7 date 89.09.29.18.51.11; author hirohama; state Version_2; branches; next 1.6; 1.6 date 89.09.18.08.01.57; author cimarron; state Exp; branches; next 1.5; 1.5 date 89.09.05.17.11.26; author mao; state C_Demo_1; branches; next 1.4; 1.4 date 89.08.09.18.13.50; author cimarron; state Exp; branches; next 1.3; 1.3 date 89.04.12.19.56.00; author dillon; state Exp; branches; next 1.2; 1.2 date 89.03.22.17.34.22; author muir; state Stab; branches; next 1.1; 1.1 date 89.01.17.05.54.46; author cimarron; state Exp; branches; next ; desc @@ 1.13 log @removed unreferenced field @ text @/* * relscan.h -- * POSTGRES internal relation scan descriptor definitions. */ #ifndef RelScanIncluded /* Include this file only once */ #define RelScanIncluded 1 /* * Identification: */ #define RELSCAN_H "$Header: /home2/aoki/master/src/backend/access/RCS/relscan.h,v 1.12 1991/08/25 13:30:37 hong Exp aoki $" #include "tmp/c.h" #include "access/skey.h" #include "storage/buf.h" #include "access/htup.h" #include "storage/itemptr.h" #include "access/tqual.h" #include "utils/rel.h" typedef ItemPointerData MarkData; typedef struct HeapScanDescData { Relation rs_rd; /* pointer to relation descriptor */ HeapTuple rs_ptup; /* previous tuple in scan */ HeapTuple rs_ctup; /* current tuple in scan */ HeapTuple rs_ntup; /* next tuple in scan */ Buffer rs_pbuf; /* previous buffer in scan */ Buffer rs_cbuf; /* current buffer in scan */ Buffer rs_nbuf; /* next buffer in scan */ #if 0 /* * XXX this is totally unreferenced but it's probably something * we should think about... */ struct dchain *rs_dc; /* cached expanded delta chain */ #endif ItemPointerData rs_mptid; /* marked previous tid */ ItemPointerData rs_mctid; /* marked current tid */ ItemPointerData rs_mntid; /* marked next tid */ ItemPointerData rs_mcd; /* marked current delta XXX ??? */ Boolean rs_atend; /* restart scan at end? */ TimeQual rs_tr; /* time qualification */ uint16 rs_cdelta; /* current delta in chain */ bool rs_parallel_ok; /* ok to parallelize? */ uint16 rs_nkeys; /* number of attributes in keys */ ScanKeyData rs_key; /* key descriptors */ /* VARIABLE LENGTH ARRAY AT END OF STRUCT */ } HeapScanDescData; typedef HeapScanDescData *HeapScanDesc; typedef struct IndexScanDescData { Relation relation; /* relation descriptor */ Pointer opaque; /* am-specific slot */ ItemPointerData previousItemData; /* previous index pointer */ ItemPointerData currentItemData; /* current index pointer */ ItemPointerData nextItemData; /* next index pointer */ MarkData previousMarkData; /* marked previous pointer */ MarkData currentMarkData; /* marked current pointer */ MarkData nextMarkData; /* marked next pointer */ uint8 flags; /* scan position flags */ Boolean scanFromEnd; /* restart scan at end? */ uint16 numberOfKeys; /* number of key attributes */ ScanKeyData keyData; /* key descriptor */ /* VARIABLE LENGTH ARRAY AT END OF STRUCT */ } IndexScanDescData; typedef IndexScanDescData *IndexScanDesc; /* ---------------- * IndexScanDescPtr is used in the executor where we have to * keep track of several index scans when using several indices * - cim 9/10/89 * ---------------- */ typedef IndexScanDesc *IndexScanDescPtr; /* * HeapScanIsValid -- * True iff the heap scan is valid. */ #define HeapScanIsValid(scan) PointerIsValid(scan) /* * IndexScanIsValid -- * True iff the index scan is valid. */ #define IndexScanIsValid(scan) PointerIsValid(scan) #endif /* !defined(RelScanIncluded) */ @ 1.12 log @changed scan descriptor to better support dynamic parallelism adjustment @ text @d12 1 a12 1 #define RELSCAN_H "$Header: RCS/relscan.h,v 1.11 91/04/28 09:15:56 cimarron Exp Locker: hong $" d33 5 d39 1 @ 1.11 log @Converted IsValid code into macros and added an improved NodeIsType scheme @ text @d12 1 a12 1 #define RELSCAN_H "$Header: RCS/relscan.h,v 1.10 91/02/24 09:05:03 mao Exp Locker: cimarron $" d41 1 a41 2 int pageskip; /* page skip when parallel scan */ int initskip; /* init page skip when parallel scan */ @ 1.10 log @index scan descriptors now have an opaque entry for use by the access method @ text @d12 1 a12 1 #define RELSCAN_H "$Header: RCS/relscan.h,v 1.9 90/09/10 20:41:14 hong Exp Locker: mao $" d80 1 a80 5 extern bool HeapScanIsValid ARGS (( HeapScanDesc scan )); d86 1 a86 5 extern bool IndexScanIsValid ARGS (( IndexScanDesc scan )); @ 1.9 log @added some fields for HeapScanDesc @ text @d12 1 a12 1 #define RELSCAN_H "$Header: RCS/relscan.h,v 1.8 90/08/17 08:51:04 cimarron Exp Locker: hong $" d52 1 @ 1.8 log @added pathnames to #include statements @ text @d12 1 a12 1 #define RELSCAN_H "$Header: RCS/relscan.h,v 1.7 89/09/29 18:51:11 hirohama Version_2 Locker: cimarron $" d41 2 @ 1.7 log @"trange" -> "tqual" @ text @d12 1 a12 1 #define RELSCAN_H "$Header: RCS/relscan.h,v 1.6 89/09/18 08:01:57 cimarron Exp Locker: hirohama $" d14 1 a14 3 #ifndef C_H #include "c.h" #endif d16 6 a21 17 #include "skey.h" #ifndef BUF_H # include "buf.h" #endif #ifndef HTUP_H # include "htup.h" #endif #ifndef ITEMPTR_H # include "itemptr.h" #endif #ifndef TQUAL_H # include "tqual.h" #endif #ifndef REL_H # include "rel.h" #endif @ 1.6 log @added code to support index scans in the executor. @ text @a3 3 * * Identification: * $Header: RCS/relscan.h,v 1.4 89/08/09 18:13:50 cimarron Exp $ d6 1 a6 1 #ifndef RelScanIncluded /* Include this file only once. */ d9 5 a17 3 #include "buf.h" #include "htup.h" #include "itemptr.h" a18 2 #include "trange.h" #include "rel.h" d20 16 d52 1 a52 1 TimeRange rs_tr; /* time range */ @ 1.5 log @Working version of C-only demo @ text @d6 1 a6 1 * $Header: /usr6/postgres/mao/postgres/src/lib/H/RCS/relscan.h,v 1.4 89/08/09 18:13:50 cimarron Exp $ d64 8 @ 1.4 log @"retrieve(x=1)" @ text @d6 1 a6 1 * $Header: /usr6/postgres/cimarron/postgres3/src/lib/H/RCS/relscan.h,v 1.3 89/04/12 19:56:00 dillon Exp $ @ 1.3 log @c.h @ text @d6 1 a6 1 * $Header: /usr6/postgres/dillon/ptree/src/lib/H/RCS/relscan.h,v 1.2 89/03/22 17:34:22 muir Stab $ d25 1 a25 1 typedef struct HeapScanData { d44 1 a44 1 } HeapScanData; d46 1 a46 1 typedef HeapScanData *HeapScan; d48 1 a48 1 typedef struct IndexScanData { d61 1 a61 1 } IndexScanData; d63 1 a63 1 typedef IndexScanData *IndexScan; d72 1 a72 1 HeapScan scan d82 1 a82 1 IndexScan scan @ 1.2 log @copyright removal @ text @d6 1 a6 1 * $Header: /usr6/postgres/muir/postgres/src/lib/H/RCS/relscan.h,v 1.1 89/01/17 05:54:46 cimarron Exp $ d12 1 d14 1 @ 1.1 log @Initial revision @ text @a0 27 ; /* ; * ; * POSTGRES Data Base Management System ; * ; * Copyright (c) 1988 Regents of the University of California ; * ; * Permission to use, copy, modify, and distribute this software and its ; * documentation for educational, research, and non-profit purposes and ; * without fee is hereby granted, provided that the above copyright ; * notice appear in all copies and that both that copyright notice and ; * this permission notice appear in supporting documentation, and that ; * the name of the University of California not be used in advertising ; * or publicity pertaining to distribution of the software without ; * specific, written prior permission. Permission to incorporate this ; * software into commercial products can be obtained from the Campus ; * Software Office, 295 Evans Hall, University of California, Berkeley, ; * Ca., 94720 provided only that the the requestor give the University ; * of California a free licence to any derived software for educational ; * and research purposes. The University of California makes no ; * representations about the suitability of this software for any ; * purpose. It is provided "as is" without express or implied warranty. ; * ; */ d6 1 a6 1 * $Header: relscan.h,v 1.1 88/11/11 16:37:22 postgres Exp $ @