1 /*-------------------------------------------------------------------------
4 * prototypes for sequence.c.
7 *-------------------------------------------------------------------------
12 #include "nodes/parsenodes.h"
13 #include "access/xlog.h"
15 typedef struct FormData_pg_sequence
17 NameData sequence_name;
26 } FormData_pg_sequence;
28 typedef FormData_pg_sequence *Form_pg_sequence;
31 * Columns of a sequence relation
34 #define SEQ_COL_NAME 1
35 #define SEQ_COL_LASTVAL 2
36 #define SEQ_COL_INCBY 3
37 #define SEQ_COL_MAXVALUE 4
38 #define SEQ_COL_MINVALUE 5
39 #define SEQ_COL_CACHE 6
41 #define SEQ_COL_CYCLE 8
42 #define SEQ_COL_CALLED 9
44 #define SEQ_COL_FIRSTCOL SEQ_COL_NAME
45 #define SEQ_COL_LASTCOL SEQ_COL_CALLED
48 #define XLOG_SEQ_LOG 0x00
50 typedef struct xl_seq_rec
53 /* SEQUENCE TUPLE DATA FOLLOWS AT THE END */
56 extern Datum nextval(PG_FUNCTION_ARGS);
57 extern Datum currval(PG_FUNCTION_ARGS);
58 extern Datum setval(PG_FUNCTION_ARGS);
59 extern Datum setval_and_iscalled(PG_FUNCTION_ARGS);
61 extern void DefineSequence(CreateSeqStmt *stmt);
62 extern void CloseSequences(void);
64 extern void seq_redo(XLogRecPtr lsn, XLogRecord *rptr);
65 extern void seq_undo(XLogRecPtr lsn, XLogRecord *rptr);
66 extern void seq_desc(char *buf, uint8 xl_info, char *rec);
68 #endif /* SEQUENCE_H */