storage.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /*-------------------------------------------------------------------------
  2. *
  3. * storage.h
  4. * prototypes for functions in backend/catalog/storage.c
  5. *
  6. *
  7. * Portions Copyright (c) 1996-2022, 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. #include "storage/block.h"
  17. #include "storage/relfilenode.h"
  18. #include "storage/smgr.h"
  19. #include "utils/relcache.h"
  20. /* GUC variables */
  21. extern PGDLLIMPORT int wal_skip_threshold;
  22. extern SMgrRelation RelationCreateStorage(RelFileNode rnode,
  23. char relpersistence,
  24. bool register_delete);
  25. extern void RelationDropStorage(Relation rel);
  26. extern void RelationPreserveStorage(RelFileNode rnode, bool atCommit);
  27. extern void RelationPreTruncate(Relation rel);
  28. extern void RelationTruncate(Relation rel, BlockNumber nblocks);
  29. extern void RelationCopyStorage(SMgrRelation src, SMgrRelation dst,
  30. ForkNumber forkNum, char relpersistence);
  31. extern bool RelFileNodeSkippingWAL(RelFileNode rnode);
  32. extern Size EstimatePendingSyncsSpace(void);
  33. extern void SerializePendingSyncs(Size maxSize, char *startAddress);
  34. extern void RestorePendingSyncs(char *startAddress);
  35. /*
  36. * These functions used to be in storage/smgr/smgr.c, which explains the
  37. * naming
  38. */
  39. extern void smgrDoPendingDeletes(bool isCommit);
  40. extern void smgrDoPendingSyncs(bool isCommit, bool isParallelWorker);
  41. extern int smgrGetPendingDeletes(bool forCommit, RelFileNode **ptr);
  42. extern void AtSubCommit_smgr(void);
  43. extern void AtSubAbort_smgr(void);
  44. extern void PostPrepare_smgr(void);
  45. #endif /* STORAGE_H */