From 9d0e312e4dfa54807ebdb2bd368400f3456d047f Mon Sep 17 00:00:00 2001
From: Andres Freund <andres@anarazel.de>
Date: Fri, 13 Mar 2026 11:07:07 -0400
Subject: [PATCH v2 11/17] don't include sortsupport.h in execnodes.h

---
 src/include/bootstrap/bootstrap.h      | 1 +
 src/include/nodes/execnodes.h          | 5 ++++-
 src/backend/executor/nodeGatherMerge.c | 1 +
 src/backend/executor/nodeIndexscan.c   | 1 +
 src/backend/executor/nodeMergeAppend.c | 1 +
 src/backend/executor/nodeMergejoin.c   | 1 +
 src/backend/executor/nodeSetOp.c       | 1 +
 7 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/include/bootstrap/bootstrap.h b/src/include/bootstrap/bootstrap.h
index e967b2b1885..c0bba03a5ee 100644
--- a/src/include/bootstrap/bootstrap.h
+++ b/src/include/bootstrap/bootstrap.h
@@ -14,6 +14,7 @@
 #ifndef BOOTSTRAP_H
 #define BOOTSTRAP_H
 
+#include "catalog/pg_attribute.h"
 #include "nodes/execnodes.h"
 #include "nodes/parsenodes.h"
 
diff --git a/src/include/nodes/execnodes.h b/src/include/nodes/execnodes.h
index fef8a3f843f..355f72ea306 100644
--- a/src/include/nodes/execnodes.h
+++ b/src/include/nodes/execnodes.h
@@ -42,7 +42,6 @@
 #include "storage/buf.h"
 #include "utils/reltrigger.h"
 #include "utils/snapshot.h"
-#include "utils/sortsupport.h"
 
 /*
  * forward references in this file
@@ -53,11 +52,15 @@ typedef struct ExprState ExprState;
 typedef struct ExprContext ExprContext;
 typedef struct HTAB HTAB;
 typedef struct QueryEnvironment QueryEnvironment;
+typedef struct RelationData *Relation;
+typedef Relation *RelationPtr;
 typedef struct ScanKeyData ScanKeyData;
+typedef struct SortSupportData *SortSupport;
 typedef struct TIDBitmap TIDBitmap;
 typedef struct Tuplesortstate Tuplesortstate;
 typedef struct Tuplestorestate Tuplestorestate;
 typedef struct TupleConversionMap TupleConversionMap;
+typedef struct TupleDescData *TupleDesc;
 typedef struct TupleTableSlot TupleTableSlot;
 typedef struct TupleTableSlotOps TupleTableSlotOps;
 
diff --git a/src/backend/executor/nodeGatherMerge.c b/src/backend/executor/nodeGatherMerge.c
index ae212194182..c2ac5e0792c 100644
--- a/src/backend/executor/nodeGatherMerge.c
+++ b/src/backend/executor/nodeGatherMerge.c
@@ -22,6 +22,7 @@
 #include "lib/binaryheap.h"
 #include "miscadmin.h"
 #include "optimizer/optimizer.h"
+#include "utils/sortsupport.h"
 
 /*
  * When we read tuples from workers, it's a good idea to read several at once
diff --git a/src/backend/executor/nodeIndexscan.c b/src/backend/executor/nodeIndexscan.c
index a616abff04c..ff1c6d50626 100644
--- a/src/backend/executor/nodeIndexscan.c
+++ b/src/backend/executor/nodeIndexscan.c
@@ -42,6 +42,7 @@
 #include "utils/datum.h"
 #include "utils/lsyscache.h"
 #include "utils/rel.h"
+#include "utils/sortsupport.h"
 
 /*
  * When an ordering operator is used, tuples fetched from the index that
diff --git a/src/backend/executor/nodeMergeAppend.c b/src/backend/executor/nodeMergeAppend.c
index 30bfeaf7c13..72eebd50bdf 100644
--- a/src/backend/executor/nodeMergeAppend.c
+++ b/src/backend/executor/nodeMergeAppend.c
@@ -43,6 +43,7 @@
 #include "executor/nodeMergeAppend.h"
 #include "lib/binaryheap.h"
 #include "miscadmin.h"
+#include "utils/sortsupport.h"
 
 /*
  * We have one slot for each item in the heap array.  We use SlotNumber
diff --git a/src/backend/executor/nodeMergejoin.c b/src/backend/executor/nodeMergejoin.c
index cbcae4c70b8..24061698282 100644
--- a/src/backend/executor/nodeMergejoin.c
+++ b/src/backend/executor/nodeMergejoin.c
@@ -97,6 +97,7 @@
 #include "executor/nodeMergejoin.h"
 #include "miscadmin.h"
 #include "utils/lsyscache.h"
+#include "utils/sortsupport.h"
 
 
 /*
diff --git a/src/backend/executor/nodeSetOp.c b/src/backend/executor/nodeSetOp.c
index 24cd713b12c..24709778384 100644
--- a/src/backend/executor/nodeSetOp.c
+++ b/src/backend/executor/nodeSetOp.c
@@ -50,6 +50,7 @@
 #include "executor/nodeSetOp.h"
 #include "miscadmin.h"
 #include "utils/memutils.h"
+#include "utils/sortsupport.h"
 
 
 /*
-- 
2.53.0.1.gb2826b52eb

