1 /*-------------------------------------------------------------------------
2  *
3  * storage.h
4  *	  prototypes for functions in backend/catalog/storage.c
5  *
6  *
7  * Portions Copyright (c) 1996-2018, 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"
18 #include "storage/relfilenode.h"
19 #include "utils/relcache.h"
20 
21 extern void RelationCreateStorage(RelFileNode rnode, char relpersistence);
22 extern void RelationDropStorage(Relation rel);
23 extern void RelationPreserveStorage(RelFileNode rnode, bool atCommit);
24 extern void RelationTruncate(Relation rel, BlockNumber nblocks);
25 
26 /*
27  * These functions used to be in storage/smgr/smgr.c, which explains the
28  * naming
29  */
30 extern void smgrDoPendingDeletes(bool isCommit);
31 extern int	smgrGetPendingDeletes(bool forCommit, RelFileNode **ptr);
32 extern void AtSubCommit_smgr(void);
33 extern void AtSubAbort_smgr(void);
34 extern void PostPrepare_smgr(void);
35 
36 #endif							/* STORAGE_H */
37