BUG #18403: PL/pgSQL is reporting unexpected errors when processing DECLARE blocks with <<label>>

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: "jiangshan(dot)liu(at)tju(dot)edu(dot)cn" <jiangshan(dot)liu(at)tju(dot)edu(dot)cn>, "pgsql-bugs(at)lists(dot)postgresql(dot)org" <pgsql-bugs(at)lists(dot)postgresql(dot)org>
Subject: BUG #18403: PL/pgSQL is reporting unexpected errors when processing DECLARE blocks with <<label>>
Date: 2024-03-20 20:47:52
Message-ID: CAKFQuwbf1aEjRKcxvhuVt=RO=HJLEEZqJCW_nigMiVxhTM9HSw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Wednesday, March 20, 2024, PG Bug reporting form <noreply(at)postgresql(dot)org>
wrote:

> The following bug has been logged on the website:
>
> Bug reference: 18403
> Logged by: Jiangshan Liu
> Email address: jiangshan(dot)liu(at)tju(dot)edu(dot)cn
> PostgreSQL version: 15.2
> Operating system: Ubuntu
> Description:
>
> Hi, I think PL/pgSQL is reporting unexpected errors when dealing with
> DECLARE blocks paired with <<label>>.
> I have approximated the program to a clean situation. When I execute this
> program, the PL/pgSQL engine does not report errors to me:
>
> DO $$
> DECLARE
> DECLARE
> var1 INT = 1;
> BEGIN
> RAISE NOTICE '%', var1;
> END;
> $$;

The failure to report an error here seems contrary to the documentation.
When the end of the DO text is reached and only a single begin/end pair is
seen the parser is being loose in being OK that one of the declares was not
associated with a full block.

David J.

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Pavel Stehule 2024-03-20 20:57:06 Re: BUG #18403: PL/pgSQL is reporting unexpected errors when processing DECLARE blocks with <<label>>
Previous Message Pavel Stehule 2024-03-20 20:37:00 Re: BUG #18403: PL/pgSQL is reporting unexpected errors when processing DECLARE blocks with <<label>>