future of serial and identity columns

Поиск
Список
Период
Сортировка
От Peter Eisentraut
Тема future of serial and identity columns
Дата
Msg-id 70be435b-05db-06f2-7c01-9bb8ee2fccce@enterprisedb.com
обсуждение исходный текст
Ответы Re: future of serial and identity columns  (Laurenz Albe <laurenz.albe@cybertec.at>)
Re: future of serial and identity columns  (Bruce Momjian <bruce@momjian.us>)
Re: future of serial and identity columns  (Vik Fearing <vik@postgresfriends.org>)
Re: future of serial and identity columns  (Peter Eisentraut <peter.eisentraut@enterprisedb.com>)
Список pgsql-hackers
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.


[0]: 
https://www.enterprisedb.com/blog/postgresql-10-identity-columns-explained
Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Bharath Rupireddy
Дата:
Сообщение: Re: log_heap_visible(): remove unused parameter and update comment
Следующее
От: Bharath Rupireddy
Дата:
Сообщение: Assorted fixes related to WAL files (was: Use XLogFromFileName() in pg_resetwal to parse position from WAL file)