summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Eisentraut2025-02-02 07:11:57 +0000
committerPeter Eisentraut2025-02-02 07:11:57 +0000
commit119fc30dd5bd918819b864107ddc8baac51f4d22 (patch)
tree792942fed830f1045641e8eb7c439efe1c732812
parentd61b9662b09ea55d175680cc31b24768d95972f6 (diff)
Move CompareType to separate header file
We'll want to make use of it in more places, and we'd prefer to not have to include all of primnodes.h everywhere. Author: Mark Dilger <[email protected]> Reviewed-by: Peter Eisentraut <[email protected]> Discussion: https://www.postgresql.org/message-id/flat/[email protected]
-rw-r--r--contrib/btree_gist/btree_gist.c2
-rw-r--r--src/backend/nodes/Makefile1
-rw-r--r--src/backend/nodes/gen_node_support.pl1
-rw-r--r--src/include/access/cmptype.h43
-rw-r--r--src/include/nodes/meson.build1
-rw-r--r--src/include/nodes/primnodes.h28
6 files changed, 48 insertions, 28 deletions
diff --git a/contrib/btree_gist/btree_gist.c b/contrib/btree_gist/btree_gist.c
index fc6c7091795..7fcb0cd6d03 100644
--- a/contrib/btree_gist/btree_gist.c
+++ b/contrib/btree_gist/btree_gist.c
@@ -3,8 +3,8 @@
*/
#include "postgres.h"
+#include "access/cmptype.h"
#include "access/stratnum.h"
-#include "nodes/primnodes.h"
#include "utils/builtins.h"
PG_MODULE_MAGIC;
diff --git a/src/backend/nodes/Makefile b/src/backend/nodes/Makefile
index 66bbad8e6e0..77ddb9ca53f 100644
--- a/src/backend/nodes/Makefile
+++ b/src/backend/nodes/Makefile
@@ -46,6 +46,7 @@ node_headers = \
nodes/plannodes.h \
nodes/execnodes.h \
access/amapi.h \
+ access/cmptype.h \
access/sdir.h \
access/tableam.h \
access/tsmapi.h \
diff --git a/src/backend/nodes/gen_node_support.pl b/src/backend/nodes/gen_node_support.pl
index 7c012c27f88..1a657f7e0ae 100644
--- a/src/backend/nodes/gen_node_support.pl
+++ b/src/backend/nodes/gen_node_support.pl
@@ -58,6 +58,7 @@ my @all_input_files = qw(
nodes/plannodes.h
nodes/execnodes.h
access/amapi.h
+ access/cmptype.h
access/sdir.h
access/tableam.h
access/tsmapi.h
diff --git a/src/include/access/cmptype.h b/src/include/access/cmptype.h
new file mode 100644
index 00000000000..2b964227d60
--- /dev/null
+++ b/src/include/access/cmptype.h
@@ -0,0 +1,43 @@
+/*-------------------------------------------------------------------------
+ *
+ * cmptype.h
+ * POSTGRES compare type definitions.
+ *
+ * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1994, Regents of the University of California
+ *
+ * src/include/access/cmptype.h
+ *
+ *-------------------------------------------------------------------------
+ */
+#ifndef CMPTYPE_H
+#define CMPTYPE_H
+
+/*
+ * CompareType - fundamental semantics of certain operators
+ *
+ * These enum symbols represent the fundamental semantics of certain operators
+ * that the system needs to have some hardcoded knowledge about. (For
+ * example, RowCompareExpr needs to know which operators can be determined to
+ * act like =, <>, <, etc.) Index access methods map (some of) strategy
+ * numbers to these values so that the system can know about the meaning of
+ * (some of) the operators without needing hardcoded knowledge of index AM's
+ * strategy numbering.
+ *
+ * XXX Currently, this mapping is not fully developed and most values are
+ * chosen to match btree strategy numbers, which is not going to work very
+ * well for other access methods.
+ */
+typedef enum CompareType
+{
+ COMPARE_LT = 1, /* BTLessStrategyNumber */
+ COMPARE_LE = 2, /* BTLessEqualStrategyNumber */
+ COMPARE_EQ = 3, /* BTEqualStrategyNumber */
+ COMPARE_GE = 4, /* BTGreaterEqualStrategyNumber */
+ COMPARE_GT = 5, /* BTGreaterStrategyNumber */
+ COMPARE_NE = 6, /* no such btree strategy */
+ COMPARE_OVERLAP,
+ COMPARE_CONTAINED_BY,
+} CompareType;
+
+#endif /* CMPTYPE_H */
diff --git a/src/include/nodes/meson.build b/src/include/nodes/meson.build
index f3dd5461fef..d1ca24dd32f 100644
--- a/src/include/nodes/meson.build
+++ b/src/include/nodes/meson.build
@@ -8,6 +8,7 @@ node_support_input_i = [
'nodes/plannodes.h',
'nodes/execnodes.h',
'access/amapi.h',
+ 'access/cmptype.h',
'access/sdir.h',
'access/tableam.h',
'access/tsmapi.h',
diff --git a/src/include/nodes/primnodes.h b/src/include/nodes/primnodes.h
index 59e7bb26bbd..839e71d52f4 100644
--- a/src/include/nodes/primnodes.h
+++ b/src/include/nodes/primnodes.h
@@ -18,6 +18,7 @@
#define PRIMNODES_H
#include "access/attnum.h"
+#include "access/cmptype.h"
#include "nodes/bitmapset.h"
#include "nodes/pg_list.h"
@@ -1452,33 +1453,6 @@ typedef struct RowExpr
} RowExpr;
/*
- * CompareType - fundamental semantics of certain operators
- *
- * These enum symbols represent the fundamental semantics of certain operators
- * that the system needs to have some hardcoded knowledge about. (For
- * example, RowCompareExpr needs to know which operators can be determined to
- * act like =, <>, <, etc.) Index access methods map (some of) strategy
- * numbers to these values so that the system can know about the meaning of
- * (some of) the operators without needing hardcoded knowledge of index AM's
- * strategy numbering.
- *
- * XXX Currently, this mapping is not fully developed and most values are
- * chosen to match btree strategy numbers, which is not going to work very
- * well for other access methods.
- */
-typedef enum CompareType
-{
- COMPARE_LT = 1, /* BTLessStrategyNumber */
- COMPARE_LE = 2, /* BTLessEqualStrategyNumber */
- COMPARE_EQ = 3, /* BTEqualStrategyNumber */
- COMPARE_GE = 4, /* BTGreaterEqualStrategyNumber */
- COMPARE_GT = 5, /* BTGreaterStrategyNumber */
- COMPARE_NE = 6, /* no such btree strategy */
- COMPARE_OVERLAP,
- COMPARE_CONTAINED_BY,
-} CompareType;
-
-/*
* RowCompareExpr - row-wise comparison, such as (a, b) <= (1, 2)
*
* We support row comparison for any operator that can be determined to