pgsql: Fix IS NULL and IS NOT NULL tests on row-valued expressions to

From: tgl(at)postgresql(dot)org (Tom Lane)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Fix IS NULL and IS NOT NULL tests on row-valued expressions to
Date: 2006-09-28 20:51:43
Message-ID: 20060928205143.6BABA9FB35B@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

Log Message:
-----------
Fix IS NULL and IS NOT NULL tests on row-valued expressions to conform to
the SQL spec, viz IS NULL is true if all the row's fields are null, IS NOT
NULL is true if all the row's fields are not null. The former coding got
this right for a limited number of cases with IS NULL (ie, those where it
could disassemble a ROW constructor at parse time), but was entirely wrong
for IS NOT NULL. Per report from Teodor.

I desisted from changing the behavior for arrays, since on closer inspection
it's not clear that there's any support for that in the SQL spec. This
probably needs more consideration.

Modified Files:
--------------
pgsql/doc/src/sgml:
func.sgml (r1.340 -> r1.341)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/func.sgml.diff?r1=1.340&r2=1.341)
pgsql/src/backend/executor:
execQual.c (r1.193 -> r1.194)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/execQual.c.diff?r1=1.193&r2=1.194)
pgsql/src/backend/optimizer/util:
clauses.c (r1.220 -> r1.221)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/clauses.c.diff?r1=1.220&r2=1.221)
predtest.c (r1.8 -> r1.9)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/predtest.c.diff?r1=1.8&r2=1.9)
pgsql/src/backend/parser:
gram.y (r2.565 -> r2.566)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/gram.y.diff?r1=2.565&r2=2.566)
pgsql/src/backend/utils/cache:
lsyscache.c (r1.136 -> r1.137)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/cache/lsyscache.c.diff?r1=1.136&r2=1.137)
pgsql/src/include/nodes:
execnodes.h (r1.160 -> r1.161)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/execnodes.h.diff?r1=1.160&r2=1.161)
nodes.h (r1.187 -> r1.188)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/nodes.h.diff?r1=1.187&r2=1.188)
primnodes.h (r1.115 -> r1.116)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/primnodes.h.diff?r1=1.115&r2=1.116)
pgsql/src/include/utils:
lsyscache.h (r1.105 -> r1.106)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/utils/lsyscache.h.diff?r1=1.105&r2=1.106)

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message David Fetter 2006-09-29 02:49:27 dbi-link - dbi-link: * Added dbi_link_init() function which should be
Previous Message Bruce Momjian 2006-09-28 17:43:36 pgsql: Add URL for client_encoding being set by client: >

Browse pgsql-hackers by date

  From Date Subject
Next Message Martijn van Oosterhout 2006-09-28 20:53:34 Re: New version of money type
Previous Message Luke Lonergan 2006-09-28 20:29:57 Re: New version of money type