Ensure that CREATE TABLE LIKE copies any NO INHERIT constraint property.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 10 Mar 2020 18:54:00 +0000 (14:54 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 10 Mar 2020 18:54:00 +0000 (14:54 -0400)
commitcacef172237fd3426b578f81b7414c0de56cbaaf
treef3740851871185dd888ec48717290e627d416606
parentdbf05a14399430751e54cd0b4bd8fb0e4f1fb309
Ensure that CREATE TABLE LIKE copies any NO INHERIT constraint property.

Since the documentation about LIKE doesn't say that a copied constraint
has properties different from the original, it seems that ignoring
a NO INHERIT property doesn't meet the principle of least surprise.
So make it copy that.

(Note, however, that we still don't copy a NOT VALID property;
CREATE TABLE offers no way to do that, plus it seems pointless.)

Arguably this is a bug fix; but no back-patch, as it seems barely
possible somebody is depending on the current behavior.

Ildar Musin and Chris Travers; reviewed by Amit Langote and myself

Discussion: https://postgr.es/m/CAONYFtMC6C+3AWCVp7Yd8H87Zn0GxG1_iQG6_bQKbaqYZY0=-g@mail.gmail.com
src/backend/parser/parse_utilcmd.c
src/test/regress/expected/create_table_like.out
src/test/regress/sql/create_table_like.sql