Tom Lane wrote:
> Perhaps a better idea would be to put the opaque-pointer typedefs into
> heapam.h and genam.h respectively, and then see where you could remove
> inclusions of relscan.h.
Hmm, this seems to be closely equivalent. Patch attached. I also moved
SysScanDescData from genam.h to relscan.h.
> Also, it seemed like some of those .c files had no business poking into
> the scan structs anyway; particularly contrib. Did you check whether
> the inclusions could be avoided?
Not really, unless we were to provide something a routine that returns
the current block of a scan. There are a few occurrences of this:
/* must hold a buffer lock to call HeapTupleSatisfiesUpdate */
LockBuffer(scan->rs_cbuf, BUFFER_LOCK_SHARE);
which of course need the definition. Maybe providing it is not a bad
idea, because that kind of coding is used in the backend too.
--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
Index: contrib/pgrowlocks/pgrowlocks.c
===================================================================
RCS file: /home/alvherre/cvs/pgsql/contrib/pgrowlocks/pgrowlocks.c,v
retrieving revision 1.10
diff -c -p -r1.10 pgrowlocks.c
*** contrib/pgrowlocks/pgrowlocks.c 12 May 2008 00:00:43 -0000 1.10
--- contrib/pgrowlocks/pgrowlocks.c 14 Jun 2008 23:16:20 -0000
***************
*** 26,31 ****
--- 26,32 ----
#include "access/heapam.h"
#include "access/multixact.h"
+ #include "access/relscan.h"
#include "access/xact.h"
#include "catalog/namespace.h"
#include "funcapi.h"
Index: contrib/pgstattuple/pgstattuple.c
===================================================================
RCS file: /home/alvherre/cvs/pgsql/contrib/pgstattuple/pgstattuple.c,v
retrieving revision 1.35
diff -c -p -r1.35 pgstattuple.c
*** contrib/pgstattuple/pgstattuple.c 16 May 2008 17:31:17 -0000 1.35
--- contrib/pgstattuple/pgstattuple.c 14 Jun 2008 23:20:41 -0000
***************
*** 29,34 ****
--- 29,35 ----
#include "access/heapam.h"
#include "access/htup.h"
#include "access/nbtree.h"
+ #include "access/relscan.h"
#include "catalog/namespace.h"
#include "funcapi.h"
#include "miscadmin.h"
*************** pgstat_heap(Relation rel, FunctionCallIn
*** 262,268 ****
/* Disable syncscan because we assume we scan from block zero upwards */
scan = heap_beginscan_strat(rel, SnapshotAny, 0, NULL, true, false);
! nblocks = scan->rs_nblocks; /* # blocks to be scanned */
/* scan the relation */
while ((tuple = heap_getnext(scan, ForwardScanDirection)) != NULL)
--- 263,269 ----
/* Disable syncscan because we assume we scan from block zero upwards */
scan = heap_beginscan_strat(rel, SnapshotAny, 0, NULL, true, false);
! nblocks = RelationGetNumberOfBlocks(rel); /* # blocks to be scanned */
/* scan the relation */
while ((tuple = heap_getnext(scan, ForwardScanDirection)) != NULL)
Index: src/backend/access/gin/ginget.c
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/backend/access/gin/ginget.c,v
retrieving revision 1.16
diff -c -p -r1.16 ginget.c
*** src/backend/access/gin/ginget.c 16 May 2008 16:31:01 -0000 1.16
--- src/backend/access/gin/ginget.c 14 Jun 2008 23:05:11 -0000
***************
*** 15,20 ****
--- 15,21 ----
#include "postgres.h"
#include "access/gin.h"
+ #include "access/relscan.h"
#include "catalog/index.h"
#include "miscadmin.h"
#include "storage/bufmgr.h"
Index: src/backend/access/gin/ginscan.c
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/backend/access/gin/ginscan.c,v
retrieving revision 1.14
diff -c -p -r1.14 ginscan.c
*** src/backend/access/gin/ginscan.c 16 May 2008 16:31:01 -0000 1.14
--- src/backend/access/gin/ginscan.c 14 Jun 2008 23:05:01 -0000
***************
*** 14,21 ****
#include "postgres.h"
- #include "access/genam.h"
#include "access/gin.h"
#include "pgstat.h"
#include "storage/bufmgr.h"
#include "utils/memutils.h"
--- 14,21 ----
#include "postgres.h"
#include "access/gin.h"
+ #include "access/relscan.h"
#include "pgstat.h"
#include "storage/bufmgr.h"
#include "utils/memutils.h"
Index: src/backend/access/gist/gistget.c
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/backend/access/gist/gistget.c,v
retrieving revision 1.73
diff -c -p -r1.73 gistget.c
*** src/backend/access/gist/gistget.c 12 May 2008 00:00:44 -0000 1.73
--- src/backend/access/gist/gistget.c 14 Jun 2008 22:53:35 -0000
***************
*** 15,20 ****
--- 15,21 ----
#include "postgres.h"
#include "access/gist_private.h"
+ #include "access/relscan.h"
#include "executor/execdebug.h"
#include "miscadmin.h"
#include "pgstat.h"
Index: src/backend/access/gist/gistscan.c
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/backend/access/gist/gistscan.c,v
retrieving revision 1.69
diff -c -p -r1.69 gistscan.c
*** src/backend/access/gist/gistscan.c 12 May 2008 00:00:44 -0000 1.69
--- src/backend/access/gist/gistscan.c 14 Jun 2008 22:54:23 -0000
***************
*** 17,22 ****
--- 17,23 ----
#include "access/genam.h"
#include "access/gist_private.h"
#include "access/gistscan.h"
+ #include "access/relscan.h"
#include "storage/bufmgr.h"
#include "utils/memutils.h"
Index: src/backend/access/hash/hash.c
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/backend/access/hash/hash.c,v
retrieving revision 1.103
diff -c -p -r1.103 hash.c
*** src/backend/access/hash/hash.c 12 May 2008 00:00:44 -0000 1.103
--- src/backend/access/hash/hash.c 14 Jun 2008 23:00:32 -0000
***************
*** 18,25 ****
#include "postgres.h"
- #include "access/genam.h"
#include "access/hash.h"
#include "catalog/index.h"
#include "commands/vacuum.h"
#include "miscadmin.h"
--- 18,25 ----
#include "postgres.h"
#include "access/hash.h"
+ #include "access/relscan.h"
#include "catalog/index.h"
#include "commands/vacuum.h"
#include "miscadmin.h"
Index: src/backend/access/hash/hashscan.c
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/backend/access/hash/hashscan.c,v
retrieving revision 1.44
diff -c -p -r1.44 hashscan.c
*** src/backend/access/hash/hashscan.c 7 Mar 2008 15:59:03 -0000 1.44
--- src/backend/access/hash/hashscan.c 14 Jun 2008 23:04:22 -0000
***************
*** 16,21 ****
--- 16,22 ----
#include "postgres.h"
#include "access/hash.h"
+ #include "access/relscan.h"
#include "utils/memutils.h"
#include "utils/resowner.h"
Index: src/backend/access/hash/hashsearch.c
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/backend/access/hash/hashsearch.c,v
retrieving revision 1.52
diff -c -p -r1.52 hashsearch.c
*** src/backend/access/hash/hashsearch.c 12 May 2008 00:00:44 -0000 1.52
--- src/backend/access/hash/hashsearch.c 14 Jun 2008 23:04:34 -0000
***************
*** 15,20 ****
--- 15,21 ----
#include "postgres.h"
#include "access/hash.h"
+ #include "access/relscan.h"
#include "pgstat.h"
#include "storage/bufmgr.h"
Index: src/backend/access/hash/hashutil.c
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/backend/access/hash/hashutil.c,v
retrieving revision 1.54
diff -c -p -r1.54 hashutil.c
*** src/backend/access/hash/hashutil.c 12 May 2008 00:00:44 -0000 1.54
--- src/backend/access/hash/hashutil.c 14 Jun 2008 23:04:46 -0000
***************
*** 14,22 ****
*/
#include "postgres.h"
- #include "access/genam.h"
#include "access/hash.h"
#include "access/reloptions.h"
#include "executor/execdebug.h"
#include "storage/bufmgr.h"
#include "utils/lsyscache.h"
--- 14,22 ----
*/
#include "postgres.h"
#include "access/hash.h"
#include "access/reloptions.h"
+ #include "access/relscan.h"
#include "executor/execdebug.h"
#include "storage/bufmgr.h"
#include "utils/lsyscache.h"
Index: src/backend/access/heap/heapam.c
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/backend/access/heap/heapam.c,v
retrieving revision 1.259
diff -c -p -r1.259 heapam.c
*** src/backend/access/heap/heapam.c 12 Jun 2008 09:12:30 -0000 1.259
--- src/backend/access/heap/heapam.c 14 Jun 2008 22:54:46 -0000
***************
*** 42,47 ****
--- 42,48 ----
#include "access/heapam.h"
#include "access/hio.h"
#include "access/multixact.h"
+ #include "access/relscan.h"
#include "access/sysattr.h"
#include "access/transam.h"
#include "access/tuptoaster.h"
Index: src/backend/access/index/genam.c
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/backend/access/index/genam.c,v
retrieving revision 1.70
diff -c -p -r1.70 genam.c
*** src/backend/access/index/genam.c 8 Jun 2008 23:16:43 -0000 1.70
--- src/backend/access/index/genam.c 14 Jun 2008 22:55:05 -0000
***************
*** 21,26 ****
--- 21,27 ----
#include "access/genam.h"
#include "access/heapam.h"
+ #include "access/relscan.h"
#include "access/transam.h"
#include "miscadmin.h"
#include "pgstat.h"
Index: src/backend/access/index/indexam.c
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/backend/access/index/indexam.c,v
retrieving revision 1.108
diff -c -p -r1.108 indexam.c
*** src/backend/access/index/indexam.c 12 May 2008 00:00:45 -0000 1.108
--- src/backend/access/index/indexam.c 14 Jun 2008 22:55:22 -0000
***************
*** 64,69 ****
--- 64,70 ----
#include "access/genam.h"
#include "access/heapam.h"
+ #include "access/relscan.h"
#include "access/transam.h"
#include "pgstat.h"
#include "storage/bufmgr.h"
Index: src/backend/access/nbtree/nbtree.c
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/backend/access/nbtree/nbtree.c,v
retrieving revision 1.160
diff -c -p -r1.160 nbtree.c
*** src/backend/access/nbtree/nbtree.c 12 May 2008 00:00:45 -0000 1.160
--- src/backend/access/nbtree/nbtree.c 14 Jun 2008 22:55:52 -0000
***************
*** 20,25 ****
--- 20,26 ----
#include "access/genam.h"
#include "access/nbtree.h"
+ #include "access/relscan.h"
#include "catalog/index.h"
#include "commands/vacuum.h"
#include "miscadmin.h"
Index: src/backend/access/nbtree/nbtsearch.c
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/backend/access/nbtree/nbtsearch.c,v
retrieving revision 1.117
diff -c -p -r1.117 nbtsearch.c
*** src/backend/access/nbtree/nbtsearch.c 12 May 2008 00:00:45 -0000 1.117
--- src/backend/access/nbtree/nbtsearch.c 14 Jun 2008 22:56:03 -0000
***************
*** 17,22 ****
--- 17,23 ----
#include "access/genam.h"
#include "access/nbtree.h"
+ #include "access/relscan.h"
#include "pgstat.h"
#include "storage/bufmgr.h"
#include "utils/lsyscache.h"
Index: src/backend/access/nbtree/nbtutils.c
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/backend/access/nbtree/nbtutils.c,v
retrieving revision 1.90
diff -c -p -r1.90 nbtutils.c
*** src/backend/access/nbtree/nbtutils.c 12 May 2008 00:00:45 -0000 1.90
--- src/backend/access/nbtree/nbtutils.c 14 Jun 2008 22:56:15 -0000
***************
*** 20,25 ****
--- 20,26 ----
#include "access/genam.h"
#include "access/nbtree.h"
#include "access/reloptions.h"
+ #include "access/relscan.h"
#include "executor/execdebug.h"
#include "miscadmin.h"
#include "storage/bufmgr.h"
Index: src/backend/catalog/index.c
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/backend/catalog/index.c,v
retrieving revision 1.299
diff -c -p -r1.299 index.c
*** src/backend/catalog/index.c 12 May 2008 20:01:59 -0000 1.299
--- src/backend/catalog/index.c 14 Jun 2008 22:56:46 -0000
***************
*** 25,30 ****
--- 25,31 ----
#include "access/genam.h"
#include "access/heapam.h"
+ #include "access/relscan.h"
#include "access/sysattr.h"
#include "access/transam.h"
#include "access/xact.h"
Index: src/backend/commands/cluster.c
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/backend/commands/cluster.c,v
retrieving revision 1.176
diff -c -p -r1.176 cluster.c
*** src/backend/commands/cluster.c 12 May 2008 20:01:59 -0000 1.176
--- src/backend/commands/cluster.c 14 Jun 2008 22:57:27 -0000
***************
*** 19,24 ****
--- 19,25 ----
#include "access/genam.h"
#include "access/heapam.h"
+ #include "access/relscan.h"
#include "access/rewriteheap.h"
#include "access/transam.h"
#include "access/xact.h"
Index: src/backend/commands/tablecmds.c
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/backend/commands/tablecmds.c,v
retrieving revision 1.256
diff -c -p -r1.256 tablecmds.c
*** src/backend/commands/tablecmds.c 14 Jun 2008 18:04:33 -0000 1.256
--- src/backend/commands/tablecmds.c 14 Jun 2008 22:57:55 -0000
***************
*** 17,22 ****
--- 17,23 ----
#include "access/genam.h"
#include "access/heapam.h"
#include "access/reloptions.h"
+ #include "access/relscan.h"
#include "access/sysattr.h"
#include "access/xact.h"
#include "catalog/catalog.h"
Index: src/backend/executor/nodeBitmapHeapscan.c
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/backend/executor/nodeBitmapHeapscan.c,v
retrieving revision 1.28
diff -c -p -r1.28 nodeBitmapHeapscan.c
*** src/backend/executor/nodeBitmapHeapscan.c 13 May 2008 15:44:08 -0000 1.28
--- src/backend/executor/nodeBitmapHeapscan.c 14 Jun 2008 22:58:36 -0000
***************
*** 36,41 ****
--- 36,42 ----
#include "postgres.h"
#include "access/heapam.h"
+ #include "access/relscan.h"
#include "executor/execdebug.h"
#include "executor/nodeBitmapHeapscan.h"
#include "pgstat.h"
Index: src/backend/executor/nodeIndexscan.c
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/backend/executor/nodeIndexscan.c,v
retrieving revision 1.128
diff -c -p -r1.128 nodeIndexscan.c
*** src/backend/executor/nodeIndexscan.c 13 Apr 2008 20:51:20 -0000 1.128
--- src/backend/executor/nodeIndexscan.c 14 Jun 2008 22:58:50 -0000
***************
*** 26,31 ****
--- 26,32 ----
#include "access/genam.h"
#include "access/nbtree.h"
+ #include "access/relscan.h"
#include "executor/execdebug.h"
#include "executor/nodeIndexscan.h"
#include "nodes/nodeFuncs.h"
Index: src/backend/executor/nodeSeqscan.c
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/backend/executor/nodeSeqscan.c,v
retrieving revision 1.64
diff -c -p -r1.64 nodeSeqscan.c
*** src/backend/executor/nodeSeqscan.c 1 Jan 2008 19:45:49 -0000 1.64
--- src/backend/executor/nodeSeqscan.c 14 Jun 2008 22:59:06 -0000
***************
*** 25,30 ****
--- 25,31 ----
#include "postgres.h"
#include "access/heapam.h"
+ #include "access/relscan.h"
#include "executor/execdebug.h"
#include "executor/nodeSeqscan.h"
Index: src/backend/utils/cache/catcache.c
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/backend/utils/cache/catcache.c,v
retrieving revision 1.143
diff -c -p -r1.143 catcache.c
*** src/backend/utils/cache/catcache.c 12 May 2008 00:00:51 -0000 1.143
--- src/backend/utils/cache/catcache.c 14 Jun 2008 23:06:31 -0000
***************
*** 17,22 ****
--- 17,23 ----
#include "access/genam.h"
#include "access/hash.h"
#include "access/heapam.h"
+ #include "access/relscan.h"
#include "access/sysattr.h"
#include "access/valid.h"
#include "catalog/pg_operator.h"
Index: src/include/access/genam.h
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/include/access/genam.h,v
retrieving revision 1.73
diff -c -p -r1.73 genam.h
*** src/include/access/genam.h 8 Jun 2008 22:41:04 -0000 1.73
--- src/include/access/genam.h 14 Jun 2008 22:46:54 -0000
***************
*** 14,25 ****
#ifndef GENAM_H
#define GENAM_H
- #include "access/relscan.h"
#include "access/sdir.h"
#include "nodes/tidbitmap.h"
#include "storage/buf.h"
#include "storage/lock.h"
#include "utils/rel.h"
/*
* Struct for statistics returned by ambuild
--- 14,26 ----
#ifndef GENAM_H
#define GENAM_H
#include "access/sdir.h"
+ #include "access/skey.h"
#include "nodes/tidbitmap.h"
#include "storage/buf.h"
#include "storage/lock.h"
#include "utils/rel.h"
+ #include "utils/snapshot.h"
/*
* Struct for statistics returned by ambuild
*************** typedef struct IndexBulkDeleteResult
*** 73,93 ****
/* Typedef for callback function to determine if a tuple is bulk-deletable */
typedef bool (*IndexBulkDeleteCallback) (ItemPointer itemptr, void *state);
! /* Struct for heap-or-index scans of system tables */
! typedef struct SysScanDescData
! {
! Relation heap_rel; /* catalog being scanned */
! Relation irel; /* NULL if doing heap scan */
! HeapScanDesc scan; /* only valid in heap-scan case */
! IndexScanDesc iscan; /* only valid in index-scan case */
! } SysScanDescData;
!
! typedef SysScanDescData *SysScanDesc;
/*
* generalized index_ interface routines (in indexam.c)
*/
extern Relation index_open(Oid relationId, LOCKMODE lockmode);
extern void index_close(Relation relation, LOCKMODE lockmode);
--- 74,94 ----
/* Typedef for callback function to determine if a tuple is bulk-deletable */
typedef bool (*IndexBulkDeleteCallback) (ItemPointer itemptr, void *state);
! /* struct definitions appear in relscan.h */
! typedef struct IndexScanDescData *IndexScanDesc;
! typedef struct SysScanDescData *SysScanDesc;
/*
* generalized index_ interface routines (in indexam.c)
*/
+
+ /*
+ * IndexScanIsValid
+ * True iff the index scan is valid.
+ */
+ #define IndexScanIsValid(scan) PointerIsValid(scan)
+
extern Relation index_open(Oid relationId, LOCKMODE lockmode);
extern void index_close(Relation relation, LOCKMODE lockmode);
Index: src/include/access/gin.h
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/include/access/gin.h,v
retrieving revision 1.21
diff -c -p -r1.21 gin.h
*** src/include/access/gin.h 6 Jun 2008 22:35:22 -0000 1.21
--- src/include/access/gin.h 14 Jun 2008 23:00:09 -0000
***************
*** 12,19 ****
#ifndef GIN_H
#define GIN_H
#include "access/itup.h"
- #include "access/relscan.h"
#include "access/xlog.h"
#include "fmgr.h"
#include "nodes/tidbitmap.h"
--- 12,19 ----
#ifndef GIN_H
#define GIN_H
+ #include "access/genam.h"
#include "access/itup.h"
#include "access/xlog.h"
#include "fmgr.h"
#include "nodes/tidbitmap.h"
Index: src/include/access/hash.h
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/include/access/hash.h,v
retrieving revision 1.87
diff -c -p -r1.87 hash.h
*** src/include/access/hash.h 10 Apr 2008 22:25:25 -0000 1.87
--- src/include/access/hash.h 14 Jun 2008 23:01:57 -0000
***************
*** 17,28 ****
#ifndef HASH_H
#define HASH_H
#include "access/itup.h"
- #include "access/relscan.h"
#include "access/sdir.h"
#include "access/xlog.h"
#include "fmgr.h"
#include "storage/lock.h"
/*
* Mapping from hash bucket number to physical block number of bucket's
--- 17,29 ----
#ifndef HASH_H
#define HASH_H
+ #include "access/genam.h"
#include "access/itup.h"
#include "access/sdir.h"
#include "access/xlog.h"
#include "fmgr.h"
#include "storage/lock.h"
+ #include "utils/rel.h"
/*
* Mapping from hash bucket number to physical block number of bucket's
Index: src/include/access/heapam.h
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/include/access/heapam.h,v
retrieving revision 1.136
diff -c -p -r1.136 heapam.h
*** src/include/access/heapam.h 12 Jun 2008 09:12:31 -0000 1.136
--- src/include/access/heapam.h 14 Jun 2008 22:45:48 -0000
***************
*** 15,25 ****
#define HEAPAM_H
#include "access/htup.h"
- #include "access/relscan.h"
#include "access/sdir.h"
#include "access/xlog.h"
#include "nodes/primnodes.h"
#include "storage/lock.h"
#include "utils/snapshot.h"
--- 15,27 ----
#define HEAPAM_H
#include "access/htup.h"
#include "access/sdir.h"
+ #include "access/skey.h"
#include "access/xlog.h"
#include "nodes/primnodes.h"
+ #include "storage/bufpage.h"
#include "storage/lock.h"
+ #include "utils/rel.h"
#include "utils/snapshot.h"
*************** extern Relation heap_openrv(const RangeV
*** 50,55 ****
--- 52,66 ----
#define heap_close(r,l) relation_close(r,l)
+ /* struct definition appears in relscan.h */
+ typedef struct HeapScanDescData *HeapScanDesc;
+
+ /*
+ * HeapScanIsValid
+ * True iff the heap scan is valid.
+ */
+ #define HeapScanIsValid(scan) PointerIsValid(scan)
+
extern HeapScanDesc heap_beginscan(Relation relation, Snapshot snapshot,
int nkeys, ScanKey key);
extern HeapScanDesc heap_beginscan_strat(Relation relation, Snapshot snapshot,
Index: src/include/access/nbtree.h
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/include/access/nbtree.h,v
retrieving revision 1.119
diff -c -p -r1.119 nbtree.h
*** src/include/access/nbtree.h 6 Jun 2008 22:35:22 -0000 1.119
--- src/include/access/nbtree.h 14 Jun 2008 22:42:20 -0000
***************
*** 14,21 ****
#ifndef NBTREE_H
#define NBTREE_H
#include "access/itup.h"
- #include "access/relscan.h"
#include "access/sdir.h"
#include "access/xlog.h"
#include "access/xlogutils.h"
--- 14,21 ----
#ifndef NBTREE_H
#define NBTREE_H
+ #include "access/genam.h"
#include "access/itup.h"
#include "access/sdir.h"
#include "access/xlog.h"
#include "access/xlogutils.h"
Index: src/include/access/relscan.h
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/include/access/relscan.h,v
retrieving revision 1.65
diff -c -p -r1.65 relscan.h
*** src/include/access/relscan.h 12 May 2008 00:00:53 -0000 1.65
--- src/include/access/relscan.h 14 Jun 2008 22:47:59 -0000
***************
*** 14,19 ****
--- 14,21 ----
#ifndef RELSCAN_H
#define RELSCAN_H
+ #include "access/genam.h"
+ #include "access/heapam.h"
#include "access/htup.h"
#include "access/skey.h"
#include "storage/bufpage.h"
*************** typedef struct HeapScanDescData
*** 54,61 ****
OffsetNumber rs_vistuples[MaxHeapTuplesPerPage]; /* their offsets */
} HeapScanDescData;
- typedef HeapScanDescData *HeapScanDesc;
-
/*
* We use the same IndexScanDescData structure for both amgettuple-based
* and amgetbitmap-based index scans. Some fields are only relevant in
--- 56,61 ----
*************** typedef struct IndexScanDescData
*** 89,107 ****
TransactionId xs_prev_xmax; /* previous HOT chain member's XMAX, if any */
} IndexScanDescData;
! typedef IndexScanDescData *IndexScanDesc;
!
!
! /*
! * 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 /* RELSCAN_H */
--- 89,101 ----
TransactionId xs_prev_xmax; /* previous HOT chain member's XMAX, if any */
} IndexScanDescData;
! /* Struct for heap-or-index scans of system tables */
! typedef struct SysScanDescData
! {
! Relation heap_rel; /* catalog being scanned */
! Relation irel; /* NULL if doing heap scan */
! HeapScanDesc scan; /* only valid in heap-scan case */
! IndexScanDesc iscan; /* only valid in index-scan case */
! } SysScanDescData;
#endif /* RELSCAN_H */
Index: src/include/nodes/execnodes.h
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/include/nodes/execnodes.h,v
retrieving revision 1.183
diff -c -p -r1.183 execnodes.h
*** src/include/nodes/execnodes.h 1 Jan 2008 19:45:58 -0000 1.183
--- src/include/nodes/execnodes.h 14 Jun 2008 22:41:34 -0000
***************
*** 14,20 ****
#ifndef EXECNODES_H
#define EXECNODES_H
! #include "access/relscan.h"
#include "nodes/params.h"
#include "nodes/plannodes.h"
#include "nodes/tidbitmap.h"
--- 14,21 ----
#ifndef EXECNODES_H
#define EXECNODES_H
! #include "access/genam.h"
! #include "access/heapam.h"
#include "nodes/params.h"
#include "nodes/plannodes.h"
#include "nodes/tidbitmap.h"
Index: src/include/nodes/print.h
===================================================================
RCS file: /home/alvherre/cvs/pgsql/src/include/nodes/print.h,v
retrieving revision 1.28
diff -c -p -r1.28 print.h
*** src/include/nodes/print.h 1 Jan 2008 19:45:58 -0000 1.28
--- src/include/nodes/print.h 14 Jun 2008 23:12:30 -0000
***************
*** 15,21 ****
#define PRINT_H
#include "nodes/parsenodes.h"
! #include "nodes/execnodes.h"
#define nodeDisplay(x) pprint(x)
--- 15,21 ----
#define PRINT_H
#include "nodes/parsenodes.h"
! #include "executor/tuptable.h"
#define nodeDisplay(x) pprint(x)
--
Sent via pgsql-patches mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-patches