diff options
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/nodes/primnodes.h | 6 | ||||
-rw-r--r-- | src/include/optimizer/clauses.h | 2 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/include/nodes/primnodes.h b/src/include/nodes/primnodes.h index cd4561dcf49..daabcb6cf9a 100644 --- a/src/include/nodes/primnodes.h +++ b/src/include/nodes/primnodes.h @@ -317,6 +317,12 @@ typedef enum CoercionContext /* * CoercionForm - information showing how to display a function-call node + * + * NB: equal() ignores CoercionForm fields, therefore this *must* not carry + * any semantically significant information. We need that behavior so that + * the planner will consider equivalent implicit and explicit casts to be + * equivalent. In cases where those actually behave differently, the coercion + * function's arguments will be different. */ typedef enum CoercionForm { diff --git a/src/include/optimizer/clauses.h b/src/include/optimizer/clauses.h index ac75bd4d6ea..acff7ba1b79 100644 --- a/src/include/optimizer/clauses.h +++ b/src/include/optimizer/clauses.h @@ -79,8 +79,6 @@ extern void CommuteRowCompareExpr(RowCompareExpr *clause); extern Node *strip_implicit_coercions(Node *node); -extern void set_coercionform_dontcare(Node *node); - extern Node *eval_const_expressions(PlannerInfo *root, Node *node); extern Node *estimate_expression_value(PlannerInfo *root, Node *node); |