PostgreSQL Source Code git master
storage.h
Go to the documentation of this file.
1/*-------------------------------------------------------------------------
2 *
3 * storage.h
4 * prototypes for functions in backend/catalog/storage.c
5 *
6 *
7 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
8 * Portions Copyright (c) 1994, Regents of the University of California
9 *
10 * src/include/catalog/storage.h
11 *
12 *-------------------------------------------------------------------------
13 */
14#ifndef STORAGE_H
15#define STORAGE_H
16
17#include "storage/block.h"
19#include "storage/smgr.h"
20#include "utils/relcache.h"
21
22/* GUC variables */
24
26 char relpersistence,
27 bool register_delete);
28extern void RelationDropStorage(Relation rel);
29extern void RelationPreserveStorage(RelFileLocator rlocator, bool atCommit);
30extern void RelationPreTruncate(Relation rel);
31extern void RelationTruncate(Relation rel, BlockNumber nblocks);
33 ForkNumber forkNum, char relpersistence);
34extern bool RelFileLocatorSkippingWAL(RelFileLocator rlocator);
36extern void SerializePendingSyncs(Size maxSize, char *startAddress);
37extern void RestorePendingSyncs(char *startAddress);
38
39/*
40 * These functions used to be in storage/smgr/smgr.c, which explains the
41 * naming
42 */
43extern void smgrDoPendingDeletes(bool isCommit);
44extern void smgrDoPendingSyncs(bool isCommit, bool isParallelWorker);
45extern int smgrGetPendingDeletes(bool forCommit, RelFileLocator **ptr);
46extern void AtSubCommit_smgr(void);
47extern void AtSubAbort_smgr(void);
48extern void PostPrepare_smgr(void);
49
50#endif /* STORAGE_H */
uint32 BlockNumber
Definition: block.h:31
#define PGDLLIMPORT
Definition: c.h:1291
size_t Size
Definition: c.h:576
ForkNumber
Definition: relpath.h:56
void RelationPreserveStorage(RelFileLocator rlocator, bool atCommit)
Definition: storage.c:251
void RelationPreTruncate(Relation rel)
Definition: storage.c:449
void SerializePendingSyncs(Size maxSize, char *startAddress)
Definition: storage.c:584
void AtSubCommit_smgr(void)
Definition: storage.c:939
Size EstimatePendingSyncsSpace(void)
Definition: storage.c:571
void AtSubAbort_smgr(void)
Definition: storage.c:959
void RelationCopyStorage(SMgrRelation src, SMgrRelation dst, ForkNumber forkNum, char relpersistence)
Definition: storage.c:477
bool RelFileLocatorSkippingWAL(RelFileLocator rlocator)
Definition: storage.c:557
int smgrGetPendingDeletes(bool forCommit, RelFileLocator **ptr)
Definition: storage.c:877
void PostPrepare_smgr(void)
Definition: storage.c:918
SMgrRelation RelationCreateStorage(RelFileLocator rlocator, char relpersistence, bool register_delete)
Definition: storage.c:121
void RestorePendingSyncs(char *startAddress)
Definition: storage.c:635
void RelationDropStorage(Relation rel)
Definition: storage.c:206
void RelationTruncate(Relation rel, BlockNumber nblocks)
Definition: storage.c:288
PGDLLIMPORT int wal_skip_threshold
Definition: storage.c:39
void smgrDoPendingSyncs(bool isCommit, bool isParallelWorker)
Definition: storage.c:725
void smgrDoPendingDeletes(bool isCommit)
Definition: storage.c:657