Re: Nested composite types again
От | Vibhor Kumar |
---|---|
Тема | Re: Nested composite types again |
Дата | |
Msg-id | 00B6FDD4-6CDC-4AAA-8FF5-147EF88EB389@enterprisedb.com обсуждение исходный текст |
Ответ на | Nested composite types again (Michael Kolomeitsev <mkolomeitsev@gmail.com>) |
Ответы |
Re: Nested composite types again
|
Список | pgsql-novice |
On Nov 28, 2012, at 5:02 AM, Michael Kolomeitsev <mkolomeitsev@gmail.com> wrote: > Hi, > > I have already read this > http://www.postgresql.org/docs/9.2/static/rowtypes.html#AEN7304 > but it didn't help. > > CREATE TABLE nodes ( > id SERIAL NOT NULL PRIMARY KEY, > name TEXT NOT NULL > ); > > CREATE TYPE pathId AS ( > id INTEGER, > node nodes > ); > > CREATE OR REPLACE FUNCTION test_AEN7304() RETURNS void AS $$ > DECLARE > r pathId; > n nodes; > BEGIN > n.name := 'abc'; > r.id := 1; > r.node := n; -- All is ok > -- r.node.name := 'def'; -- << Error here > -- (r).node.name := 'def'; -- << and here > ((r).node).name := 'def'; -- << and here > END; > $$ LANGUAGE 'plpgsql'; > > And I can't even make 'n' as ALIAS FOR r.node (to simulate C-like pointer). > > What is the right syntax? > Thanks I have verified that plpgsql doesn't allow assignment like r.node.name='def' or (r).node.name or ((r).node).name In Above case, you can use some variable like n and update the n composite variable and assigned it to r.node as you havealready done in plpgsql. Thanks & Regards, Vibhor Kumar EnterpriseDB Corporation The Enterprise PostgreSQL Company Blog:http://vibhork.blogspot.com
В списке pgsql-novice по дате отправления: