head 1.13; access; symbols Version_2_1:1.9 Version_2:1.7 C_Demo_1:1.5; locks; strict; comment @ * @; 1.13 date 92.02.19.21.05.06; author mer; state Exp; branches; next 1.12; 1.12 date 92.02.14.13.52.29; author olson; state Exp; branches; next 1.11; 1.11 date 92.02.12.13.27.54; author olson; state Exp; branches; next 1.10; 1.10 date 91.11.14.15.02.57; author jolly; state Exp; branches; next 1.9; 1.9 date 90.08.18.00.39.59; author cimarron; state Exp; branches; next 1.8; 1.8 date 90.08.17.08.51.03; author cimarron; state Exp; branches; next 1.7; 1.7 date 90.02.08.14.45.13; author hong; state Version_2; branches; next 1.6; 1.6 date 89.09.18.08.02.07; author cimarron; state Exp; branches; next 1.5; 1.5 date 89.09.05.17.08.47; author mao; state C_Demo_1; branches; next 1.4; 1.4 date 89.08.09.18.13.40; author cimarron; state Exp; branches; next 1.3; 1.3 date 89.04.12.19.55.15; author dillon; state Exp; branches; next 1.2; 1.2 date 89.03.22.17.33.58; author muir; state Stab; branches; next 1.1; 1.1 date 89.01.17.05.54.34; author cimarron; state Exp; branches; next ; desc @@ 1.13 log @function header var name is really a macro name!! oops. @ text @/* * newam.h -- * POSTGRES definitions which interface with new access methods. * * Identification: * $Header: /users/mer/pg/src/lib/H/access/RCS/newam.h,v 1.12 1992/02/14 13:52:29 olson Exp mer $ */ #ifndef NewAMIncluded #define NewAMIncluded 1 #include "tmp/postgres.h" #include "access/istrat.h" #include "access/itup.h" #include "access/relscan.h" #include "access/sdir.h" #include "access/skey.h" #include "utils/rel.h" #include "rules/rlock.h" #include "access/funcindex.h" #include "nodes/pg_lisp.h" /* * NewCreate -- * Interface for new access method create file routine. */ extern void NewCreate ARGS(( Relation relation, char relationName[16], char databaseName[16], char databasePath[] )); /* * NewBuild -- * Interface for new access method build index routine. */ extern void NewBuild ARGS(( Relation heapRelation, Relation indexRelation, AttributeNumber numberOfAttributes, AttributeNumber attributeNumber[], uint16 parameterCount, Datum parameter[] )); /* * DefaultBuild -- * Default build index routine. */ extern void DefaultBuild ARGS(( Relation heapRelation, Relation indexRelation, AttributeNumber numberOfAttributes, AttributeNumber attributeNumber[], IndexStrategy indexStrategy, uint16 parameterCount, Datum parameter[], FuncIndexInfoPtr funcInfo, LispValue predicate )); /* * FormIndexDatum -- * extracts attribute information from a heap tuple, * from which an index tuple is created. */ extern void FormIndexDatum ARGS(( AttributeNumber numberOfAttributes, AttributeNumber attributeNumber[], HeapTuple heapTuple, TupleDescriptor heapDescriptor, Buffer buffer, Datum *datum, char *nulls, FuncIndexInfoPtr fInfo )); /* * NewDestroy -- * Interface for new access method remove file routine. */ extern void NewDestroy ARGS(( Relation relation, char relationName[16], char databaseName[16], char databasePath[] )); /* * NewOpen -- * Interface for new access method open file routine. */ extern int /* for now */ NewOpen ARGS(( Relation relation, char relationName[16], char databaseName[16], char databasePath[] )); /* * NewClose -- * Interface for new access method close file routine. */ extern void NewClose ARGS(( Relation relation, int f /* for now */ )); /* * NewInsert -- * Interface for new access method index tuple insertion routine. */ extern InsertIndexResult NewInsert ARGS(( Relation relation, IndexTuple indexTuple, bool computeOffset, char *scan /* XXX fix this */ )); /* * NewDelete -- * Interface for new access method index tuple deletion routine. */ extern void NewDelete ARGS(( Relation relation, ItemPointer tid )); /* * NewSetLock -- * Interface for new access method lock setting routine. */ extern void NewSetLock ARGS(( Relation relation, ItemPointer indexItemPointer, RuleLock lock )); /* * NewSetTid -- * Interface for new access method base "tid" setting routine. */ extern void NewSetTid ARGS(( Relation relation, ItemPointer indexItemPointer, ItemPointer heapItemPointer )); /* * NewBeginScan -- * Interface for new access method initialize index scan routine. */ extern IndexScanDesc NewBeginScan ARGS(( Relation relation, bool startScanAtEnd, uint16 numberOfKeys, ScanKey key )); /* * NewRescan -- * Interface for new access method restart index scan routine. */ extern void NewRescan ARGS(( IndexScanDesc scan, ScanKey key )); /* * NewEndScan -- * Interface for new access method end index scan routine. */ extern void NewEndScan ARGS(( IndexScanDesc scan )); /* * NewMarkPos -- * Interface for new access method mark index scan position routine. */ extern void NewMarkPos ARGS(( IndexScanDesc scan )); /* * NewRestrPos -- * Interface for new access method restore index scan position routine. */ extern void NewRestrPos ARGS(( IndexScanDesc scan )); /* * NewGetTuple -- * Interface for new access method get index tuple routine. */ extern RetrieveIndexResult NewGetTuple ARGS(( Relation relation, ItemPointer indexItem, int direction, /* -1 backwd, 1 fwd, 0 no move XXX */ uint16 numberOfKeys, ScanKey key )); /* * NewFreeTuple -- * Interface for new access method free tuple routine. */ extern NewFreeTuple ARGS(( Relation relation /* this needs more thought */ )); #endif /* !defined(NewAMIncluded) */ @ 1.12 log @include pg_lisp.h for LispValue definition @ text @d6 1 a6 1 * $Header: src/lib/H/access/RCS/newam.h,v 1.11 92/02/12 13:27:54 olson Exp Locker: olson $ d84 1 a84 1 char *null, @ 1.11 log @support partial index definition @ text @d6 1 a6 1 * $Header: src/lib/H/access/RCS/newam.h,v 1.10 91/11/14 15:02:57 jolly Exp Locker: olson $ d22 1 @ 1.10 log @cleaned up for function prototyping @ text @d6 1 a6 1 * $Header: access/RCS/newam.h,v 1.9 90/08/18 00:39:59 cimarron Exp Locker: jolly $ d65 2 a66 1 FuncIndexInfoPtr funcInfo @ 1.9 log @eliminated less significant .h files @ text @d6 1 a6 1 * $Header: RCS/newam.h,v 1.8 90/08/17 08:51:03 cimarron Exp Locker: cimarron $ d21 1 d64 2 a65 1 Datum parameter[] d82 2 a83 1 char *null @ 1.8 log @added pathnames to #include statements @ text @d6 1 a6 1 * $Header: RCS/newam.h,v 1.7 90/02/08 14:45:13 hong Version_2 Locker: cimarron $ d12 1 a12 1 #include "tmp/c.h" a13 2 #include "tmp/datum.h" #include "access/sdir.h" d16 3 a19 1 #include "access/relscan.h" a20 1 #include "access/skey.h" @ 1.7 log @fix for hermes to reduce levels of #include nesting. @ text @d6 1 a6 1 * $Header: RCS/newam.h,v 1.6 89/09/18 08:02:07 cimarron Exp $ d12 1 a12 3 #ifndef C_H #include "c.h" #endif d14 8 a21 24 #ifndef DATUM_H #include "datum.h" #endif #ifndef SDIR_H #include "sdir.h" #endif #ifndef ISTRAT_H #include "istrat.h" #endif #ifndef ITUP_H #include "itup.h" #endif #ifndef REL_H #include "rel.h" #endif #ifndef RELSCAN_H #include "relscan.h" #endif #ifndef RLOCK_H #include "rlock.h" #endif #ifndef SKEY_H #include "skey.h" #endif @ 1.6 log @added code to support index scans in the executor. @ text @d6 1 a6 1 * $Header: RCS/newam.h,v 1.4 89/08/09 18:13:40 cimarron Exp $ d16 1 d18 2 d21 2 d24 2 d27 2 d30 2 d33 2 d36 2 d39 1 @ 1.5 log @Working version of C-only demo @ text @d6 1 a6 1 * $Header: /usr6/postgres/mao/postgres/src/lib/H/RCS/newam.h,v 1.4 89/08/09 18:13:40 cimarron Exp $ d67 17 @ 1.4 log @"retrieve(x=1)" @ text @d6 1 a6 1 * $Header: /usr6/postgres/cimarron/postgres3/src/lib/H/RCS/newam.h,v 1.3 89/04/12 19:55:15 dillon Exp $ @ 1.3 log @c.h @ text @d6 1 a6 1 * $Header: /usr6/postgres/dillon/ptree/src/lib/H/RCS/newam.h,v 1.2 89/03/22 17:33:58 muir Stab $ d159 1 a159 1 IndexScan d174 1 a174 1 IndexScan scan, d185 1 a185 1 IndexScan scan d195 1 a195 1 IndexScan scan d205 1 a205 1 IndexScan scan @ 1.2 log @copyright removal @ text @d6 1 a6 1 * $Header: /usr6/postgres/muir/postgres/src/lib/H/RCS/newam.h,v 1.1 89/01/17 05:54:34 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: newam.h,v 1.1 88/11/11 16:37:17 postgres Exp $ @