2010/5/4 Pavel Stehule <pavel.steh...@gmail.com>:
> 2010/5/4 Tom Lane <t...@sss.pgh.pa.us>:
>> Josh Berkus <j...@agliodbs.com> writes:
>>>> quietly removing NULL is maybe good for compatibility but is wrong for
>>>> functionality.
>>
>>> I agree.  I wasn't aware of this little misfeature.
>>
>>> Default display for NULL should be a zero-length string.
>>
>> That's just as broken as Pavel's suggestion.  Unless you have something
>> that is guaranteed distingishable from the output of any non-null value,
>> you really can't make a significant improvement here.
>>
>
> I wouldn't modify current two params string_to_array and
> array_to_string function. So there are not any default string (maybe
> empty string) for NULL. My proposal is new three params functions with
>>>>explicit<<< "null string" definition. This cannot break
> compatibility and enhance functionality - It is just short cut for
> code from my proposal - in C this functionality can by implemented
> much faster.

I did some coding - the patch can be very simple

postgres=# select array_to_string(array[1,2,3,4,5,null],',','*');
 array_to_string
-----------------
 1,2,3,4,5,*
(1 row)

Time: 0,501 ms
postgres=# select
string_to_array(array_to_string(array[1,2,3,4,5,null],',','*'),',','*');
 string_to_array
------------------
 {1,2,3,4,5,NULL}
(1 row)

Time: 0,617 ms

postgres=# select string_to_array('1,2,3,4,5,*',',','*')::int[];
 string_to_array
------------------
 {1,2,3,4,5,NULL}
(1 row)

Time: 0,652 ms

and then string_to_array and array_to_string are orthogonal with NULL.

Pavel


>
> Regards
> Pavel
>
>>                        regards, tom lane
>>
>

Attachment: 3params_arrayfce.diff
Description: Binary data

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to