From: | Kevin Grittner <kgrittn(at)ymail(dot)com> |
---|---|
To: | Robert Haas <robertmhaas(at)gmail(dot)com>, Merlin Moncure <mmoncure(at)gmail(dot)com> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Josh Berkus <josh(at)agliodbs(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Differences in WHERE clause of SELECT |
Date: | 2013-07-16 20:22:43 |
Message-ID: | 1374006163.42385.YahooMailNeo@web162903.mail.bf1.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Robert Haas <robertmhaas(at)gmail(dot)com> wrote:
> We can certainly continue to play whack-a-mole and dream up a new
> solution every time a really intolerable variant of this problem comes
> up. But that doesn't seem good to me. It means that every case
> behaves a little different from every other case, and the whole thing
> is kinda arcane and hard to understand, even for hackers.
If you're building up a list of things that generate errors in
PostgreSQL but not other DBMS products, make sure you have this:
test=# create table t(d date);
CREATE TABLE
test=# insert into t values (NULL);
INSERT 0 1
test=# insert into t values (COALESCE(NULL, NULL));
ERROR: column "d" is of type date but expression is of type text
LINE 1: insert into t values (COALESCE(NULL, NULL));
^
HINT: You will need to rewrite or cast the expression.
From a user perspective, it's hard to explain why COALESCE(NULL,
NULL) fails in a location that a bare NULL works. From the
perspective of those working on the code, and looking at the
problem from the inside out, it seems sane; but that's the only
perspective from which it does.
--
Kevin Grittner
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
From | Date | Subject | |
---|---|---|---|
Next Message | Martijn van Oosterhout | 2013-07-16 20:42:33 | Re: pg_memory_barrier() doesn't compile, let alone work, for me |
Previous Message | Pavel Stehule | 2013-07-16 20:04:49 | Re: review: Non-recursive processing of AND/OR lists |