pgsql: Fix usage of "tableoid" in GENERATED expressions.

Поиск
Список
Период
Сортировка
От Tom Lane
Тема pgsql: Fix usage of "tableoid" in GENERATED expressions.
Дата
Msg-id E1lkAPc-0004Ov-Ag@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Fix usage of "tableoid" in GENERATED expressions.

We consider this supported (though I've got my doubts that it's a
good idea, because tableoid is not immutable).  However, several
code paths failed to fill the field in soon enough, causing such
a GENERATED expression to see zero or the wrong value.  This
occurred when ALTER TABLE adds a new GENERATED column to a table
with existing rows, and during regular INSERT or UPDATE on a
foreign table with GENERATED columns.

Noted during investigation of a report from Vitaly Ustinov.
Back-patch to v12 where GENERATED came in.

Discussion: https://postgr.es/m/CAM_DEiWR2DPT6U4xb-Ehigozzd3n3G37ZB1+867zbsEVtYoJww@mail.gmail.com

Branch
------
REL_13_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/77e3204ecbf15ab5dfd295bbc66eeeec4d9ade19

Modified Files
--------------
src/backend/commands/tablecmds.c        | 13 ++++++++-----
src/backend/executor/nodeModifyTable.c  | 24 ++++++++++++++++++------
src/test/regress/expected/generated.out | 13 ++++++++-----
src/test/regress/sql/generated.sql      |  5 ++++-
4 files changed, 38 insertions(+), 17 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Restore the portal-level snapshot after procedure COMMIT/ROLLBAC
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Disallow whole-row variables in GENERATED expressions.