Re: BUG #5028: CASE returns ELSE value always when type is"char"

From: "Kevin Grittner" <Kevin(dot)Grittner(at)wicourts(dot)gov>
To: <pgsql-bugs(at)postgresql(dot)org>,"Sam Mason" <sam(at)samason(dot)me(dot)uk>
Subject: Re: BUG #5028: CASE returns ELSE value always when type is"char"
Date: 2009-09-02 17:54:03
Message-ID: 4A9E6AEB020000250002A8D1@gw.wicourts.gov
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Sam Mason <sam(at)samason(dot)me(dot)uk> wrote:

> If we did follow Kevin's request directly, should we also be
> specifying the type of NULL?

I don't *think* the SQL standard requires that, and barring that I
don't see any compelling reason to type NULL. One problem I do see
with the current scheme, however, is that NULL *does* get typed to
text when it makes no sense. In my view, a CASE expression which has
only NULL for its return values, or an abbreviated form of CASE, such
as COALESCE or NULLIF, should be evaluated exactly the same as if they
were replaced by NULL itself. For example, COALESCE(NULL, NULL)
currently yields NULL::text. In my view that's wrong. I view it as a
bug, but that seems to be a hard sell here.

Likewise, I think that in the query which started this thread, the
cast to "char" is not sensible. I'm not sure how that could be
resolved, but it doesn't seem correct to me.

-Kevin

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2009-09-02 17:58:30 Re: BUG #5028: CASE returns ELSE value always when type is"char"
Previous Message Sam Mason 2009-09-02 17:45:34 Re: BUG #5028: CASE returns ELSE value always when type is"char"