1 /*-------------------------------------------------------------------------
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 *-------------------------------------------------------------------------
16 #include "access/xlogreader.h"
17 #include "catalog/objectaddress.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
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
40 #define SEQ_COL_CALLED 3
42 #define SEQ_COL_FIRSTCOL SEQ_COL_LASTVAL
43 #define SEQ_COL_LASTCOL SEQ_COL_CALLED
46 #define XLOG_SEQ_LOG 0x00
48 typedef struct xl_seq_rec
51 /* SEQUENCE TUPLE DATA FOLLOWS AT THE END */
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 */