summaryrefslogtreecommitdiff
path: root/src/include/nodes/pathnodes.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/nodes/pathnodes.h')
-rw-r--r--src/include/nodes/pathnodes.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/include/nodes/pathnodes.h b/src/include/nodes/pathnodes.h
index e4b554f811..d2d3643bea 100644
--- a/src/include/nodes/pathnodes.h
+++ b/src/include/nodes/pathnodes.h
@@ -1055,6 +1055,17 @@ typedef struct PathKey
bool pk_nulls_first; /* do NULLs come before normal values? */
} PathKey;
+/*
+ * VolatileFunctionStatus -- allows nodes to cache their
+ * contain_volatile_functions properties. VOLATILITY_UNKNOWN means not yet
+ * determined.
+ */
+typedef enum VolatileFunctionStatus
+{
+ VOLATILITY_UNKNOWN = 0,
+ VOLATILITY_VOLATILE,
+ VOLATILITY_NOVOLATILE
+} VolatileFunctionStatus;
/*
* PathTarget
@@ -1086,6 +1097,8 @@ typedef struct PathTarget
Index *sortgrouprefs; /* corresponding sort/group refnos, or 0 */
QualCost cost; /* cost of evaluating the expressions */
int width; /* estimated avg width of result tuples */
+ VolatileFunctionStatus has_volatile_expr; /* indicates if exprs contain
+ * any volatile functions. */
} PathTarget;
/* Convenience macro to get a sort/group refno from a PathTarget */
@@ -2016,6 +2029,9 @@ typedef struct RestrictInfo
bool leakproof; /* true if known to contain no leaked Vars */
+ VolatileFunctionStatus has_volatile; /* to indicate if clause contains
+ * any volatile functions. */
+
Index security_level; /* see comment above */
/* The set of relids (varnos) actually referenced in the clause: */