Hello I found a bug in plpgsql parser.
create table t(a int, b int); postgres=# \sf fx CREATE OR REPLACE FUNCTION public.fx() RETURNS void LANGUAGE plpgsql AS $function$ declare r record; begin r := (10,20)::t; if true then raise notice '% %', r.c, r.b; end if; end; $function$ postgres=# select fx(); ERROR: record "r" has no field "c" CONTEXT: SQL statement "SELECT r.c" PL/pgSQL function "fx" line 4 during function entry it reports a bug on line 4, but it should to be 6 postgres=# \sf+ fx CREATE OR REPLACE FUNCTION public.fx() RETURNS void LANGUAGE plpgsql 1 AS $function$ 2 declare r record; 3 begin 4 r := (10,20)::t; 5 if true then 6 raise notice '% %', r.c, r.b; 7 end if; 8 end; 9 $function$ Regards Pavel Stehule -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers