Обсуждение: BUG #7711: Accessing nested composite types in PL/PgSQL doesn't work
BUG #7711: Accessing nested composite types in PL/PgSQL doesn't work
От
mkolomeitsev@gmail.com
Дата:
The following bug has been logged on the website:
Bug reference: 7711
Logged by: Michael Kolomeitsev
Email address: mkolomeitsev@gmail.com
PostgreSQL version: 9.2.1
Operating system: Arch Linux
Description: =
It seems multiple dots (".") are not allowed. For example: a.b.c :=3D value;
How to reproduce:
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 :=3D 'abc';
r.id :=3D 1;
r.node :=3D n; -- All is ok
r.node.name :=3D 'def'; -- << Error here
-- (r).node.name :=3D 'def'; -- << and here
-- ((r).node).name :=3D 'def'; -- << and here
END;
$$ LANGUAGE 'plpgsql';
ERROR: "r.node.name" is not a known variable
(From http://archives.postgresql.org/pgsql-novice/2012-11/msg00057.php)
Hello
it is not a bug - it is known limit :(
nested structures are not supported as target
anybody can implement it if like it
Regards
Pavel Stehule
2012/11/29 <mkolomeitsev@gmail.com>:
> The following bug has been logged on the website:
>
> Bug reference: 7711
> Logged by: Michael Kolomeitsev
> Email address: mkolomeitsev@gmail.com
> PostgreSQL version: 9.2.1
> Operating system: Arch Linux
> Description:
>
> It seems multiple dots (".") are not allowed. For example: a.b.c := value;
>
> How to reproduce:
> 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';
>
> ERROR: "r.node.name" is not a known variable
>
> (From http://archives.postgresql.org/pgsql-novice/2012-11/msg00057.php)
>
>
>
>
> --
> Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-bugs