Steve Crawford <scrawf...@pinpointresearch.com> writes:
> I have a query that converts a string to an array with the 
> string_to_array function. Sometimes the input is an empty string (not a 
> null, but a string of zero-length). I had expected the result to be a 
> one-element array with an empty string as the first and only element but 
> instead it returned null. I looked at the docs and didn't find the 
> observed behavior documented.

The behavior is pretty intentional according to the source code:

        /* return NULL for empty input string */
        if (inputstring_len < 1)
        {
                text_position_cleanup(&state);
                PG_RETURN_NULL();
        }

I agree this seems less than consistent though, especially seeing
that you *don't* get a null for a zero-length separator, which if
anything is a more poorly defined case.

I doubt it'd be a good idea to back-patch a change for this,
but I could see altering the definition for 8.4.

Does anyone want to argue for keeping it the same?  Or perhaps
argue that a zero-element array is a more sensible result than
a one-element array with one empty string?  (It doesn't seem
like it to me, but maybe somebody thinks so.)

                        regards, tom lane

-- 
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