PostgreSQL Source Code  git master
sequence.h
Go to the documentation of this file.
1 /*-------------------------------------------------------------------------
2  *
3  * sequence.h
4  * prototypes for sequence.c.
5  *
6  * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
7  * Portions Copyright (c) 1994, Regents of the University of California
8  *
9  * src/include/commands/sequence.h
10  *
11  *-------------------------------------------------------------------------
12  */
13 #ifndef SEQUENCE_H
14 #define SEQUENCE_H
15 
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 
26 {
27  int64 last_value;
28  int64 log_cnt;
29  bool is_called;
31 
33 
34 /*
35  * Columns of a sequence relation
36  */
37 
38 #define SEQ_COL_LASTVAL 1
39 #define SEQ_COL_LOG 2
40 #define SEQ_COL_CALLED 3
41 
42 #define SEQ_COL_FIRSTCOL SEQ_COL_LASTVAL
43 #define SEQ_COL_LASTCOL SEQ_COL_CALLED
44 
45 /* XLOG stuff */
46 #define XLOG_SEQ_LOG 0x00
47 
48 typedef struct xl_seq_rec
49 {
51  /* SEQUENCE TUPLE DATA FOLLOWS AT THE END */
53 
54 extern int64 nextval_internal(Oid relid, bool check_permissions);
56 extern List *sequence_options(Oid relid);
57 
60 extern void SequenceChangePersistence(Oid relid, char newrelpersistence);
61 extern void DeleteSequenceTuple(Oid relid);
62 extern void ResetSequence(Oid seq_relid);
63 extern void ResetSequenceCaches(void);
64 
65 extern void seq_redo(XLogReaderState *record);
66 extern void seq_desc(StringInfo buf, XLogReaderState *record);
67 extern const char *seq_identify(uint8 info);
68 extern void seq_mask(char *page, BlockNumber blkno);
69 
70 #endif /* SEQUENCE_H */
uint32 BlockNumber
Definition: block.h:31
unsigned char uint8
Definition: c.h:504
ObjectAddress DefineSequence(ParseState *pstate, CreateSeqStmt *seq)
Definition: sequence.c:121
void ResetSequence(Oid seq_relid)
Definition: sequence.c:262
FormData_pg_sequence_data * Form_pg_sequence_data
Definition: sequence.h:32
ObjectAddress AlterSequence(ParseState *pstate, AlterSeqStmt *stmt)
Definition: sequence.c:437
struct FormData_pg_sequence_data FormData_pg_sequence_data
const char * seq_identify(uint8 info)
Definition: seqdesc.c:34
void seq_mask(char *page, BlockNumber blkno)
Definition: sequence.c:1879
Datum nextval(PG_FUNCTION_ARGS)
Definition: sequence.c:586
int64 nextval_internal(Oid relid, bool check_permissions)
Definition: sequence.c:616
void SequenceChangePersistence(Oid relid, char newrelpersistence)
Definition: sequence.c:541
void seq_desc(StringInfo buf, XLogReaderState *record)
Definition: seqdesc.c:21
struct xl_seq_rec xl_seq_rec
List * sequence_options(Oid relid)
Definition: sequence.c:1697
void seq_redo(XLogReaderState *record)
Definition: sequence.c:1811
void ResetSequenceCaches(void)
Definition: sequence.c:1864
void DeleteSequenceTuple(Oid relid)
Definition: sequence.c:563
#define PG_FUNCTION_ARGS
Definition: fmgr.h:193
#define stmt
Definition: indent_codes.h:59
static char * buf
Definition: pg_test_fsync.c:73
uintptr_t Datum
Definition: postgres.h:64
unsigned int Oid
Definition: postgres_ext.h:31
Definition: pg_list.h:54
RelFileLocator locator
Definition: sequence.h:50