Re: PL/pgSQL: « arr[j].a := v » works fine in PG Version 14.4, fails to compile in Version 11.2. Which version brought the fix?
| От | Bryn Llewellyn |
|---|---|
| Тема | Re: PL/pgSQL: « arr[j].a := v » works fine in PG Version 14.4, fails to compile in Version 11.2. Which version brought the fix? |
| Дата | |
| Msg-id | 89FDDABB-CF19-4DBF-9C43-B881CA1A5BB2@yugabyte.com обсуждение исходный текст |
| Ответ на | Re: PL/pgSQL: « arr[j].a := v » works fine in PG Version 14.4, fails to compile in Version 11.2. Which version brought the fix? ("David G. Johnston" <david.g.johnston@gmail.com>) |
| Список | pgsql-general |
david.g.johnston@gmail.com wrote:bryn@yugabyte.com wrote:
I copied my testcase at the end. It runs OK and produces the output that I expect using PG Version 14.4. But using Version 11.9 (and earlier 11 sub-versions), it fails to compile with this error:
syntax error at or near "."
lhs[j].a := rhs[j].a;
^If I comment out the "Ideal approach" loop, then it runs fine in PG 11 and produces the same output as the "Ideal approach" does in PG 14,
I looked at the Release Notes for each of Versions 14, 13, and 12:
From the change to this page I'd say v14:
https://www.postgresql.org/docs/14/plpgsql-statements.html
The release note for v14 say:«PL/PgSQL:Improve PL/pgSQL's expression and assignment parsing (Tom Lane)This change allows assignment to array slices and nested record fields.»
Thanks for the quick reply, David.
I looked at "43.5.1. Assignment" (https://www.postgresql.org/docs/14/plpgsql-statements.html#PLPGSQL-STATEMENTS-ASSIGNMENT).
I searched in the page for « ]. » and found this:
complex_array[n].realpart = 12.3;
The corresponding page for Version 13 has no hits for « ]. ». So that seems to be a clear answer to my question.
В списке pgsql-general по дате отправления: