Michael Kolomeitsev
2012-11-28 11:02:47 UTC
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 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