Thread: working with multidimensional arrays in plpgsql

working with multidimensional arrays in plpgsql

From
Sibtay Abbas
Date:
hello everyone

i am having problem with multidimensional arrays in plpgsql following
is the source code of the function which i am trying to run

CREATE OR REPLACE FUNCTION test() RETURNS VOID AS $$
DECLARE
x INTEGER[10][10];
tmp VARCHAR(40);
BEGIN
x[3][1] := '20';               ------i have even tried x[3][1] = 20
tmp := x[3][1];
RAISE NOTICE '%', tmp;
RETURN;
END;
$$LANGUAGE 'plpgsql';

As you might have observed here, the actual problem is
how to do assignment to multidimensional array locations using the
subscript operater.

Thank you


Re: working with multidimensional arrays in plpgsql

From
Richard Huxton
Date:
Sibtay Abbas wrote:
> hello everyone
> 
> i am having problem with multidimensional arrays in plpgsql following
> is the source code of the function which i am trying to run


> DECLARE
>   x INTEGER[10][10];

> x[3][1] := '20';               ------i have even tried x[3][1] = 20

> As you might have observed here, the actual problem is
> how to do assignment to multidimensional array locations using the
> subscript operater.

Actually, the problem is that the array "x" has been initialised to 
NULL. Therefore, you can't set individual values. Try a line like:  x := '{}';

--  Richard Huxton  Archonet Ltd


Re: working with multidimensional arrays in plpgsql

From
Sibtay Abbas
Date:
thank you very much for your reply
I did as you specified and it worked fine
thankz :)


On Wed, 26 Jan 2005 09:29:53 +0000, Richard Huxton <dev@archonet.com> wrote:
> Sibtay Abbas wrote:
> > hello everyone
> >
> > i am having problem with multidimensional arrays in plpgsql following
> > is the source code of the function which i am trying to run
> 
> 
> > DECLARE
> >   x INTEGER[10][10];
> 
> > x[3][1] := '20';               ------i have even tried x[3][1] = 20
> 
> > As you might have observed here, the actual problem is
> > how to do assignment to multidimensional array locations using the
> > subscript operater.
> 
> Actually, the problem is that the array "x" has been initialised to
> NULL. Therefore, you can't set individual values. Try a line like:
>    x := '{}';
> 
> --
>    Richard Huxton
>    Archonet Ltd
>


Re: working with multidimensional arrays in plpgsql

From
Josh Berkus
Date:
Sibtay,

> As you might have observed here, the actual problem is
> how to do assignment to multidimensional array locations using the
> subscript operater.

Maybe post your results, too?


-- 
Josh Berkus
Aglio Database Solutions
San Francisco