2
0

brin_revmap.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*
  2. * brin_revmap.h
  3. * Prototypes for BRIN reverse range maps
  4. *
  5. * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
  6. * Portions Copyright (c) 1994, Regents of the University of California
  7. *
  8. * IDENTIFICATION
  9. * src/include/access/brin_revmap.h
  10. */
  11. #ifndef BRIN_REVMAP_H
  12. #define BRIN_REVMAP_H
  13. #include "access/brin_tuple.h"
  14. #include "storage/block.h"
  15. #include "storage/buf.h"
  16. #include "storage/itemptr.h"
  17. #include "storage/off.h"
  18. #include "utils/relcache.h"
  19. #include "utils/snapshot.h"
  20. /* struct definition lives in brin_revmap.c */
  21. typedef struct BrinRevmap BrinRevmap;
  22. extern BrinRevmap *brinRevmapInitialize(Relation idxrel,
  23. BlockNumber *pagesPerRange, Snapshot snapshot);
  24. extern void brinRevmapTerminate(BrinRevmap *revmap);
  25. extern void brinRevmapExtend(BrinRevmap *revmap,
  26. BlockNumber heapBlk);
  27. extern Buffer brinLockRevmapPageForUpdate(BrinRevmap *revmap,
  28. BlockNumber heapBlk);
  29. extern void brinSetHeapBlockItemptr(Buffer buf, BlockNumber pagesPerRange,
  30. BlockNumber heapBlk, ItemPointerData tid);
  31. extern BrinTuple *brinGetTupleForHeapBlock(BrinRevmap *revmap,
  32. BlockNumber heapBlk, Buffer *buf, OffsetNumber *off,
  33. Size *size, int mode, Snapshot snapshot);
  34. extern bool brinRevmapDesummarizeRange(Relation idxrel, BlockNumber heapBlk);
  35. #endif /* BRIN_REVMAP_H */