Skip site navigation (1) Skip section navigation (2)

pgsql: Fix old oversight in const-simplification of COALESCE()expressi

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Fix old oversight in const-simplification of COALESCE()expressi
Date: 2010-11-12 20:24:25
Message-ID: E1PH0Ab-0007O5-N4@gemulon.postgresql.org (view raw or flat)
Thread:
Lists: pgsql-committers
Fix old oversight in const-simplification of COALESCE() expressions.

Once we have found a non-null constant argument, there is no need to
examine additional arguments of the COALESCE.  The previous coding got it
right only if the constant was in the first argument position; otherwise
it tried to simplify following arguments too, leading to unexpected
behavior like this:

regression=# select coalesce(f1, 42, 1/0) from int4_tbl;
ERROR:  division by zero

It's a minor corner case, but a bug is a bug, so back-patch all the way.

Branch
------
REL8_2_STABLE

Details
-------
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=c26bc6919efedd0d1e8d9550a05c111dac0830fe

Modified Files
--------------
src/backend/optimizer/util/clauses.c |    6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)

pgsql-committers by date

Next:From: Robert HaasDate: 2010-11-12 21:43:19
Subject: pgsql: Move copydir() prototype into its own header file.
Previous:From: Peter EisentrautDate: 2010-11-12 20:16:41
Subject: pgsql: Improved parallel make support

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group