0001-Move-instrumentation-related-structures-into-instrum.patch
text/x-patch
Filename: 0001-Move-instrumentation-related-structures-into-instrum.patch
Type: text/x-patch
Part: 3
Message:
[PATCH} Move instrumentation structs
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: format-patch
Series: patch 0001
Subject: Move instrumentation related structures into instrument_node.h
| File | + | − |
|---|---|---|
| contrib/bloom/blscan.c | 1 | 0 |
| src/backend/access/gin/gininsert.c | 1 | 1 |
| src/backend/access/gin/ginscan.c | 1 | 0 |
| src/backend/access/gist/gistget.c | 1 | 0 |
| src/backend/access/hash/hashsearch.c | 1 | 0 |
| src/backend/access/nbtree/nbtsearch.c | 1 | 0 |
| src/backend/access/spgist/spgscan.c | 1 | 0 |
| src/backend/catalog/pg_largeobject.c | 1 | 0 |
| src/backend/executor/execReplication.c | 1 | 0 |
| src/backend/parser/parse_expr.c | 1 | 0 |
| src/backend/replication/logical/relation.c | 1 | 0 |
| src/backend/statistics/attribute_stats.c | 1 | 0 |
| src/include/access/genam.h | 1 | 22 |
| src/include/executor/instrument_node.h | 197 | 0 |
| src/include/nodes/execnodes.h | 0 | 140 |
| src/include/utils/tuplesort.h | 1 | 21 |
From 46f8c3845669bb43388c7511bbaff9eb6fe937a1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Herrera?= <alvherre@kurilemu.de>
Date: Sun, 5 Oct 2025 18:54:56 +0200
Subject: [PATCH 1/4] Move instrumentation related structures into
instrument_node.h
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
We have structs and enums that are related to instrumentation and they
were mixed in different parts of the code. This commit defines
them in a separate header to centralise all of them.
Co-authored-by: Álvaro Herrera <alvherre@kurilemu.de>
Co-authored-by: Mario Gonzalez <gonzalemario@gmail.com>
Discussion: https://www.postgresql.org/message-id/202510051642.wwmn4mj77wch%40alvherre.pgsql
---
contrib/bloom/blscan.c | 1 +
src/backend/access/gin/gininsert.c | 2 +-
src/backend/access/gin/ginscan.c | 1 +
src/backend/access/gist/gistget.c | 1 +
src/backend/access/hash/hashsearch.c | 1 +
src/backend/access/nbtree/nbtsearch.c | 1 +
src/backend/access/spgist/spgscan.c | 1 +
src/backend/catalog/pg_largeobject.c | 1 +
src/backend/executor/execReplication.c | 1 +
src/backend/parser/parse_expr.c | 1 +
src/backend/replication/logical/relation.c | 1 +
src/backend/statistics/attribute_stats.c | 1 +
src/include/access/genam.h | 23 +--
src/include/executor/instrument_node.h | 197 +++++++++++++++++++++
src/include/nodes/execnodes.h | 140 ---------------
src/include/utils/tuplesort.h | 22 +--
16 files changed, 211 insertions(+), 184 deletions(-)
create mode 100644 src/include/executor/instrument_node.h
diff --git a/contrib/bloom/blscan.c b/contrib/bloom/blscan.c
index d072f47fe28..5f8378d1f44 100644
--- a/contrib/bloom/blscan.c
+++ b/contrib/bloom/blscan.c
@@ -14,6 +14,7 @@
#include "access/relscan.h"
#include "bloom.h"
+#include "executor/instrument_node.h"
#include "miscadmin.h"
#include "pgstat.h"
#include "storage/bufmgr.h"
diff --git a/src/backend/access/gin/gininsert.c b/src/backend/access/gin/gininsert.c
index c2b879b2bf6..b92204e2862 100644
--- a/src/backend/access/gin/gininsert.c
+++ b/src/backend/access/gin/gininsert.c
@@ -29,10 +29,10 @@
#include "storage/bufmgr.h"
#include "storage/predicate.h"
#include "tcop/tcopprot.h"
+#include "utils/builtins.h"
#include "utils/datum.h"
#include "utils/memutils.h"
#include "utils/rel.h"
-#include "utils/builtins.h"
/* Magic numbers for parallel state sharing */
diff --git a/src/backend/access/gin/ginscan.c b/src/backend/access/gin/ginscan.c
index 26081693383..1c9a8cb4df8 100644
--- a/src/backend/access/gin/ginscan.c
+++ b/src/backend/access/gin/ginscan.c
@@ -16,6 +16,7 @@
#include "access/gin_private.h"
#include "access/relscan.h"
+#include "executor/instrument_node.h"
#include "pgstat.h"
#include "utils/memutils.h"
#include "utils/rel.h"
diff --git a/src/backend/access/gist/gistget.c b/src/backend/access/gist/gistget.c
index 9ba45acfff3..771768d31d6 100644
--- a/src/backend/access/gist/gistget.c
+++ b/src/backend/access/gist/gistget.c
@@ -17,6 +17,7 @@
#include "access/genam.h"
#include "access/gist_private.h"
#include "access/relscan.h"
+#include "executor/instrument_node.h"
#include "lib/pairingheap.h"
#include "miscadmin.h"
#include "pgstat.h"
diff --git a/src/backend/access/hash/hashsearch.c b/src/backend/access/hash/hashsearch.c
index 92c15a65be2..00395b01f60 100644
--- a/src/backend/access/hash/hashsearch.c
+++ b/src/backend/access/hash/hashsearch.c
@@ -17,6 +17,7 @@
#include "access/hash.h"
#include "access/relscan.h"
#include "miscadmin.h"
+#include "executor/instrument_node.h"
#include "pgstat.h"
#include "storage/predicate.h"
#include "utils/rel.h"
diff --git a/src/backend/access/nbtree/nbtsearch.c b/src/backend/access/nbtree/nbtsearch.c
index 0605356ec9f..7211e5e291b 100644
--- a/src/backend/access/nbtree/nbtsearch.c
+++ b/src/backend/access/nbtree/nbtsearch.c
@@ -18,6 +18,7 @@
#include "access/nbtree.h"
#include "access/relscan.h"
#include "access/xact.h"
+#include "executor/instrument_node.h"
#include "miscadmin.h"
#include "pgstat.h"
#include "storage/predicate.h"
diff --git a/src/backend/access/spgist/spgscan.c b/src/backend/access/spgist/spgscan.c
index 25893050c58..abfb3555af5 100644
--- a/src/backend/access/spgist/spgscan.c
+++ b/src/backend/access/spgist/spgscan.c
@@ -18,6 +18,7 @@
#include "access/genam.h"
#include "access/relscan.h"
#include "access/spgist_private.h"
+#include "executor/instrument_node.h"
#include "miscadmin.h"
#include "pgstat.h"
#include "storage/bufmgr.h"
diff --git a/src/backend/catalog/pg_largeobject.c b/src/backend/catalog/pg_largeobject.c
index 33e8fa96a65..ada4c3685e0 100644
--- a/src/backend/catalog/pg_largeobject.c
+++ b/src/backend/catalog/pg_largeobject.c
@@ -14,6 +14,7 @@
*/
#include "postgres.h"
+#include "access/genam.h"
#include "access/htup_details.h"
#include "access/table.h"
#include "catalog/catalog.h"
diff --git a/src/backend/executor/execReplication.c b/src/backend/executor/execReplication.c
index def32774c90..3ca2ff8e466 100644
--- a/src/backend/executor/execReplication.c
+++ b/src/backend/executor/execReplication.c
@@ -14,6 +14,7 @@
#include "postgres.h"
+#include "access/amapi.h"
#include "access/commit_ts.h"
#include "access/genam.h"
#include "access/gist.h"
diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c
index 32d6ae918ca..3bdfcc20ebe 100644
--- a/src/backend/parser/parse_expr.c
+++ b/src/backend/parser/parse_expr.c
@@ -38,6 +38,7 @@
#include "utils/fmgroids.h"
#include "utils/lsyscache.h"
#include "utils/timestamp.h"
+#include "utils/typcache.h"
#include "utils/xml.h"
/* GUC parameters */
diff --git a/src/backend/replication/logical/relation.c b/src/backend/replication/logical/relation.c
index 745fd3bab64..90294df91c0 100644
--- a/src/backend/replication/logical/relation.c
+++ b/src/backend/replication/logical/relation.c
@@ -29,6 +29,7 @@
#include "utils/inval.h"
#include "utils/lsyscache.h"
#include "utils/syscache.h"
+#include "utils/typcache.h"
static MemoryContext LogicalRepRelMapContext = NULL;
diff --git a/src/backend/statistics/attribute_stats.c b/src/backend/statistics/attribute_stats.c
index ef4d768feab..9ccc04da3ef 100644
--- a/src/backend/statistics/attribute_stats.c
+++ b/src/backend/statistics/attribute_stats.c
@@ -31,6 +31,7 @@
#include "utils/fmgroids.h"
#include "utils/lsyscache.h"
#include "utils/syscache.h"
+#include "utils/typcache.h"
#define DEFAULT_NULL_FRAC Float4GetDatum(0.0)
#define DEFAULT_AVG_WIDTH Int32GetDatum(0) /* unknown */
diff --git a/src/include/access/genam.h b/src/include/access/genam.h
index 9200a22bd9f..87d744eff07 100644
--- a/src/include/access/genam.h
+++ b/src/include/access/genam.h
@@ -17,6 +17,7 @@
#include "access/htup.h"
#include "access/sdir.h"
#include "access/skey.h"
+#include "executor/instrument_node.h"
#include "nodes/tidbitmap.h"
#include "storage/buf.h"
#include "storage/lockdefs.h"
@@ -29,28 +30,6 @@ typedef struct TupleTableSlot TupleTableSlot;
/* or relcache.h */
typedef struct RelationData *Relation;
-
-/*
- * Struct for statistics maintained by amgettuple and amgetbitmap
- *
- * Note: IndexScanInstrumentation can't contain any pointers, since it is
- * copied into a SharedIndexScanInstrumentation during parallel scans
- */
-typedef struct IndexScanInstrumentation
-{
- /* Index search count (incremented with pgstat_count_index_scan call) */
- uint64 nsearches;
-} IndexScanInstrumentation;
-
-/*
- * Struct for every worker's IndexScanInstrumentation, stored in shared memory
- */
-typedef struct SharedIndexScanInstrumentation
-{
- int num_workers;
- IndexScanInstrumentation winstrument[FLEXIBLE_ARRAY_MEMBER];
-} SharedIndexScanInstrumentation;
-
/*
* Struct for statistics returned by ambuild
*/
diff --git a/src/include/executor/instrument_node.h b/src/include/executor/instrument_node.h
new file mode 100644
index 00000000000..fe4e1f8e5a8
--- /dev/null
+++ b/src/include/executor/instrument_node.h
@@ -0,0 +1,197 @@
+/*-------------------------------------------------------------------------
+ *
+ * instrument_node.h
+ * Definitions for node-specific instrumentation
+ *
+ *
+ * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1994, Regents of the University of California
+ *
+ * src/include/executor/instrument_node.h
+ *
+ *-------------------------------------------------------------------------
+ */
+#ifndef INSTRUMENT_NODE_H
+#define INSTRUMENT_NODE_H
+
+
+
+/* ---------------------
+ * per-worker aggregate information
+ * ---------------------
+ */
+typedef struct AggregateInstrumentation
+{
+ Size hash_mem_peak; /* peak hash table memory usage */
+ uint64 hash_disk_used; /*kB of disk space used */
+ int hash_batches_used; /* batches used during entire execution */
+} AggregateInstrumentation;
+
+/* ----------------
+ * Shared memory container for per-worker aggregate information
+ * ----------------
+ */
+typedef struct SharedAgginfo
+{
+ int num_workers;
+ AggregateInstrumentation sinstrument[FLEXIBLE_ARRAY_MEMBER];
+} SharedAggInfo;
+/*
+ * Struct for statistics maintained by amgettuple and amgetbitmap
+ *
+ * Note: IndexScanInstrumentation can't contain any pointers, since it is
+ * copied into a SharedIndexScanInstrumentation during parallel scans
+ */
+typedef struct IndexScanInstrumentation
+{
+ /* Index search count (incremented with pgstat_count_index_scan call) */
+ uint64 nsearches;
+} IndexScanInstrumentation;
+
+/*
+ * Struct for every worker's IndexScanInstrumentation, stored in shared memory
+ */
+typedef struct SharedIndexScanInstrumentation
+{
+ int num_workers;
+ IndexScanInstrumentation winstrument[FLEXIBLE_ARRAY_MEMBER];
+} SharedIndexScanInstrumentation;
+
+/*
+ * BitmapHeapScanInstrumentation information
+ *
+ * exact_pages total number of exact pages retrieved
+ * lossy_pages total number of lossy pages retrieved
+ */
+typedef struct BitmapHeapScanInstrumentation
+{
+ uint64 exact_pages;
+ uint64 lossy_pages;
+} BitmapHeapScanInstrumentation;
+
+/*
+ * Instrumentation data for a parallel bitmap heap scan.
+ *
+ * A shared memory struct that each parallel worker copies its
+ * BitmapHeapScanInstrumentation information into at executor shutdown to
+ * allow the leader to display the information in EXPLAIN ANALYZE.
+ */
+typedef struct SharedBitmapHeapInstrumentation
+{
+ int num_workers;
+ BitmapHeapScanInstrumentation sinstrument[FLEXIBLE_ARRAY_MEMBER];
+} SharedBitmapHeapInstrumentation;
+
+
+typedef struct MemoizeInstrumentation
+{
+ uint64 cache_hits; /* number of rescans where we've found the
+ * scan parameters values to be cached */
+ uint64 cache_misses; /* number of rescans where we've not found the
+ * scan parameters values to be cached */
+ uint64 cache_evictions; /* number of cache entries removed due to
+ * the need to free memory */
+ uint64 cache_overflows; /* number of times we've had to bypass the
+ * cache when filling it due to not being
+ * able to free enough space to store the
+ * current scan's tuples */
+ uint64 mem_peak; /* peak memory usage in bytes */
+
+} MemoizeInstrumentation;
+
+/* ----------------
+ * Shared memory container for per-worker memoize information
+ * ----------------
+ */
+typedef struct SharedMemoizeInfo
+{
+ int num_workers;
+ MemoizeInstrumentation sinstrument[FLEXIBLE_ARRAY_MEMBER];
+} SharedMemoizeInfo;
+
+typedef enum
+{
+ SORT_SPACE_TYPE_DISK,
+ SORT_SPACE_TYPE_MEMORY,
+} TuplesortSpaceType;
+
+typedef enum
+{
+ SORT_TYPE_STILL_IN_PROGRESS = 0,
+ SORT_TYPE_TOP_N_HEAPSORT = 1 << 0,
+ SORT_TYPE_QUICKSORT = 1 << 1,
+ SORT_TYPE_EXTERNAL_SORT = 1 << 2,
+ SORT_TYPE_EXTERNAL_MERGE = 1 << 3
+} TuplesortMethod;
+
+typedef struct TuplesortInstrumentation
+{
+ TuplesortMethod sortMethod; /* sort algorithm used */
+ TuplesortSpaceType spaceType; /* type of space spaceUsed represents */
+ int64 spaceUsed; /* space consumption, in kB */
+} TuplesortInstrumentation;
+
+/* ----------------
+ * Shared memory container for per-worker sort information
+ * ----------------
+ */
+typedef struct SharedSortInfo
+{
+ int num_workers;
+ TuplesortInstrumentation sinstrument[FLEXIBLE_ARRAY_MEMBER];
+} SharedSortInfo;
+
+/* ----------------
+ * Values displayed by EXPLAIN ANALYZE
+ * ----------------
+ */
+typedef struct HashInstrumentation
+{
+ int nbuckets; /* number of buckets at end of execution */
+ int nbuckets_original; /* planned number of buckets */
+ int nbatch; /* number of batches at end of execution */
+ int nbatch_original; /* planned number of batches */
+ Size space_peak; /* peak memory usage in bytes */
+} HashInstrumentation;
+
+/* ----------------
+ * Shared memory container for per-worker hash information
+ * ----------------
+ */
+typedef struct SharedHashInfo
+{
+ int num_workers;
+ HashInstrumentation hinstrument[FLEXIBLE_ARRAY_MEMBER];
+} SharedHashInfo;
+
+/* ----------------
+ * Instrumentation information for IncrementalSort
+ * ----------------
+ */
+typedef struct IncrementalSortGroupInfo
+{
+ int64 groupCount;
+ int64 maxDiskSpaceUsed;
+ int64 totalDiskSpaceUsed;
+ int64 maxMemorySpaceUsed;
+ int64 totalMemorySpaceUsed;
+ bits32 sortMethods; /* bitmask of TuplesortMethod */
+} IncrementalSortGroupInfo;
+
+typedef struct IncrementalSortInfo
+{
+ IncrementalSortGroupInfo fullsortGroupInfo;
+ IncrementalSortGroupInfo prefixsortGroupInfo;
+} IncrementalSortInfo;
+
+/* ----------------
+ * Shared memory container for per-worker incremental sort information
+ * ----------------
+ */
+typedef struct SharedIncrementalSortInfo
+{
+ int num_workers;
+ IncrementalSortInfo sinfo[FLEXIBLE_ARRAY_MEMBER];
+} SharedIncrementalSortInfo;
+
+#endif /* INSTRUMENT_NODE_H */
diff --git a/src/include/nodes/execnodes.h b/src/include/nodes/execnodes.h
index 18ae8f0d4bb..79da9305408 100644
--- a/src/include/nodes/execnodes.h
+++ b/src/include/nodes/execnodes.h
@@ -1816,19 +1816,6 @@ typedef struct BitmapIndexScanState
SharedIndexScanInstrumentation *biss_SharedInfo;
} BitmapIndexScanState;
-/* ----------------
- * BitmapHeapScanInstrumentation information
- *
- * exact_pages total number of exact pages retrieved
- * lossy_pages total number of lossy pages retrieved
- * ----------------
- */
-typedef struct BitmapHeapScanInstrumentation
-{
- uint64 exact_pages;
- uint64 lossy_pages;
-} BitmapHeapScanInstrumentation;
-
/* ----------------
* SharedBitmapState information
*
@@ -1865,20 +1852,6 @@ typedef struct ParallelBitmapHeapState
ConditionVariable cv;
} ParallelBitmapHeapState;
-/* ----------------
- * Instrumentation data for a parallel bitmap heap scan.
- *
- * A shared memory struct that each parallel worker copies its
- * BitmapHeapScanInstrumentation information into at executor shutdown to
- * allow the leader to display the information in EXPLAIN ANALYZE.
- * ----------------
- */
-typedef struct SharedBitmapHeapInstrumentation
-{
- int num_workers;
- BitmapHeapScanInstrumentation sinstrument[FLEXIBLE_ARRAY_MEMBER];
-} SharedBitmapHeapInstrumentation;
-
/* ----------------
* BitmapHeapScanState information
*
@@ -2303,31 +2276,6 @@ struct MemoizeEntry;
struct MemoizeTuple;
struct MemoizeKey;
-typedef struct MemoizeInstrumentation
-{
- uint64 cache_hits; /* number of rescans where we've found the
- * scan parameter values to be cached */
- uint64 cache_misses; /* number of rescans where we've not found the
- * scan parameter values to be cached. */
- uint64 cache_evictions; /* number of cache entries removed due to
- * the need to free memory */
- uint64 cache_overflows; /* number of times we've had to bypass the
- * cache when filling it due to not being
- * able to free enough space to store the
- * current scan's tuples. */
- uint64 mem_peak; /* peak memory usage in bytes */
-} MemoizeInstrumentation;
-
-/* ----------------
- * Shared memory container for per-worker memoize information
- * ----------------
- */
-typedef struct SharedMemoizeInfo
-{
- int num_workers;
- MemoizeInstrumentation sinstrument[FLEXIBLE_ARRAY_MEMBER];
-} SharedMemoizeInfo;
-
/* ----------------
* MemoizeState information
*
@@ -2383,16 +2331,6 @@ typedef struct PresortedKeyData
OffsetNumber attno; /* attribute number in tuple */
} PresortedKeyData;
-/* ----------------
- * Shared memory container for per-worker sort information
- * ----------------
- */
-typedef struct SharedSortInfo
-{
- int num_workers;
- TuplesortInstrumentation sinstrument[FLEXIBLE_ARRAY_MEMBER];
-} SharedSortInfo;
-
/* ----------------
* SortState information
* ----------------
@@ -2412,40 +2350,6 @@ typedef struct SortState
SharedSortInfo *shared_info; /* one entry per worker */
} SortState;
-/* ----------------
- * Instrumentation information for IncrementalSort
- * ----------------
- */
-typedef struct IncrementalSortGroupInfo
-{
- int64 groupCount;
- int64 maxDiskSpaceUsed;
- int64 totalDiskSpaceUsed;
- int64 maxMemorySpaceUsed;
- int64 totalMemorySpaceUsed;
- bits32 sortMethods; /* bitmask of TuplesortMethod */
-} IncrementalSortGroupInfo;
-
-typedef struct IncrementalSortInfo
-{
- IncrementalSortGroupInfo fullsortGroupInfo;
- IncrementalSortGroupInfo prefixsortGroupInfo;
-} IncrementalSortInfo;
-
-/* ----------------
- * Shared memory container for per-worker incremental sort information
- * ----------------
- */
-typedef struct SharedIncrementalSortInfo
-{
- int num_workers;
- IncrementalSortInfo sinfo[FLEXIBLE_ARRAY_MEMBER];
-} SharedIncrementalSortInfo;
-
-/* ----------------
- * IncrementalSortState information
- * ----------------
- */
typedef enum
{
INCSORT_LOADFULLSORT,
@@ -2488,27 +2392,6 @@ typedef struct GroupState
bool grp_done; /* indicates completion of Group scan */
} GroupState;
-/* ---------------------
- * per-worker aggregate information
- * ---------------------
- */
-typedef struct AggregateInstrumentation
-{
- Size hash_mem_peak; /* peak hash table memory usage */
- uint64 hash_disk_used; /* kB of disk space used */
- int hash_batches_used; /* batches used during entire execution */
-} AggregateInstrumentation;
-
-/* ----------------
- * Shared memory container for per-worker aggregate information
- * ----------------
- */
-typedef struct SharedAggInfo
-{
- int num_workers;
- AggregateInstrumentation sinstrument[FLEXIBLE_ARRAY_MEMBER];
-} SharedAggInfo;
-
/* ---------------------
* AggState information
*
@@ -2785,29 +2668,6 @@ typedef struct GatherMergeState
struct binaryheap *gm_heap; /* binary heap of slot indices */
} GatherMergeState;
-/* ----------------
- * Values displayed by EXPLAIN ANALYZE
- * ----------------
- */
-typedef struct HashInstrumentation
-{
- int nbuckets; /* number of buckets at end of execution */
- int nbuckets_original; /* planned number of buckets */
- int nbatch; /* number of batches at end of execution */
- int nbatch_original; /* planned number of batches */
- Size space_peak; /* peak memory usage in bytes */
-} HashInstrumentation;
-
-/* ----------------
- * Shared memory container for per-worker hash information
- * ----------------
- */
-typedef struct SharedHashInfo
-{
- int num_workers;
- HashInstrumentation hinstrument[FLEXIBLE_ARRAY_MEMBER];
-} SharedHashInfo;
-
/* ----------------
* HashState information
* ----------------
diff --git a/src/include/utils/tuplesort.h b/src/include/utils/tuplesort.h
index 0bf55902aa1..06c5c1de4e4 100644
--- a/src/include/utils/tuplesort.h
+++ b/src/include/utils/tuplesort.h
@@ -24,6 +24,7 @@
#include "access/brin_tuple.h"
#include "access/gin_tuple.h"
#include "access/itup.h"
+#include "executor/instrument_node.h"
#include "executor/tuptable.h"
#include "storage/dsm.h"
#include "utils/logtape.h"
@@ -73,23 +74,9 @@ typedef struct SortCoordinateData *SortCoordinate;
* different methods, so we need a separate bit for each one. Keep the
* NUM_TUPLESORTMETHODS constant in sync with the number of bits!
*/
-typedef enum
-{
- SORT_TYPE_STILL_IN_PROGRESS = 0,
- SORT_TYPE_TOP_N_HEAPSORT = 1 << 0,
- SORT_TYPE_QUICKSORT = 1 << 1,
- SORT_TYPE_EXTERNAL_SORT = 1 << 2,
- SORT_TYPE_EXTERNAL_MERGE = 1 << 3,
-} TuplesortMethod;
#define NUM_TUPLESORTMETHODS 4
-typedef enum
-{
- SORT_SPACE_TYPE_DISK,
- SORT_SPACE_TYPE_MEMORY,
-} TuplesortSpaceType;
-
/* Bitwise option flags for tuple sorts */
#define TUPLESORT_NONE 0
@@ -108,13 +95,6 @@ typedef enum
*/
#define TupleSortUseBumpTupleCxt(opt) (((opt) & TUPLESORT_ALLOWBOUNDED) == 0)
-typedef struct TuplesortInstrumentation
-{
- TuplesortMethod sortMethod; /* sort algorithm used */
- TuplesortSpaceType spaceType; /* type of space spaceUsed represents */
- int64 spaceUsed; /* space consumption, in kB */
-} TuplesortInstrumentation;
-
/*
* The objects we actually sort are SortTuple structs. These contain
* a pointer to the tuple proper (might be a MinimalTuple or IndexTuple),
--
2.39.5