Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search archives
  Advanced Search

Re: [GENERAL] string_to_array with empty input


  • From: Greg Stark <stark(at)enterprisedb(dot)com>
  • To: justin <justin(at)emproshunts(dot)com>
  • Cc: Sam Mason <sam(at)samason(dot)me(dot)uk>, pgsql-general(at)postgresql(dot)org, pgsql-hackers(at)postgresql(dot)org
  • Subject: Re: [GENERAL] string_to_array with empty input
  • Date: Tue, 31 Mar 2009 18:06:03 +0100
  • Message-id: <4136ffa0903311006v15eb3a25xf3fa94a8ca089fd6@mail.gmail.com> <text/plain>

On Tue, Mar 31, 2009 at 5:48 PM, justin <justin(at)emproshunts(dot)com> wrote:
>
> But consider  this fails also
>
> select string_to_array('1, , 3', ',' )::int[] => ERROR:  invalid input
> syntax for integer: " "
>
> yet this works
>
> select string_to_array('1, 2, 3',',')::int[]


Sure, and the analogous pair string_to_array(' ',',')::int[] and
string_to_array('1 ',',')::int[] behave similarly.

The point is that '' could represent no items or one empty string. We
get to pick which one and in any use case where the string was a list
of objects it's almost certainly intended to be an empty list. And
databases are almost always processing lists of things.

I think the only use case where you want it to be a singleton list of
an empty string is when you're doing string parsing such as building a
lexer or something like that, which is isn't a typical use for sql
code.

-- 
greg



Home | Main Index | Thread Index

Privacy Policy | About PostgreSQL
Copyright © 1996 – 2012 PostgreSQL Global Development Group