]> granicus.if.org Git - postgresql/commit
Fix an old problem in decompilation of CASE constructs: the ruleutils.c code
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 25 Feb 2009 18:00:22 +0000 (18:00 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 25 Feb 2009 18:00:22 +0000 (18:00 +0000)
commitf970cc9588fc0fe43c61f03e5fd4bd30f3d4d786
tree648e50b1213c1002e9a2e6b2b8413a36abb2bb94
parentebce90a1c2243d19d7ee0326ceb16220189405cd
Fix an old problem in decompilation of CASE constructs: the ruleutils.c code
looks for a CaseTestExpr to figure out what the parser did, but it failed to
consider the possibility that an implicit coercion might be inserted above
the CaseTestExpr.  This could result in an Assert failure in some cases
(but correct results if Asserts weren't enabled), or an "unexpected CASE WHEN
clause" error in other cases.  Per report from Alan Li.

Back-patch to 8.1; problem doesn't exist before that because CASE was
implemented differently.
src/backend/utils/adt/ruleutils.c