| From: | Louis-David Mitterrand <vindex+lists-pgsql-sql(at)apartia(dot)org> |
|---|---|
| To: | pgsql-sql(at)postgresql(dot)org |
| Subject: | Re: returning an array as a list fo single-column rows? |
| Date: | 2007-12-23 21:33:45 |
| Message-ID: | 20071223213345.GA15623@apartia.fr |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-sql |
On Sun, Dec 23, 2007 at 10:27:09PM +0100, Pavel Stehule wrote:
> On 23/12/2007, Louis-David Mitterrand
> <vindex+lists-pgsql-sql(at)apartia(dot)org> wrote:
> > Hi,
> >
> > is there a way to return a Pg array as a list of single-column row
> > values?
> >
> > I am trying to circumvent DBI's lack of support for native database
> > arrays and return the list of values from an ENUM as a perl array.
> >
> > Thanks,
> >
>
> you can solve this problem with conversion to string with const separator
>
> Like:
>
> postgres=# select array_to_string(array[1,2,3,4],'|');
> array_to_string
> -----------------
> 1|2|3|4
> (1 row)
>
> [pavel(at)localhost ~]$ perl
> @a = split(/\|/, "1|2|3");
> print $a[1];
Yes I thought about it, but would rather have Pg do the array splitting.
For instance if the separator occurs in an array element there is no
built-in escaping:
% select array_to_string(array['ee','dd','rr','f|f'],'|');
array_to_string
-----------------
ee|dd|rr|f|f
... and then perl would have it all wrong.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Pavel Stehule | 2007-12-23 21:45:01 | Re: returning an array as a list fo single-column rows? |
| Previous Message | Pavel Stehule | 2007-12-23 21:27:09 | Re: returning an array as a list fo single-column rows? |