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

From: PG Bug reporting form <noreply(at)postgresql(dot)org>
To: pgsql-bugs(at)lists(dot)postgresql(dot)org
Cc: jiangshan(dot)liu(at)tju(dot)edu(dot)cn
Subject: BUG #18403: PL/pgSQL is reporting unexpected errors when processing DECLARE blocks with <<label>>
Date: 2024-03-20 19:35:22
Message-ID: 18403-7069fc75f5255783@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

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;
$$;

But when I try to add <<label>> before the second DECLARE block, the
PL/pgSQL engine prompts me with this error message:

DO $$
DECLARE
<<label>>
DECLARE
var1 INT = 1;
BEGIN
RAISE NOTICE '%', var1;
END;
$$;

> ERROR: block label must be placed before DECLARE, not after
LINE 3: <<label>>
^

It seems to think that I am adding <<label>> after the first DECLARE block,
which is not my intention. I do add the <<label>> before the second DECLARE
block. Why is this program being reported as an error? Is this a bug in
PL/pgSQL's handling of <<label>>?

Looking forward and thank you for your response to this question.

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Bruce Momjian 2024-03-20 19:42:16 Re: Regression tests fail with musl libc because libpq.so can't be loaded
Previous Message Wolfgang Walther 2024-03-20 19:29:21 Re: Regression tests fail with musl libc because libpq.so can't be loaded