Update copyright for 2022
[pgsql.git] / src / include / commands / sequence.h
blobf7542f2bccb957e7f7ceb4f1d236568831bace66
1 /*-------------------------------------------------------------------------
3 * sequence.h
4 * prototypes for sequence.c.
6 * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
7 * Portions Copyright (c) 1994, Regents of the University of California
9 * src/include/commands/sequence.h
11 *-------------------------------------------------------------------------
13 #ifndef SEQUENCE_H
14 #define SEQUENCE_H
16 #include "access/xlogreader.h"
17 #include "catalog/objectaddress.h"
18 #include "fmgr.h"
19 #include "lib/stringinfo.h"
20 #include "nodes/parsenodes.h"
21 #include "parser/parse_node.h"
22 #include "storage/relfilenode.h"
25 typedef struct FormData_pg_sequence_data
27 int64 last_value;
28 int64 log_cnt;
29 bool is_called;
30 } FormData_pg_sequence_data;
32 typedef FormData_pg_sequence_data *Form_pg_sequence_data;
35 * Columns of a sequence relation
38 #define SEQ_COL_LASTVAL 1
39 #define SEQ_COL_LOG 2
40 #define SEQ_COL_CALLED 3
42 #define SEQ_COL_FIRSTCOL SEQ_COL_LASTVAL
43 #define SEQ_COL_LASTCOL SEQ_COL_CALLED
45 /* XLOG stuff */
46 #define XLOG_SEQ_LOG 0x00
48 typedef struct xl_seq_rec
50 RelFileNode node;
51 /* SEQUENCE TUPLE DATA FOLLOWS AT THE END */
52 } xl_seq_rec;
54 extern int64 nextval_internal(Oid relid, bool check_permissions);
55 extern Datum nextval(PG_FUNCTION_ARGS);
56 extern List *sequence_options(Oid relid);
58 extern ObjectAddress DefineSequence(ParseState *pstate, CreateSeqStmt *stmt);
59 extern ObjectAddress AlterSequence(ParseState *pstate, AlterSeqStmt *stmt);
60 extern void DeleteSequenceTuple(Oid relid);
61 extern void ResetSequence(Oid seq_relid);
62 extern void ResetSequenceCaches(void);
64 extern void seq_redo(XLogReaderState *rptr);
65 extern void seq_desc(StringInfo buf, XLogReaderState *rptr);
66 extern const char *seq_identify(uint8 info);
67 extern void seq_mask(char *pagedata, BlockNumber blkno);
69 #endif /* SEQUENCE_H */