| From: | "Thomas T(dot) Thai" <tom(at)minnesota(dot)com> | 
|---|---|
| To: | <neilc(at)samurai(dot)com> | 
| Cc: | <oleg(at)sai(dot)msu(dot)su>, <alvherre(at)dcc(dot)uchile(dot)cl>, <pgsql-hackers(at)postgresql(dot)org> | 
| Subject: | Re: string || NULL ambiguity | 
| Date: | 2003-03-20 08:34:21 | 
| Message-ID: | 4092.63.226.186.156.1048149261.squirrel@mail.minnesota.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
> On Wed, 2003-03-19 at 20:32, Oleg Bartunov wrote:
>> On Wed, 19 Mar 2003, Alvaro Herrera wrote:
>> > stringA||COALESCE(NULL, '')
>> >
>>
>> we don't know in advance if it's NULL or not.
>
> Right, that's the point of COALESCE: the first non-NULL argument is
> returned -- so if the first argument to COALESCE happens to be non-NULL,
> COALESCE has no effect.
I tried this with a txtidx column type:
tsearch=# select coalesce(NULL,'');
 case
------
(1 row)
tsearch=# select coalesce(NULL,'hi');
 case
------
 hi
(1 row)
tsearch=# select title_fts from article;
            title_fts
----------------------------------
 '2':3A 'tsearch':1A 'version':2A
 'easi':1A 'implement':2A
(3 rows)
tsearch=# select coalesce('',title_fts) from article;
ERROR:  Void value
tsearch=# select coalesce('hi',title_fts) from article;
 case
------
 'hi'
 'hi'
 'hi'
(3 rows)
---
Note the error: "ERROR: Void value" above. Why is that happening?
--
Thomas
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Thomas T. Thai | 2003-03-20 09:08:54 | Re: string || NULL ambiguity | 
| Previous Message | Ronald Kuczek | 2003-03-20 08:31:52 | Re: Win32 native port |