codekingpro/portable-devtools
115k
1/*-------------------------------------------------------------------------2 *3 * sequence.h4 * prototypes for sequence.c.5 *6 * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group7 * Portions Copyright (c) 1994, Regents of the University of California8 *9 * src/include/commands/sequence.h10 *11 *-------------------------------------------------------------------------12 */13#ifndef SEQUENCE_H14#define SEQUENCE_H15 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/relfilelocator.h"23 24 25typedef struct FormData_pg_sequence_data26{27 int64 last_value;28 int64 log_cnt;29 bool is_called;30} FormData_pg_sequence_data;31 32typedef FormData_pg_sequence_data *Form_pg_sequence_data;33 34/*35 * Columns of a sequence relation36 */37 38#define SEQ_COL_LASTVAL 139#define SEQ_COL_LOG 240#define SEQ_COL_CALLED 341 42#define SEQ_COL_FIRSTCOL SEQ_COL_LASTVAL43#define SEQ_COL_LASTCOL SEQ_COL_CALLED44 45/* XLOG stuff */46#define XLOG_SEQ_LOG 0x0047 48typedef struct xl_seq_rec49{50 RelFileLocator locator;51 /* SEQUENCE TUPLE DATA FOLLOWS AT THE END */52} xl_seq_rec;53 54extern int64 nextval_internal(Oid relid, bool check_permissions);55extern Datum nextval(PG_FUNCTION_ARGS);56extern List *sequence_options(Oid relid);57 58extern ObjectAddress DefineSequence(ParseState *pstate, CreateSeqStmt *seq);59extern ObjectAddress AlterSequence(ParseState *pstate, AlterSeqStmt *stmt);60extern void SequenceChangePersistence(Oid relid, char newrelpersistence);61extern void DeleteSequenceTuple(Oid relid);62extern void ResetSequence(Oid seq_relid);63extern void ResetSequenceCaches(void);64 65extern void seq_redo(XLogReaderState *record);66extern void seq_desc(StringInfo buf, XLogReaderState *record);67extern const char *seq_identify(uint8 info);68extern void seq_mask(char *page, BlockNumber blkno);69 70#endif /* SEQUENCE_H */71 