summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/access/heap/heapam.c1
-rw-r--r--src/backend/access/index/genam.c1
-rw-r--r--src/backend/bootstrap/bootstrap.c1
-rw-r--r--src/backend/catalog/dependency.c1
-rw-r--r--src/backend/catalog/heap.c1
-rw-r--r--src/backend/catalog/indexing.c1
-rw-r--r--src/backend/catalog/objectaddress.c1
-rw-r--r--src/backend/commands/analyze.c1
-rw-r--r--src/backend/commands/constraint.c1
-rw-r--r--src/backend/commands/extension.c1
-rw-r--r--src/backend/commands/matview.c1
-rw-r--r--src/backend/commands/typecmds.c1
-rw-r--r--src/backend/executor/execCurrent.c1
-rw-r--r--src/backend/executor/execIndexing.c1
-rw-r--r--src/backend/executor/execReplication.c1
-rw-r--r--src/backend/executor/nodeBitmapIndexscan.c1
-rw-r--r--src/backend/executor/nodeIndexonlyscan.c2
-rw-r--r--src/backend/optimizer/plan/planner.c1
-rw-r--r--src/backend/utils/init/postinit.c1
-rw-r--r--src/include/access/relscan.h25
-rw-r--r--src/include/executor/nodeIndexscan.h1
-rw-r--r--src/include/nodes/execnodes.h22
22 files changed, 45 insertions, 23 deletions
diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c
index 2c4a1453576..3a184f2eccb 100644
--- a/src/backend/access/heap/heapam.c
+++ b/src/backend/access/heap/heapam.c
@@ -39,6 +39,7 @@
#include "postgres.h"
#include "access/bufmask.h"
+#include "access/genam.h"
#include "access/heapam.h"
#include "access/heapam_xlog.h"
#include "access/hio.h"
diff --git a/src/backend/access/index/genam.c b/src/backend/access/index/genam.c
index e632ad0a9bc..ffd79ffca7d 100644
--- a/src/backend/access/index/genam.c
+++ b/src/backend/access/index/genam.c
@@ -19,6 +19,7 @@
#include "postgres.h"
+#include "access/genam.h"
#include "access/heapam.h"
#include "access/relscan.h"
#include "access/transam.h"
diff --git a/src/backend/bootstrap/bootstrap.c b/src/backend/bootstrap/bootstrap.c
index 776533a2efb..63bb1349496 100644
--- a/src/backend/bootstrap/bootstrap.c
+++ b/src/backend/bootstrap/bootstrap.c
@@ -17,6 +17,7 @@
#include <unistd.h>
#include <signal.h>
+#include "access/genam.h"
#include "access/heapam.h"
#include "access/htup_details.h"
#include "access/xact.h"
diff --git a/src/backend/catalog/dependency.c b/src/backend/catalog/dependency.c
index f5560e6f706..35290847bd9 100644
--- a/src/backend/catalog/dependency.c
+++ b/src/backend/catalog/dependency.c
@@ -14,6 +14,7 @@
*/
#include "postgres.h"
+#include "access/genam.h"
#include "access/htup_details.h"
#include "access/heapam.h"
#include "access/xact.h"
diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c
index 149d97e3c3b..d7ccf2bfbef 100644
--- a/src/backend/catalog/heap.c
+++ b/src/backend/catalog/heap.c
@@ -29,6 +29,7 @@
*/
#include "postgres.h"
+#include "access/genam.h"
#include "access/heapam.h"
#include "access/htup_details.h"
#include "access/multixact.h"
diff --git a/src/backend/catalog/indexing.c b/src/backend/catalog/indexing.c
index 954e3f9ab65..0c994122d85 100644
--- a/src/backend/catalog/indexing.c
+++ b/src/backend/catalog/indexing.c
@@ -15,6 +15,7 @@
*/
#include "postgres.h"
+#include "access/genam.h"
#include "access/heapam.h"
#include "access/htup_details.h"
#include "catalog/index.h"
diff --git a/src/backend/catalog/objectaddress.c b/src/backend/catalog/objectaddress.c
index 66c2f54d5bf..f9214f8b629 100644
--- a/src/backend/catalog/objectaddress.c
+++ b/src/backend/catalog/objectaddress.c
@@ -15,6 +15,7 @@
#include "postgres.h"
+#include "access/genam.h"
#include "access/heapam.h"
#include "access/htup_details.h"
#include "access/sysattr.h"
diff --git a/src/backend/commands/analyze.c b/src/backend/commands/analyze.c
index 4248def61a7..99e3f2a672a 100644
--- a/src/backend/commands/analyze.c
+++ b/src/backend/commands/analyze.c
@@ -16,6 +16,7 @@
#include <math.h>
+#include "access/genam.h"
#include "access/heapam.h"
#include "access/multixact.h"
#include "access/sysattr.h"
diff --git a/src/backend/commands/constraint.c b/src/backend/commands/constraint.c
index b9aec7d18be..66914007ecf 100644
--- a/src/backend/commands/constraint.c
+++ b/src/backend/commands/constraint.c
@@ -13,6 +13,7 @@
*/
#include "postgres.h"
+#include "access/genam.h"
#include "access/heapam.h"
#include "catalog/index.h"
#include "commands/trigger.h"
diff --git a/src/backend/commands/extension.c b/src/backend/commands/extension.c
index f63238454a3..e381a307601 100644
--- a/src/backend/commands/extension.c
+++ b/src/backend/commands/extension.c
@@ -29,6 +29,7 @@
#include <sys/stat.h>
#include <unistd.h>
+#include "access/genam.h"
#include "access/heapam.h"
#include "access/htup_details.h"
#include "access/sysattr.h"
diff --git a/src/backend/commands/matview.c b/src/backend/commands/matview.c
index 846bd7608ce..416051a8e30 100644
--- a/src/backend/commands/matview.c
+++ b/src/backend/commands/matview.c
@@ -14,6 +14,7 @@
*/
#include "postgres.h"
+#include "access/genam.h"
#include "access/heapam.h"
#include "access/htup_details.h"
#include "access/multixact.h"
diff --git a/src/backend/commands/typecmds.c b/src/backend/commands/typecmds.c
index 769504c4591..9ca30b0443c 100644
--- a/src/backend/commands/typecmds.c
+++ b/src/backend/commands/typecmds.c
@@ -31,6 +31,7 @@
*/
#include "postgres.h"
+#include "access/genam.h"
#include "access/heapam.h"
#include "access/htup_details.h"
#include "access/xact.h"
diff --git a/src/backend/executor/execCurrent.c b/src/backend/executor/execCurrent.c
index 82dbf72675b..fe99096efc2 100644
--- a/src/backend/executor/execCurrent.c
+++ b/src/backend/executor/execCurrent.c
@@ -12,6 +12,7 @@
*/
#include "postgres.h"
+#include "access/genam.h"
#include "access/relscan.h"
#include "access/sysattr.h"
#include "catalog/pg_type.h"
diff --git a/src/backend/executor/execIndexing.c b/src/backend/executor/execIndexing.c
index c5b453ddcbe..92ca129858c 100644
--- a/src/backend/executor/execIndexing.c
+++ b/src/backend/executor/execIndexing.c
@@ -106,6 +106,7 @@
*/
#include "postgres.h"
+#include "access/genam.h"
#include "access/relscan.h"
#include "access/xact.h"
#include "catalog/index.h"
diff --git a/src/backend/executor/execReplication.c b/src/backend/executor/execReplication.c
index f7602f25553..6ffe921f28f 100644
--- a/src/backend/executor/execReplication.c
+++ b/src/backend/executor/execReplication.c
@@ -14,6 +14,7 @@
#include "postgres.h"
+#include "access/genam.h"
#include "access/heapam.h"
#include "access/relscan.h"
#include "access/transam.h"
diff --git a/src/backend/executor/nodeBitmapIndexscan.c b/src/backend/executor/nodeBitmapIndexscan.c
index 2526c3a2fc0..bd837d3cd8e 100644
--- a/src/backend/executor/nodeBitmapIndexscan.c
+++ b/src/backend/executor/nodeBitmapIndexscan.c
@@ -21,6 +21,7 @@
*/
#include "postgres.h"
+#include "access/genam.h"
#include "executor/execdebug.h"
#include "executor/nodeBitmapIndexscan.h"
#include "executor/nodeIndexscan.h"
diff --git a/src/backend/executor/nodeIndexonlyscan.c b/src/backend/executor/nodeIndexonlyscan.c
index c96a2c3ae9d..b3f61dd1fc6 100644
--- a/src/backend/executor/nodeIndexonlyscan.c
+++ b/src/backend/executor/nodeIndexonlyscan.c
@@ -30,7 +30,9 @@
*/
#include "postgres.h"
+#include "access/genam.h"
#include "access/relscan.h"
+#include "access/tupdesc.h"
#include "access/visibilitymap.h"
#include "executor/execdebug.h"
#include "executor/nodeIndexonlyscan.h"
diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c
index 8cdcf2368b2..5ba612922f9 100644
--- a/src/backend/optimizer/plan/planner.c
+++ b/src/backend/optimizer/plan/planner.c
@@ -18,6 +18,7 @@
#include <limits.h>
#include <math.h>
+#include "access/genam.h"
#include "access/heapam.h"
#include "access/htup_details.h"
#include "access/parallel.h"
diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c
index c3373dfaf3d..7415c4faabc 100644
--- a/src/backend/utils/init/postinit.c
+++ b/src/backend/utils/init/postinit.c
@@ -19,6 +19,7 @@
#include <fcntl.h>
#include <unistd.h>
+#include "access/genam.h"
#include "access/heapam.h"
#include "access/htup_details.h"
#include "access/session.h"
diff --git a/src/include/access/relscan.h b/src/include/access/relscan.h
index 43a2286c172..b78ef2f47d0 100644
--- a/src/include/access/relscan.h
+++ b/src/include/access/relscan.h
@@ -14,11 +14,12 @@
#ifndef RELSCAN_H
#define RELSCAN_H
-#include "access/genam.h"
#include "access/htup_details.h"
#include "access/itup.h"
-#include "access/tupdesc.h"
+#include "port/atomics.h"
+#include "storage/buf.h"
#include "storage/spin.h"
+#include "utils/relcache.h"
/*
* Shared state for parallel heap scan.
@@ -46,9 +47,9 @@ typedef struct HeapScanDescData
{
/* scan parameters */
Relation rs_rd; /* heap relation descriptor */
- Snapshot rs_snapshot; /* snapshot to see */
+ struct SnapshotData *rs_snapshot; /* snapshot to see */
int rs_nkeys; /* number of scan keys */
- ScanKey rs_key; /* array of scan key descriptors */
+ struct ScanKeyData *rs_key; /* array of scan key descriptors */
bool rs_bitmapscan; /* true if this is really a bitmap scan */
bool rs_samplescan; /* true if this is really a sample scan */
bool rs_pageatatime; /* verify visibility page-at-a-time? */
@@ -88,11 +89,11 @@ typedef struct IndexScanDescData
/* scan parameters */
Relation heapRelation; /* heap relation descriptor, or NULL */
Relation indexRelation; /* index relation descriptor */
- Snapshot xs_snapshot; /* snapshot to see */
+ struct SnapshotData *xs_snapshot; /* snapshot to see */
int numberOfKeys; /* number of index qualifier conditions */
int numberOfOrderBys; /* number of ordering operators */
- ScanKey keyData; /* array of index qualifier descriptors */
- ScanKey orderByData; /* array of ordering op descriptors */
+ struct ScanKeyData *keyData; /* array of index qualifier descriptors */
+ struct ScanKeyData *orderByData; /* array of ordering op descriptors */
bool xs_want_itup; /* caller requests index tuples */
bool xs_temp_snap; /* unregister snapshot at scan end? */
@@ -112,9 +113,9 @@ typedef struct IndexScanDescData
* format will be used.
*/
IndexTuple xs_itup; /* index tuple returned by AM */
- TupleDesc xs_itupdesc; /* rowtype descriptor of xs_itup */
+ struct TupleDescData *xs_itupdesc; /* rowtype descriptor of xs_itup */
HeapTuple xs_hitup; /* index data returned by AM, as HeapTuple */
- TupleDesc xs_hitupdesc; /* rowtype descriptor of xs_hitup */
+ struct TupleDescData *xs_hitupdesc; /* rowtype descriptor of xs_hitup */
/* xs_ctup/xs_cbuf/xs_recheck are valid after a successful index_getnext */
HeapTupleData xs_ctup; /* current heap tuple, if any */
@@ -137,7 +138,7 @@ typedef struct IndexScanDescData
bool xs_continue_hot; /* T if must keep walking HOT chain */
/* parallel index scan information, in shared memory */
- ParallelIndexScanDesc parallel_scan;
+ struct ParallelIndexScanDescData *parallel_scan;
} IndexScanDescData;
/* Generic structure for parallel scans */
@@ -155,8 +156,8 @@ typedef struct SysScanDescData
Relation heap_rel; /* catalog being scanned */
Relation irel; /* NULL if doing heap scan */
struct HeapScanDescData *scan; /* only valid in heap-scan case */
- IndexScanDesc iscan; /* only valid in index-scan case */
- Snapshot snapshot; /* snapshot to unregister at end of scan */
+ struct IndexScanDescData *iscan; /* only valid in index-scan case */
+ struct SnapshotData *snapshot; /* snapshot to unregister at end of scan */
} SysScanDescData;
#endif /* RELSCAN_H */
diff --git a/src/include/executor/nodeIndexscan.h b/src/include/executor/nodeIndexscan.h
index 028cdb61d1c..9f660499f32 100644
--- a/src/include/executor/nodeIndexscan.h
+++ b/src/include/executor/nodeIndexscan.h
@@ -14,6 +14,7 @@
#ifndef NODEINDEXSCAN_H
#define NODEINDEXSCAN_H
+#include "access/genam.h"
#include "access/parallel.h"
#include "nodes/execnodes.h"
diff --git a/src/include/nodes/execnodes.h b/src/include/nodes/execnodes.h
index 57031654900..7cae0851774 100644
--- a/src/include/nodes/execnodes.h
+++ b/src/include/nodes/execnodes.h
@@ -14,7 +14,6 @@
#ifndef EXECNODES_H
#define EXECNODES_H
-#include "access/genam.h"
#include "access/tupconvert.h"
#include "executor/instrument.h"
#include "lib/pairingheap.h"
@@ -24,6 +23,7 @@
#include "utils/queryenvironment.h"
#include "utils/reltrigger.h"
#include "utils/sharedtuplestore.h"
+#include "utils/snapshot.h"
#include "utils/sortsupport.h"
#include "utils/tuplestore.h"
#include "utils/tuplesort.h"
@@ -1306,14 +1306,14 @@ typedef struct SampleScanState
*/
typedef struct
{
- ScanKey scan_key; /* scankey to put value into */
+ struct ScanKeyData *scan_key; /* scankey to put value into */
ExprState *key_expr; /* expr to evaluate to get value */
bool key_toastable; /* is expr's result a toastable datatype? */
} IndexRuntimeKeyInfo;
typedef struct
{
- ScanKey scan_key; /* scankey to put value into */
+ struct ScanKeyData *scan_key; /* scankey to put value into */
ExprState *array_expr; /* expr to evaluate to get array value */
int next_elem; /* next array element to use */
int num_elems; /* number of elems in current array value */
@@ -1352,16 +1352,16 @@ typedef struct IndexScanState
ScanState ss; /* its first field is NodeTag */
ExprState *indexqualorig;
List *indexorderbyorig;
- ScanKey iss_ScanKeys;
+ struct ScanKeyData *iss_ScanKeys;
int iss_NumScanKeys;
- ScanKey iss_OrderByKeys;
+ struct ScanKeyData *iss_OrderByKeys;
int iss_NumOrderByKeys;
IndexRuntimeKeyInfo *iss_RuntimeKeys;
int iss_NumRuntimeKeys;
bool iss_RuntimeKeysReady;
ExprContext *iss_RuntimeContext;
Relation iss_RelationDesc;
- IndexScanDesc iss_ScanDesc;
+ struct IndexScanDescData *iss_ScanDesc;
/* These are needed for re-checking ORDER BY expr ordering */
pairingheap *iss_ReorderQueue;
@@ -1397,16 +1397,16 @@ typedef struct IndexOnlyScanState
{
ScanState ss; /* its first field is NodeTag */
ExprState *indexqual;
- ScanKey ioss_ScanKeys;
+ struct ScanKeyData *ioss_ScanKeys;
int ioss_NumScanKeys;
- ScanKey ioss_OrderByKeys;
+ struct ScanKeyData *ioss_OrderByKeys;
int ioss_NumOrderByKeys;
IndexRuntimeKeyInfo *ioss_RuntimeKeys;
int ioss_NumRuntimeKeys;
bool ioss_RuntimeKeysReady;
ExprContext *ioss_RuntimeContext;
Relation ioss_RelationDesc;
- IndexScanDesc ioss_ScanDesc;
+ struct IndexScanDescData *ioss_ScanDesc;
Buffer ioss_VMBuffer;
Size ioss_PscanLen;
} IndexOnlyScanState;
@@ -1431,7 +1431,7 @@ typedef struct BitmapIndexScanState
{
ScanState ss; /* its first field is NodeTag */
TIDBitmap *biss_result;
- ScanKey biss_ScanKeys;
+ struct ScanKeyData *biss_ScanKeys;
int biss_NumScanKeys;
IndexRuntimeKeyInfo *biss_RuntimeKeys;
int biss_NumRuntimeKeys;
@@ -1440,7 +1440,7 @@ typedef struct BitmapIndexScanState
bool biss_RuntimeKeysReady;
ExprContext *biss_RuntimeContext;
Relation biss_RelationDesc;
- IndexScanDesc biss_ScanDesc;
+ struct IndexScanDescData *biss_ScanDesc;
} BitmapIndexScanState;
/* ----------------