aboutsummaryrefslogtreecommitdiff
path: root/src/backend/parser/parse_expr.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2002-11-30 21:25:08 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2002-11-30 21:25:08 +0000
commit2b7ec402c41f6112087b1bf2171872d58151cd45 (patch)
tree2607cf98815943baef0a20e0b38e445ac6975cfe /src/backend/parser/parse_expr.c
parent36c356e799a0406c860988e3b8d744d89a3dc31c (diff)
downloadpostgresql-2b7ec402c41f6112087b1bf2171872d58151cd45.tar.gz
postgresql-2b7ec402c41f6112087b1bf2171872d58151cd45.zip
Code review for IS DISTINCT FROM patch. Fix incorrect constant-folding
logic, dissuade planner from thinking that 'x IS DISTINCT FROM 42' may be optimized into 'x = 42' (!!), cause dependency on = operator to be recorded correctly, minor other improvements.
Diffstat (limited to 'src/backend/parser/parse_expr.c')
-rw-r--r--src/backend/parser/parse_expr.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c
index fd2cd4f34b3..b620c7116bc 100644
--- a/src/backend/parser/parse_expr.c
+++ b/src/backend/parser/parse_expr.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.131 2002/11/26 03:01:58 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.132 2002/11/30 21:25:05 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -277,6 +277,8 @@ transformExpr(ParseState *pstate, Node *expr, ConstraintTestValue *domVal)
result = (Node *) make_op(a->name,
lexpr,
rexpr);
+ if (((Expr *) result)->typeOid != BOOLOID)
+ elog(ERROR, "IS DISTINCT FROM requires = operator to yield boolean");
((Expr *) result)->opType = DISTINCT_EXPR;
}
break;