Permalink
Browse files
Generated columns
This is an SQL-standard feature that allows creating columns that are computed from expressions rather than assigned, similar to a view or materialized view but on a column basis. This implements one kind of generated column: stored (computed on write). Another kind, virtual (computed on read), is planned for the future, and some room is left for it. Reviewed-by: Michael Paquier <michael@paquier.xyz> Reviewed-by: Pavel Stehule <pavel.stehule@gmail.com> Discussion: https://www.postgresql.org/message-id/flat/b151f851-4019-bdb1-699e-ebab07d2f40a@2ndquadrant.com
- Loading branch information...
Showing
with
3,065 additions
and 155 deletions.
- +25 −0 contrib/postgres_fdw/expected/postgres_fdw.out
- +2 −1 contrib/postgres_fdw/postgres_fdw.c
- +14 −0 contrib/postgres_fdw/sql/postgres_fdw.sql
- +16 −3 doc/src/sgml/catalogs.sgml
- +118 −0 doc/src/sgml/ddl.sgml
- +64 −2 doc/src/sgml/information_schema.sgml
- +2 −2 doc/src/sgml/protocol.sgml
- +2 −1 doc/src/sgml/ref/copy.sgml
- +26 −1 doc/src/sgml/ref/create_foreign_table.sgml
- +44 −1 doc/src/sgml/ref/create_table.sgml
- +3 −1 doc/src/sgml/ref/create_trigger.sgml
- +14 −12 doc/src/sgml/textsearch.sgml
- +18 −0 doc/src/sgml/trigger.sgml
- +11 −0 src/backend/access/common/tupdesc.c
- +95 −13 src/backend/catalog/heap.c
- +26 −4 src/backend/catalog/information_schema.sql
- +30 −1 src/backend/commands/copy.c
- +149 −18 src/backend/commands/tablecmds.c
- +25 −6 src/backend/commands/trigger.c
- +4 −2 src/backend/commands/typecmds.c
- +6 −2 src/backend/executor/execMain.c
- +11 −0 src/backend/executor/execReplication.c
- +112 −0 src/backend/executor/nodeModifyTable.c
- +2 −0 src/backend/nodes/copyfuncs.c
- +2 −0 src/backend/nodes/equalfuncs.c
- +9 −0 src/backend/nodes/outfuncs.c
- +1 −0 src/backend/nodes/readfuncs.c
- +5 −3 src/backend/optimizer/plan/createplan.c
- +6 −0 src/backend/optimizer/util/inherit.c
- +19 −0 src/backend/optimizer/util/plancat.c
- +27 −0 src/backend/parser/analyze.c
- +13 −1 src/backend/parser/gram.y
- +11 −0 src/backend/parser/parse_agg.c
- +6 −0 src/backend/parser/parse_expr.c
- +3 −0 src/backend/parser/parse_func.c
- +19 −0 src/backend/parser/parse_relation.c
- +62 −4 src/backend/parser/parse_utilcmd.c
- +4 −5 src/backend/replication/logical/proto.c
- +1 −1 src/backend/replication/logical/relation.c
- +4 −2 src/backend/replication/logical/tablesync.c
- +1 −1 src/backend/replication/logical/worker.c
- +1 −1 src/backend/replication/pgoutput/pgoutput.c
- +29 −7 src/backend/rewrite/rewriteHandler.c
- +33 −0 src/backend/utils/cache/lsyscache.c
- +1 −0 src/backend/utils/cache/partcache.c
- +4 −0 src/backend/utils/cache/relcache.c
- +33 −7 src/bin/pg_dump/pg_dump.c
- +1 −0 src/bin/pg_dump/pg_dump.h
- +10 −0 src/bin/pg_dump/pg_dump_sort.c
- +17 −0 src/bin/pg_dump/t/002_pg_dump.pl
- +17 −6 src/bin/psql/describe.c
- +1 −0 src/include/access/tupdesc.h
- +1 −1 src/include/catalog/catversion.h
- +3 −1 src/include/catalog/heap.h
- +5 −0 src/include/catalog/pg_attribute.h
- +1 −1 src/include/catalog/pg_class.dat
- +2 −0 src/include/executor/nodeModifyTable.h
- +3 −0 src/include/nodes/execnodes.h
- +19 −5 src/include/nodes/parsenodes.h
- +2 −0 src/include/optimizer/plancat.h
- +1 −0 src/include/parser/kwlist.h
- +2 −1 src/include/parser/parse_node.h
- +1 −0 src/include/utils/lsyscache.h
- +95 −0 src/pl/plperl/expected/plperl_trigger.out
- +31 −9 src/pl/plperl/plperl.c
- +36 −0 src/pl/plperl/sql/plperl_trigger.sql
- +20 −0 src/pl/plpgsql/src/pl_exec.c
- +94 −0 src/pl/plpython/expected/plpython_trigger.out
- +3 −2 src/pl/plpython/plpy_cursorobject.c
- +19 −4 src/pl/plpython/plpy_exec.c
- +2 −1 src/pl/plpython/plpy_spi.c
- +12 −5 src/pl/plpython/plpy_typeio.c
- +1 −1 src/pl/plpython/plpy_typeio.h
- +37 −0 src/pl/plpython/sql/plpython_trigger.sql
- +99 −0 src/pl/tcl/expected/pltcl_trigger.out
- +35 −15 src/pl/tcl/pltcl.c
- +36 −0 src/pl/tcl/sql/pltcl_trigger.sql
- +46 −0 src/test/regress/expected/create_table_like.out
- +768 −0 src/test/regress/expected/generated.out
- +1 −1 src/test/regress/parallel_schedule
- +1 −0 src/test/regress/serial_schedule
- +14 −0 src/test/regress/sql/create_table_like.sql
- +451 −0 src/test/regress/sql/generated.sql
- +65 −0 src/test/subscription/t/011_generated.pl
Oops, something went wrong.
Formula for cm-to-in conversion is height_cm / 2.54, not height_cm * 2.54.