Re: BUG #14952: COPY fails to fill in IDENTITY column default value - Mailing list pgsql-bugs

From Tom Lane
Subject Re: BUG #14952: COPY fails to fill in IDENTITY column default value
Date
Msg-id 12169.1514407385@sss.pgh.pa.us
Whole thread Raw
In response to Re: BUG #14952: COPY fails to fill in IDENTITY column default value  (Peter Eisentraut <peter.eisentraut@2ndquadrant.com>)
Responses Re: BUG #14952: COPY fails to fill in IDENTITY column default value  (Michael Paquier <michael.paquier@gmail.com>)
List pgsql-bugs
Peter Eisentraut <peter.eisentraut@2ndquadrant.com> writes:
> On 12/18/17 00:49, Michael Paquier wrote:
>> In my opinion, this ALTER TABLE handling should be done by treating
>> identity columns a way similar to default expressions in
>> transformColumnDefinition(), by storing the FuncExpr node at parsing
>> time instead of storing the information needed to rebuild it when
>> executing the query. In short the mapping should get closer to what
>> default does with nextval or serial.

> The serial case works because it stores the sequence *name* in the
> default value in the catalog.

Just to clarify: what's *actually* stored for a regular serial column
is the sequence OID (as a regclass constant), not the name.  If it
were a name then ALTER SEQUENCE RENAME would break it.

> That doesn't work because for the
> identity case we don't store the expression in the catalog.  The
> proposed patch works by storing the sequence *name* in the internal
> structures so that it can be used in place of the stored default value.

I trust you really mean you're storing an OID ...

            regards, tom lane


pgsql-bugs by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: BUG #14952: COPY fails to fill in IDENTITY column default value
Next
From: David Rowley
Date:
Subject: Re: Order of columns in GROUP BY is significant to the planner.