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