diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2006-10-01 17:23:51 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2006-10-01 17:23:51 +0000 |
commit | 9acbb81dd785f3b269c5eca5d06c338470053c44 (patch) | |
tree | af82ea8c5c73b535d95794376a41692edab0d40c /src | |
parent | e73687f2ecd2bbec22812db1c19fd6ee8dc3c08e (diff) | |
download | postgresql-9acbb81dd785f3b269c5eca5d06c338470053c44.tar.gz postgresql-9acbb81dd785f3b269c5eca5d06c338470053c44.zip |
Fix overly enthusiastic Assert introduced in 8.1: it's expecting a
CaseTestExpr, but forgot that the optimizer is sometimes able to replace
CaseTestExpr by Const.
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/utils/adt/ruleutils.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c index 92dd03775e3..b921bcb5ecf 100644 --- a/src/backend/utils/adt/ruleutils.c +++ b/src/backend/utils/adt/ruleutils.c @@ -3,7 +3,7 @@ * back to source text * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/adt/ruleutils.c,v 1.207.2.5 2006/01/26 17:08:26 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/ruleutils.c,v 1.207.2.6 2006/10/01 17:23:51 tgl Exp $ * * This software is copyrighted by Jan Wieck - Hamburg. * @@ -3458,14 +3458,18 @@ get_rule_expr(Node *node, deparse_context *context, * the optimizer's simplify_boolean_equality() may * have reduced this to just "CaseTestExpr" or * "NOT CaseTestExpr", for which we have to show - * "TRUE" or "FALSE". + * "TRUE" or "FALSE". Also, depending on context + * the original CaseTestExpr might have been reduced + * to a Const (but we won't see "WHEN Const"). */ if (IsA(w, OpExpr)) { Node *rhs; Assert(IsA(linitial(((OpExpr *) w)->args), - CaseTestExpr)); + CaseTestExpr) || + IsA(linitial(((OpExpr *) w)->args), + Const)); rhs = (Node *) lsecond(((OpExpr *) w)->args); get_rule_expr(rhs, context, false); } |