diff options
author | Peter Eisentraut <peter_e@gmx.net> | 2016-12-20 12:00:00 -0500 |
---|---|---|
committer | Peter Eisentraut <peter_e@gmx.net> | 2016-12-20 08:28:18 -0500 |
commit | 1753b1b027035029c2a2a1649065762fafbf63f3 (patch) | |
tree | cd5b4d8fca4ffca2581e3822a2fa7b5f2f49062a /src/include/commands/sequence.h | |
parent | db80acfc9d50ac56811d22802ab3d822ab313055 (diff) | |
download | postgresql-1753b1b027035029c2a2a1649065762fafbf63f3.tar.gz postgresql-1753b1b027035029c2a2a1649065762fafbf63f3.zip |
Add pg_sequence system catalog
Move sequence metadata (start, increment, etc.) into a proper system
catalog instead of storing it in the sequence heap object. This
separates the metadata from the sequence data. Sequence metadata is now
operated on transactionally by DDL commands, whereas previously
rollbacks of sequence-related DDL commands would be ignored.
Reviewed-by: Andreas Karlsson <andreas@proxel.se>
Diffstat (limited to 'src/include/commands/sequence.h')
-rw-r--r-- | src/include/commands/sequence.h | 29 |
1 files changed, 8 insertions, 21 deletions
diff --git a/src/include/commands/sequence.h b/src/include/commands/sequence.h index 6695bbe4c7a..1fd75b216df 100644 --- a/src/include/commands/sequence.h +++ b/src/include/commands/sequence.h @@ -22,38 +22,24 @@ #include "storage/relfilenode.h" -typedef struct FormData_pg_sequence +typedef struct FormData_pg_sequence_data { - NameData sequence_name; int64 last_value; - int64 start_value; - int64 increment_by; - int64 max_value; - int64 min_value; - int64 cache_value; int64 log_cnt; - bool is_cycled; bool is_called; -} FormData_pg_sequence; +} FormData_pg_sequence_data; -typedef FormData_pg_sequence *Form_pg_sequence; +typedef FormData_pg_sequence_data *Form_pg_sequence_data; /* * Columns of a sequence relation */ -#define SEQ_COL_NAME 1 -#define SEQ_COL_LASTVAL 2 -#define SEQ_COL_STARTVAL 3 -#define SEQ_COL_INCBY 4 -#define SEQ_COL_MAXVALUE 5 -#define SEQ_COL_MINVALUE 6 -#define SEQ_COL_CACHE 7 -#define SEQ_COL_LOG 8 -#define SEQ_COL_CYCLE 9 -#define SEQ_COL_CALLED 10 +#define SEQ_COL_LASTVAL 1 +#define SEQ_COL_LOG 2 +#define SEQ_COL_CALLED 3 -#define SEQ_COL_FIRSTCOL SEQ_COL_NAME +#define SEQ_COL_FIRSTCOL SEQ_COL_LASTVAL #define SEQ_COL_LASTCOL SEQ_COL_CALLED /* XLOG stuff */ @@ -77,6 +63,7 @@ extern Datum pg_sequence_last_value(PG_FUNCTION_ARGS); extern ObjectAddress DefineSequence(ParseState *pstate, CreateSeqStmt *stmt); extern ObjectAddress AlterSequence(ParseState *pstate, AlterSeqStmt *stmt); +extern void DeleteSequenceTuple(Oid relid); extern void ResetSequence(Oid seq_relid); extern void ResetSequenceCaches(void); |