Re: BUG #14952: COPY fails to fill in IDENTITY column default value
| От | Tom Lane |
|---|---|
| Тема | Re: BUG #14952: COPY fails to fill in IDENTITY column default value |
| Дата | |
| Msg-id | 12169.1514407385@sss.pgh.pa.us обсуждение |
| Ответ на | Re: BUG #14952: COPY fails to fill in IDENTITY column default value (Peter Eisentraut <peter.eisentraut@2ndquadrant.com>) |
| Ответы |
Re: BUG #14952: COPY fails to fill in IDENTITY column default value
|
| Список | 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 по дате отправления: