Move sequences' metadata fields into a new pg_sequence system catalog (Peter Eisentraut)
A sequence relation now stores only the fields that can be modified by nextval()
, that is last_value
, log_cnt
, and is_called
. Other sequence properties, such as the starting value and increment, are kept in a corresponding row of the pg_sequence
catalog. ALTER SEQUENCE
updates are now fully transactional, implying that the sequence is locked until commit. The nextval()
and setval()
functions remain nontransactional.
The main incompatibility introduced by this change is that selecting from a sequence relation now returns only the three fields named above. To obtain the sequence's other properties, applications must look into pg_sequence
. The new system view pg_sequences can also be used for this purpose; it provides column names that are more compatible with existing code.
The output of psql's \d
command for a sequence has been redesigned, too.