Thread: Re: Populating a sparse array piecemeal in plpgsql (REDUX)

Re: Populating a sparse array piecemeal in plpgsql (REDUX)

From
"Webb Sprague"
Date:
I am trying to return a 2-d array with filled in values, but I can't
find a way to initialize the array programmatically (ie, in a
function, with the array size being determined by parameter values.

here is one approach

> Well, the point is that you need to initialize the array as a whole to
> have the dimensions you want; PG won't guess about this.  For instance
> you could do something like
>
>        declare a integer[];
>        begin
>          a := '{{null,null,null},{null,null,null},{null,null,null}}';

 I would  like the following to get  a 3 x 3 array:

declare a integer[][]
    begin
    a := array_init(3, 3, 0)  -- this function doesn't exist, ??

Any ideas?  I guess I can do a series of appends or make some text
thing, but that seems awkward...

Tx

Re: Populating a sparse array piecemeal in plpgsql (REDUX)

From
"Pavel Stehule"
Date:
2008/5/27 Webb Sprague <webb.sprague@gmail.com>:
> I am trying to return a 2-d array with filled in values, but I can't
> find a way to initialize the array programmatically (ie, in a
> function, with the array size being determined by parameter values.
>
> here is one approach
>
>> Well, the point is that you need to initialize the array as a whole to
>> have the dimensions you want; PG won't guess about this.  For instance
>> you could do something like
>>
>>        declare a integer[];
>>        begin
>>          a := '{{null,null,null},{null,null,null},{null,null,null}}';
>
>  I would  like the following to get  a 3 x 3 array:
>
> declare a integer[][]
>    begin
>    a := array_init(3, 3, 0)  -- this function doesn't exist, ??

+1 it's good idea - I see problem only with dimension specification.
Maybe is better

array_init(ARRAY[3,3], 0) - so we can use this function for
multimensional array too.

Regards
Pavel

>
> Any ideas?  I guess I can do a series of appends or make some text
> thing, but that seems awkward...
>
> Tx
>
> --
> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>