pgsql: ALTER TABLE command to change generation expression

Поиск
Список
Период
Сортировка
От Peter Eisentraut
Тема pgsql: ALTER TABLE command to change generation expression
Дата
Msg-id E1rLPv1-00DTYu-M8@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
ALTER TABLE command to change generation expression

This adds a new ALTER TABLE subcommand ALTER COLUMN ... SET EXPRESSION
that changes the generation expression of a generated column.

The syntax is not standard but was adapted from other SQL
implementations.

This command causes a table rewrite, using the usual ALTER TABLE
mechanisms.  The implementation is similar to and makes use of some of
the infrastructure of the SET DATA TYPE subcommand (for example,
rebuilding constraints and indexes afterwards).  The new command
requires a new pass in AlterTablePass, and the ADD COLUMN pass had to
be moved earlier so that combinations of ADD COLUMN and SET EXPRESSION
can work.

Author: Amul Sul <sulamul@gmail.com>
Discussion:
https://www.postgresql.org/message-id/flat/CAAJ_b94yyJeGA-5M951_Lr+KfZokOp-2kXicpmEhi5FXhBeTog@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/5d06e99a3cfc23bbc217b4d78b8c070ad52f720e

Modified Files
--------------
doc/src/sgml/ref/alter_table.sgml                  |  12 ++
src/backend/commands/tablecmds.c                   | 235 ++++++++++++++++-----
src/backend/parser/gram.y                          |  10 +
src/bin/psql/tab-complete.c                        |  10 +-
src/include/nodes/parsenodes.h                     |   1 +
.../modules/test_ddl_deparse/test_ddl_deparse.c    |   3 +
src/test/regress/expected/generated.out            | 217 ++++++++++++++++---
src/test/regress/sql/generated.sql                 |  52 ++++-
8 files changed, 460 insertions(+), 80 deletions(-)


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

Предыдущее
От: David Rowley
Дата:
Сообщение: pgsql: Fix use of incorrect TupleTableSlot in DISTINCT aggregates
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: In plpgsql, allow %TYPE and %ROWTYPE to be followed by array dec