plpgsql: type of array cells - Mailing list pgsql-general

From Amit Dor-Shifer
Subject plpgsql: type of array cells
Date
Msg-id CAAznTxHWNi_mY8+3c5d04M2bYa_THARzRnZkPoV3yub1z1pFgA@mail.gmail.com
Whole thread Raw
Responses plpgsql: type of array cells  (Amit Dor-Shifer <amit.dor.shifer@gmail.com>)
Re: plpgsql: type of array cells  (Merlin Moncure <mmoncure@gmail.com>)
List pgsql-general
I'm trying to use an array of objects in plpgsql (postgresql 8.4):

drop type if exists test_t cascade;

create type test_t AS
(
    i integer,
    s text
);

create or replace function test2()
    RETURNS SETOF test_t AS
$$
DECLARE
arr test_t ARRAY[3];
tmp test_t;
BEGIN
    FOR i in 1 .. 3
    LOOP
        -- ok. Can write to test_t.i
        tmp.i:=i;
        -- ok. Can assign a cell from arr to a test_t object
        arr[i]:=tmp;
        -- error:
        arr[i].i=3;
        RETURN NEXT tmp;
    END LOOP;
END;
$$
LANGUAGE plpgsql;

I'm getting an error when attempting to interpret this function:

NOTICE:  drop cascades to function test2()
ERROR:  syntax error at or near "."
LINE 21:   arr[i].i=3;
                 ^

********** Error **********

ERROR: syntax error at or near "."
SQL state: 42601
Character: 272

Isn't arr[i] of type test_t??

Thanks,
Amit

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Create Extension search path
Next
From: Amit Dor-Shifer
Date:
Subject: plpgsql: type of array cells