Re: BUG #16913: GENERATED AS IDENTITY column nullability is affected by order of column properties

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Amit Langote <amitlangote09@gmail.com>
Cc: Vik Fearing <vik@postgresfriends.org>, pavel.boev@invitae.com, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2021-03-12T15:30:48Z
Lists: pgsql-bugs
Amit Langote <amitlangote09@gmail.com> writes:
> On Thu, Mar 11, 2021 at 11:37 PM Vik Fearing <vik@postgresfriends.org> wrote:
>> On 3/4/21 3:22 PM, Vik Fearing wrote:
>>> I can confirm this bug.  Attached is a patch to prevent it.

>> Would anybody like to take a look at this?

> Patch looks reasonable to me.

I think it's not really necessary to have two different tests; we can
just make the code for IDENTITY include exactly what the code for
CONSTR_NOTNULL does, ie it can set saw_not_null too.  The point here
is that IDENTITY can be read as implicitly including NOT NULL, so we
can just act as though that was explicit.

An alternative fix approach is to add to the list of conflict checks
that are made after the loop, but I'm not sure that's any better.

Will push it in a bit.

			regards, tom lane



Commits

  1. Doc: correct erroneous entry in this week's minor release notes.

  2. Forbid marking an identity column as nullable.