Re: future of serial and identity columns - Mailing list pgsql-hackers

From Vik Fearing
Subject Re: future of serial and identity columns
Date
Msg-id eae8883e-bbc6-82b6-1f10-77681ddb2599@postgresfriends.org
Whole thread Raw
In response to future of serial and identity columns  (Peter Eisentraut <peter.eisentraut@enterprisedb.com>)
Responses Re: future of serial and identity columns  (Magnus Hagander <magnus@hagander.net>)
List pgsql-hackers
On 10/4/22 09:41, Peter Eisentraut wrote:
> In PostgreSQL 10, we added identity columns, as an alternative to serial 
> columns (since 6.something).  They mostly work the same.  Identity 
> columns are SQL-conforming, have some more features (e.g., overriding 
> clause), and are a bit more robust in schema management.  Some of that 
> was described in [0].  AFAICT, there have been no complaints since that 
> identity columns lack features or are somehow a regression over serial 
> columns.
> 
> But clearly, the syntax "serial" is more handy, and most casual examples 
> use that syntax.  So it seems like we are stuck with maintaining these 
> two variants in parallel forever.  I was thinking we could nudge this a 
> little by remapping "serial" internally to create an identity column 
> instead.  At least then over time, the use of the older serial 
> mechanisms would go away.
> 
> Note that pg_dump dumps a serial column in pieces (CREATE SEQUENCE + 
> ALTER SEQUENCE ... OWNED BY + ALTER TABLE ... SET DEFAULT).  So if we 
> did this, any existing databases would keep their old semantics, and 
> those who really need it can manually create the old semantics as well.
> 
> Attached is a demo patch how the implementation of this change would 
> look like.  This creates a bunch of regression test failures, but 
> AFAICT, those are mainly display differences and some very peculiar test 
> setups that are intentionally examining some edge cases.  These would 
> need to be investigated in more detail, of course.

I haven't tested the patch yet, just read it.

Is there any reason to use BY DEFAULT over ALWAYS?  I tend to prefer the 
latter.
-- 
Vik Fearing




pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: use has_privs_of_role() for pg_hba.conf
Next
From: Magnus Hagander
Date:
Subject: Re: future of serial and identity columns