From: Tom Lane Date: Sun, 1 Oct 2006 17:23:51 +0000 (+0000) Subject: Fix overly enthusiastic Assert introduced in 8.1: it's expecting a X-Git-Url: http://git.postgresql.org/gitweb/static/gitweb.js?a=commitdiff_plain;h=a0b527c6e74c4f3719c1b1f64ce9c61965b90d46;p=users%2Fbernd%2Fpostgres.git 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. --- diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c index c08ff098e5..613d798245 100644 --- a/src/backend/utils/adt/ruleutils.c +++ b/src/backend/utils/adt/ruleutils.c @@ -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); }