Re: string_to_array with empty input - Mailing list pgsql-general

From justin
Subject Re: string_to_array with empty input
Date
Msg-id 49D25673.20406@emproshunts.com
Whole thread Raw
In response to Re: string_to_array with empty input  (Greg Stark <stark@enterprisedb.com>)
Responses Re: string_to_array with empty input  (Greg Stark <stark@enterprisedb.com>)
List pgsql-general
Greg Stark wrote: <blockquote cite="mid:4136ffa0903311006v15eb3a25xf3fa94a8ca089fd6@mail.gmail.com" type="cite"><pre
wrap="">OnTue, Mar 31, 2009 at 5:48 PM, justin <a class="moz-txt-link-rfc2396E"
href="mailto:justin@emproshunts.com"><justin@emproshunts.com></a>wrote: </pre><blockquote type="cite"><pre
wrap="">Butconsider  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[]   </pre></blockquote><pre wrap="">

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. </pre></blockquote><br /> I disagree.   Casting a string to something else can be a very error prone to begin
with.<br /> Having  string_to_array() to deal with that possibility  is out of its scope IMHO.<br /><br /> Consider
this. I have intelligent part numbers  that need to be split apart to simplify searching  and do math with. <br /><br
/>string_to_array(' F-2500-50 ', '-' ) ::int[]<br /><br /> Still fails with an error as expected.  what is the
differencebetween ' '  and 'F'  <br /><br /> So before doing any thing a test needs to be done to verify the contents,
soit can be casted to something else.<br /> 

pgsql-general by date:

Previous
From: Alban Hertroys
Date:
Subject: Re: [GENEAL] dynamically changing table
Next
From: "Joshua D. Drake"
Date:
Subject: Pg Conference East: Registration closing