mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-08-25 14:47:19 +02:00
69 lines
1.5 KiB
C
69 lines
1.5 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* sequence.h
|
|
* prototypes for sequence.c.
|
|
*
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef SEQUENCE_H
|
|
#define SEQUENCE_H
|
|
|
|
#include "nodes/parsenodes.h"
|
|
#include "access/xlog.h"
|
|
|
|
typedef struct FormData_pg_sequence
|
|
{
|
|
NameData sequence_name;
|
|
int32 last_value;
|
|
int32 increment_by;
|
|
int32 max_value;
|
|
int32 min_value;
|
|
int32 cache_value;
|
|
int32 log_cnt;
|
|
char is_cycled;
|
|
char is_called;
|
|
} FormData_pg_sequence;
|
|
|
|
typedef FormData_pg_sequence *Form_pg_sequence;
|
|
|
|
/*
|
|
* Columns of a sequence relation
|
|
*/
|
|
|
|
#define SEQ_COL_NAME 1
|
|
#define SEQ_COL_LASTVAL 2
|
|
#define SEQ_COL_INCBY 3
|
|
#define SEQ_COL_MAXVALUE 4
|
|
#define SEQ_COL_MINVALUE 5
|
|
#define SEQ_COL_CACHE 6
|
|
#define SEQ_COL_LOG 7
|
|
#define SEQ_COL_CYCLE 8
|
|
#define SEQ_COL_CALLED 9
|
|
|
|
#define SEQ_COL_FIRSTCOL SEQ_COL_NAME
|
|
#define SEQ_COL_LASTCOL SEQ_COL_CALLED
|
|
|
|
/* XLOG stuff */
|
|
#define XLOG_SEQ_LOG 0x00
|
|
|
|
typedef struct xl_seq_rec
|
|
{
|
|
RelFileNode node;
|
|
/* SEQUENCE TUPLE DATA FOLLOWS AT THE END */
|
|
} xl_seq_rec;
|
|
|
|
extern Datum nextval(PG_FUNCTION_ARGS);
|
|
extern Datum currval(PG_FUNCTION_ARGS);
|
|
extern Datum setval(PG_FUNCTION_ARGS);
|
|
extern Datum setval_and_iscalled(PG_FUNCTION_ARGS);
|
|
|
|
extern void DefineSequence(CreateSeqStmt *stmt);
|
|
extern void CloseSequences(void);
|
|
|
|
extern void seq_redo(XLogRecPtr lsn, XLogRecord *rptr);
|
|
extern void seq_undo(XLogRecPtr lsn, XLogRecord *rptr);
|
|
extern void seq_desc(char *buf, uint8 xl_info, char *rec);
|
|
|
|
#endif /* SEQUENCE_H */
|