]> granicus.if.org Git - postgresql/commit
Fix handling of GENERATED columns in CREATE TABLE LIKE INCLUDING DEFAULTS.
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 25 Sep 2019 21:30:42 +0000 (17:30 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 25 Sep 2019 21:30:42 +0000 (17:30 -0400)
commit658d391d87c13a4b27425a2fd014f2162956ad4d
tree5dc2380f8989d9d75ad4094ba1d274a62c7ce6df
parent37ad1266147626bfe505b2c5b016497605915a8e
Fix handling of GENERATED columns in CREATE TABLE LIKE INCLUDING DEFAULTS.

LIKE INCLUDING DEFAULTS tried to copy the attrdef expression without
copying the state of the attgenerated column.  This is in fact wrong,
because GENERATED and DEFAULT expressions are not the same kind of animal;
one can contain Vars and the other not.  We *must* copy attgenerated
when we're copying the attrdef expression.  Rearrange the if-tests
so that the expression is copied only when the correct one of
INCLUDING DEFAULTS and INCLUDING GENERATED has been specified.

Per private report from Manuel Rigger.

Tom Lane and Peter Eisentraut
src/backend/parser/parse_utilcmd.c
src/test/regress/expected/create_table_like.out
src/test/regress/sql/create_table_like.sql