00001 /*------------------------------------------------------------------------- 00002 * 00003 * storage.h 00004 * prototypes for functions in backend/catalog/storage.c 00005 * 00006 * 00007 * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group 00008 * Portions Copyright (c) 1994, Regents of the University of California 00009 * 00010 * src/include/catalog/storage.h 00011 * 00012 *------------------------------------------------------------------------- 00013 */ 00014 #ifndef STORAGE_H 00015 #define STORAGE_H 00016 00017 #include "storage/block.h" 00018 #include "storage/relfilenode.h" 00019 #include "utils/relcache.h" 00020 00021 extern void RelationCreateStorage(RelFileNode rnode, char relpersistence); 00022 extern void RelationDropStorage(Relation rel); 00023 extern void RelationPreserveStorage(RelFileNode rnode, bool atCommit); 00024 extern void RelationTruncate(Relation rel, BlockNumber nblocks); 00025 00026 /* 00027 * These functions used to be in storage/smgr/smgr.c, which explains the 00028 * naming 00029 */ 00030 extern void smgrDoPendingDeletes(bool isCommit); 00031 extern int smgrGetPendingDeletes(bool forCommit, RelFileNode **ptr); 00032 extern void AtSubCommit_smgr(void); 00033 extern void AtSubAbort_smgr(void); 00034 extern void PostPrepare_smgr(void); 00035 00036 #endif /* STORAGE_H */