From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | paul(dot)kulakov(at)systematica(dot)ru, pgsql-bugs(at)lists(dot)postgresql(dot)org |
Subject: | Re: BUG #18195: PL/pgSQL: invalid syntax allowed in SELECT INTO statement |
Date: | 2023-11-14 15:52:36 |
Message-ID: | CAFj8pRD3k_vFi9kGrA_SJc4bxLxT6k0=zu1tsg2BBrpHZ5SNJQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
Hi
út 14. 11. 2023 v 16:31 odesílatel Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> napsal:
> PG Bug reporting form <noreply(at)postgresql(dot)org> writes:
> > 1. The following code is successfully executed although it has incorrect
> > syntax: there must be comma (,) between _n and _s in 'into' section.
>
> > select 1, 'string1', 'string2'
> > into _n _s;
>
> I believe this is being read the same as
>
> select 1, 'string1', 'string2' _s into _n;
>
> That is, the lack of a comma causes the INTO sub-clause to end,
> and then _s is taken as an AS-less column label. As the manual
> explains, for backwards-compatibility reasons we allow INTO to be
> embedded anywhere in the command, even though that leads to
> surprising-looking cases like this one.
>
> As for the question of why you don't get an error for the wrong
> number of INTO targets, again that's backwards compatibility.
> There's a "strict_multi_assignment" check you can turn on to make
> it complain about that [1].
>
> regards, tom lane
>
> [1]
> https://www.postgresql.org/docs/current/plpgsql-development-tips.html#PLPGSQL-EXTRA-CHECKS
The extension plpgsql_check https://github.com/okbob/plpgsql_check can
raise warnings for these cases too
Regards
Pavel
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2023-11-14 17:48:54 | Re: BUG #18097: Immutable expression not allowed in generated at |
Previous Message | Tom Lane | 2023-11-14 15:31:01 | Re: BUG #18195: PL/pgSQL: invalid syntax allowed in SELECT INTO statement |