Forbid marking an identity column as nullable.
authorTom Lane
Fri, 12 Mar 2021 16:08:42 +0000 (11:08 -0500)
committerTom Lane
Fri, 12 Mar 2021 16:08:42 +0000 (11:08 -0500)
commite7f7950f6741a799bdf1dc3d2dbcb85e1b0a3c8c
tree37a6ebeb7ed032defabe8e55abe6dad4b27f5208
parentce54c024d9bf3022690dc84a17f1207aceec430a
Forbid marking an identity column as nullable.

GENERATED ALWAYS AS IDENTITY implies NOT NULL, but the code failed
to complain if you overrode that with "GENERATED ALWAYS AS IDENTITY
NULL".  One might think the old behavior was a feature, but it was
inconsistent because the outcome varied depending on the order of
the clauses, so it seems to have been just an oversight.

Per bug #16913 from Pavel Boev.  Back-patch to v10 where identity
columns were introduced.

Vik Fearing (minor tweaks by me)

Discussion: https://postgr.es/m/16913-3b5198410f67d8c6@postgresql.org
doc/src/sgml/ref/create_table.sgml
src/backend/parser/parse_utilcmd.c
src/test/regress/expected/identity.out
src/test/regress/sql/identity.sql