Thread: Re: [SQL] Passing arrays

Re: [SQL] Passing arrays

From
Michael Weaver
Date:


> -----Original Message-----
> From: Stephan Szabo [mailto:sszabo@megazone23.bigpanda.com]
> Sent: Friday, 14 February 2003 12:58 PM
> To: Michael Weaver
> Cc: 'pgsql-novice@postgresql.org'; 'pgsql-sql@postgresql.org'
> Subject: Re: [SQL] Passing arrays
>
>
>
> On Fri, 14 Feb 2003, Michael Weaver wrote:
>
> > How do you get an array of elements to be passed to a
> stored proc such that
> > you can use the array in a SELECT statement in the WHERE clause
> >  - e.g.  WHERE field IN (array) etc...
>
> A straight WHERE field IN (array) doesn't work.  That's attempting to
> compare the field directly to the array as a whole (which is
> why you get
> the particular error you do.

I've got around this limitation using strings, but I do find it suprising, that Postgres handles arrays this way.
Searching an array in an WHERE IN clause would be a useful task. (namely for passing arrays of values between stored functions)

Ok it could be confusing, but I think a number of other DBs employ it to good effect.

I'll take a look at the array extension in contrib - it sounds useful.

Thanks.

Re: [SQL] Passing arrays

From
Achilleus Mantzios
Date:
On Fri, 14 Feb 2003, Michael Weaver wrote:

>
>
> > -----Original Message-----
> > From: Stephan Szabo [mailto:sszabo@megazone23.bigpanda.com]
> > Sent: Friday, 14 February 2003 12:58 PM
> > To: Michael Weaver
> > Cc: 'pgsql-novice@postgresql.org'; 'pgsql-sql@postgresql.org'
> > Subject: Re: [SQL] Passing arrays
> >
> >
> >
> > On Fri, 14 Feb 2003, Michael Weaver wrote:
> >
> > > How do you get an array of elements to be passed to a
> > stored proc such that
> > > you can use the array in a SELECT statement in the WHERE clause
> > >  - e.g.  WHERE field IN (array) etc...
> >
> > A straight WHERE field IN (array) doesn't work.  That's attempting to
> > compare the field directly to the array as a whole (which is
> > why you get
> > the particular error you do.
>
> I've got around this limitation using strings, but I do find it suprising,
> that Postgres handles arrays this way.
> Searching an array in an WHERE IN clause would be a useful task. (namely for
> passing arrays of values between stored functions)
>
> Ok it could be confusing, but I think a number of other DBs employ it to
> good effect.
>
> I'll take a look at the array extension in contrib - it sounds useful.

Also check out contrib/intarray and its indexing capabilites
if you have 1 dimensional integer arrays.

>
> Thanks.
>

==================================================================
Achilleus Mantzios
S/W Engineer
IT dept
Dynacom Tankers Mngmt
Nikis 4, Glyfada
Athens 16610
Greece
tel:    +30-10-8981112
fax:    +30-10-8981877
email:  achill@matrix.gatewaynet.com
        mantzios@softlab.ece.ntua.gr