On Wed, Apr 01, 2009 at 10:23:18AM -0700, David E. Wheeler wrote: > On Apr 1, 2009, at 10:05 AM, justin wrote: > >string_to_array('',',')::INT[] works as proposed > > > >But > >string_to_array(',,,', ',' )::INT[] Fails > >or > >string_to_array('1,2,,4', ',' )::INT[] Fails . > > > > > >I'm trying to understand the difference between a empty string to a > >string with many blank entries between the delimiter. > >Consider ',,,,,,' = '' once the delimiter is removed . Yet > >Seven zero length entries were passed. How is that going to be > >handled???? > > Right, it's making a special case of '', which does seem rather > inconsistent to me. Yes it is; but it's a useful special case because it allows: string_to_array(array_to_string(col,','),',') to do the right thing whether it's got zero or more elements in. With the current implementation you get a NULL back in the case of zero elements and the expected array back the rest of the time. To me, it doesn't really matter whether: string_to_array(',', ',' )::INT[] fails or not; because array_to_string will never generate a string that looks like this. -- Sam http://samason.me.uk/ -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general