wrong plpgsql's line counting 9.1 - Mailing list pgsql-hackers

From Pavel Stehule
Subject wrong plpgsql's line counting 9.1
Date
Msg-id CAFj8pRAFKmqvwFi2isMaAEbNJR4YSGVUuCUK00QO=1RBO4=uww@mail.gmail.com
Whole thread Raw
Responses Re: wrong plpgsql's line counting 9.1
List pgsql-hackers
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 voidLANGUAGE 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


pgsql-hackers by date:

Previous
From: Kohei KaiGai
Date:
Subject: Re: [v9.1] sepgsql - userspace access vector cache
Next
From: Pavel Stehule
Date:
Subject: Re: wrong plpgsql's line counting 9.1