pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Ian Barwick <barwick@gmx.net>
To: Josh Berkus <josh@agliodbs.com>
To: Greg Johnson <gregj@interprose.com>
To: pgsql-sql@postgresql.org
Subject: Re: Passing array to PL/SQL and looping
Date: Sun, 29 Sep 2002 00:25:06 +0200
Message-ID: <200209290025.06378.barwick@gmx.net> (raw)
In-Reply-To: <web-1731886@davinci.ethosmedia.com>
References: <web-1731886@davinci.ethosmedia.com>

On Friday 27 September 2002 18:04, Josh Berkus wrote:
> Greg,
>
> > CREATE FUNCTION test_array( ) RETURNS VARCHAR[] AS '
> > DECLARE
> >     return_array VARCHAR[];
> > BEGIN
> >     return_array[0] := ''test'';
> >     return_array[1] := ''test 1'';
> >     return_array[2] := ''test 2'';
> > RETURN (return_array);
> > END;'
> > LANGUAGE 'plpgsql';
>
> No, it's not possible to do the above.   This is a flaw in the current
> implementation of PL/pgSQL that will not be resolved until we attract
> some new Postgres hackers who really care about upgrading PL/pgSQL.
>
> Currently, if you want to use an array, it has to be passed as a
> parameter, or come from an external table.   You cannot declare an
> Array data type.  Annoying, really.

If I replace the return_array allocations in the above example with this 
line:

  return_array := ''{ ''''test'''', ''''test 1'''', ''''test 2''''}'';

it _seems_ to work as expected, at least in 7.3b1., e.g. 

test=> select array_dims(test_array) from test_array();
 array_dims 
------------
 [1:3]
(1 row)


Ian Barwick
barwick@gmx.net




view thread (9+ messages)  latest in thread

Message-ID: <200209290025.06378.barwick@gmx.net>
Permalink:  ../200209290025.06378.barwick@gmx.net/
Also on:    postgresql.org/message-id/200209290025.06378.barwick@gmx.net

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: barwick@gmx.net, josh@agliodbs.com, gregj@interprose.com
  Subject: Re: Passing array to PL/SQL and looping
  In-Reply-To: <200209290025.06378.barwick@gmx.net>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox