Identity columns

Peter Eisentraut <peter_e@gmx.net>

Commit: 3217327053638085d24dd4d276e7c1f7ac2c4c6b
Author: Peter Eisentraut <peter_e@gmx.net>
Date: 2017-04-06T12:41:37Z
Releases: 10.0
Identity columns

This is the SQL standard-conforming variant of PostgreSQL's serial
columns.  It fixes a few usability issues that serial columns have:

- CREATE TABLE / LIKE copies default but refers to same sequence
- cannot add/drop serialness with ALTER TABLE
- dropping default does not drop sequence
- need to grant separate privileges to sequence
- other slight weirdnesses because serial is some kind of special macro

Reviewed-by: Vitaly Burovoy <vitaly.burovoy@gmail.com>

Files

PathChange+/−
doc/src/sgml/catalogs.sgml modified +11 −0
doc/src/sgml/information_schema.sgml modified +9 −2
doc/src/sgml/ref/alter_table.sgml modified +43 −4
doc/src/sgml/ref/copy.sgml modified +7 −0
doc/src/sgml/ref/create_table.sgml modified +61 −4
doc/src/sgml/ref/insert.sgml modified +41 −0
src/backend/access/common/tupdesc.c modified +6 −0
src/backend/catalog/dependency.c modified +7 −0
src/backend/catalog/genbki.pl modified +6 −1
src/backend/catalog/heap.c modified +8 −7
src/backend/catalog/index.c modified +1 −0
src/backend/catalog/information_schema.sql modified +10 −7
src/backend/catalog/pg_depend.c modified +30 −22
src/backend/catalog/sql_features.txt modified +6 −6
src/backend/commands/sequence.c modified +83 −18
src/backend/commands/tablecmds.c modified +289 −6
src/backend/executor/execExpr.c modified +12 −0
src/backend/executor/execExprInterp.c modified +23 −0
src/backend/nodes/copyfuncs.c modified +23 −0
src/backend/nodes/equalfuncs.c modified +18 −0
src/backend/nodes/nodeFuncs.c modified +11 −0
src/backend/nodes/outfuncs.c modified +9 −0
src/backend/nodes/readfuncs.c modified +1 −0
src/backend/parser/analyze.c modified +2 −0
src/backend/parser/gram.y modified +130 −4
src/backend/parser/parse_utilcmd.c modified +288 −72
src/backend/rewrite/rewriteHandler.c modified +52 −4
src/backend/utils/adt/ruleutils.c modified +8 −0
src/backend/utils/cache/lsyscache.c modified +32 −0
src/backend/utils/cache/relcache.c modified +1 −0
src/backend/utils/errcodes.txt modified +1 −0
src/bin/pg_dump/pg_dump.c modified +82 −13
src/bin/pg_dump/pg_dump.h modified +3 −0
src/bin/pg_dump/t/002_pg_dump.pl modified +87 −0
src/bin/psql/describe.c modified +22 −5
src/bin/psql/tab-complete.c modified +13 −5
src/include/catalog/catversion.h modified +1 −1
src/include/catalog/dependency.h modified +3 −5
src/include/catalog/pg_attribute.h modified +16 −8
src/include/catalog/pg_class.h modified +1 −1
src/include/commands/sequence.h modified +2 −0
src/include/executor/execExpr.h modified +8 −0
src/include/nodes/nodes.h modified +1 −0
src/include/nodes/parsenodes.h modified +23 −4
src/include/nodes/primnodes.h modified +14 −0
src/include/parser/kwlist.h modified +2 −0
src/include/utils/lsyscache.h modified +1 −0
src/test/regress/expected/create_table_like.out modified +47 −0
src/test/regress/expected/identity.out added +322 −0
src/test/regress/expected/sequence.out modified +2 −2
src/test/regress/expected/truncate.out modified +30 −0
src/test/regress/parallel_schedule modified +5 −0
src/test/regress/serial_schedule modified +1 −0
src/test/regress/sql/create_table_like.sql modified +14 −0
src/test/regress/sql/identity.sql added +192 −0
src/test/regress/sql/sequence.sql modified +1 −1
src/test/regress/sql/truncate.sql modified +18 −0

Documentation touched