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

From Pavel Stehule
Subject Re: BUG #18403: PL/pgSQL is reporting unexpected errors when processing DECLARE blocks with <
Date
Msg-id CAFj8pRAzg6E+6Wwxo+WfoYdDAg1Eb=fR_wvJWZa_7hZwvUX0MQ@mail.gmail.com
Whole thread Raw
In response to BUG #18403: PL/pgSQL is reporting unexpected errors when processing DECLARE blocks with <  (PG Bug reporting form <noreply@postgresql.org>)
List pgsql-bugs


st 20. 3. 2024 v 20:59 odesílatel PG Bug reporting form <noreply@postgresql.org> napsal:
The following bug has been logged on the website:

Bug reference:      18403
Logged by:          Jiangshan Liu
Email address:      jiangshan.liu@tju.edu.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.

There cannot be labels between DECLARE keywords.  The label in this case is not related to DECLARE, but to the following BEGIN END block.

Regards

Pavel


pgsql-bugs by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: Regression tests fail with musl libc because libpq.so can't be loaded
Next
From: "David G. Johnston"
Date:
Subject: BUG #18403: PL/pgSQL is reporting unexpected errors when processing DECLARE blocks with <