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

From: "Kevin Grittner" <Kevin(dot)Grittner(at)wicourts(dot)gov>
To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: <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 20:22:39
Message-ID: 4A9E8DBF020000250002A95C@gw.wicourts.gov
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> "Kevin Grittner" <Kevin(dot)Grittner(at)wicourts(dot)gov> writes:
>> Yep. I don't know if it would be remotely feasible, but the
>> implementation which seems like it would be "standard-safe" but
>> still give reasonable concessions to those wanting to skip the
>> extra keystrokes of declaring the type of literals which are not
>> character based would be to go with the suggestion of having a
>> character string literal type, and change the semantics such that
>> if there is a valid interpretation of the statement with the
>> character string literal taken as text, it should be used; if not,
>> resolve by current "unknown" rules.
>
> There is already a weak preference for resolving unknown as text in
> the presence of multiple alternatives. So I'm not sure that you're
> suggesting anything different from what happens now. In particular,
> weren't you the same person complaining a moment ago about
> COALESCE(NULL,NULL) defaulting to text? Why is that bad if the
> above is good?

Because COALESCE(NULL, NULL) has given no indication that it is
character based, while 'x' is defined by the standard to be a
character string literal. The two uses of "unknown" in typing seem to
be solving different problems. Perhaps using the same flag for both
is part of the problem. The above was suggesting we differentiate.

-Kevin

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Jaime Casanova 2009-09-02 20:33:11 Re: BUG #5030: Problem on "RETURN QUERY EXECUTE" when a column is dropped from a table
Previous Message Sam Mason 2009-09-02 20:17:22 Re: BUG #5028: CASE returns ELSE value always when type is"char"