aboutsummaryrefslogtreecommitdiff
path: root/src/include/access/cmptype.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/access/cmptype.h')
-rw-r--r--src/include/access/cmptype.h43
1 files changed, 43 insertions, 0 deletions
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 */