Adjust constant-folding of CASE expressions so that the simple comparison
Tom Lane <tgl@sss.pgh.pa.us>
Adjust constant-folding of CASE expressions so that the simple comparison form of CASE (eg, CASE 0 WHEN 1 THEN ...) can be constant-folded as it was in 7.4. Also, avoid constant-folding result expressions that are certainly unreachable --- the former coding was a bit cavalier about this and could generate unexpected results for all-constant CASE expressions. Add regression test cases. Per report from Vlad Marchenko.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/optimizer/util/clauses.c | modified | +82 −40 |
| src/test/regress/expected/case.out | modified | +17 −0 |
| src/test/regress/sql/case.sql | modified | +8 −0 |