diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2002-11-30 21:25:08 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2002-11-30 21:25:08 +0000 |
commit | 2b7ec402c41f6112087b1bf2171872d58151cd45 (patch) | |
tree | 2607cf98815943baef0a20e0b38e445ac6975cfe /src/backend/parser/parse_expr.c | |
parent | 36c356e799a0406c860988e3b8d744d89a3dc31c (diff) | |
download | postgresql-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.c | 4 |
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; |