PostgreSQL Source Code  git master
tidstore.h
Go to the documentation of this file.
1 /*-------------------------------------------------------------------------
2  *
3  * tidstore.h
4  * TidStore interface.
5  *
6  *
7  * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
8  * Portions Copyright (c) 1994, Regents of the University of California
9  *
10  * src/include/access/tidstore.h
11  *
12  *-------------------------------------------------------------------------
13  */
14 #ifndef TIDSTORE_H
15 #define TIDSTORE_H
16 
17 #include "storage/itemptr.h"
18 #include "utils/dsa.h"
19 
20 typedef struct TidStore TidStore;
21 typedef struct TidStoreIter TidStoreIter;
22 
23 /* Result struct for TidStoreIterateNext */
24 typedef struct TidStoreIterResult
25 {
31 
32 extern TidStore *TidStoreCreateLocal(size_t max_bytes, bool insert_only);
33 extern TidStore *TidStoreCreateShared(size_t max_bytes, int tranche_id);
34 extern TidStore *TidStoreAttach(dsa_handle area_handle, dsa_pointer handle);
35 extern void TidStoreDetach(TidStore *ts);
36 extern void TidStoreLockExclusive(TidStore *ts);
37 extern void TidStoreLockShare(TidStore *ts);
38 extern void TidStoreUnlock(TidStore *ts);
39 extern void TidStoreDestroy(TidStore *ts);
40 extern void TidStoreSetBlockOffsets(TidStore *ts, BlockNumber blkno, OffsetNumber *offsets,
41  int num_offsets);
42 extern bool TidStoreIsMember(TidStore *ts, ItemPointer tid);
45 extern void TidStoreEndIterate(TidStoreIter *iter);
46 extern size_t TidStoreMemoryUsage(TidStore *ts);
48 extern dsa_area *TidStoreGetDSA(TidStore *ts);
49 
50 #endif /* TIDSTORE_H */
uint32 BlockNumber
Definition: block.h:31
uint64 dsa_pointer
Definition: dsa.h:62
dsm_handle dsa_handle
Definition: dsa.h:136
uint16 OffsetNumber
Definition: off.h:24
BlockNumber blkno
Definition: tidstore.h:26
OffsetNumber * offsets
Definition: tidstore.h:29
Definition: dsa.c:348
TidStore * TidStoreAttach(dsa_handle area_handle, dsa_pointer handle)
Definition: tidstore.c:255
void TidStoreEndIterate(TidStoreIter *iter)
Definition: tidstore.c:536
void TidStoreDetach(TidStore *ts)
Definition: tidstore.c:280
TidStoreIterResult * TidStoreIterateNext(TidStoreIter *iter)
Definition: tidstore.c:511
void TidStoreLockShare(TidStore *ts)
Definition: tidstore.c:305
TidStore * TidStoreCreateShared(size_t max_bytes, int tranche_id)
Definition: tidstore.c:213
void TidStoreDestroy(TidStore *ts)
Definition: tidstore.c:328
dsa_area * TidStoreGetDSA(TidStore *ts)
Definition: tidstore.c:563
void TidStoreUnlock(TidStore *ts)
Definition: tidstore.c:312
TidStore * TidStoreCreateLocal(size_t max_bytes, bool insert_only)
Definition: tidstore.c:165
struct TidStoreIterResult TidStoreIterResult
bool TidStoreIsMember(TidStore *ts, ItemPointer tid)
Definition: tidstore.c:432
TidStoreIter * TidStoreBeginIterate(TidStore *ts)
Definition: tidstore.c:482
void TidStoreLockExclusive(TidStore *ts)
Definition: tidstore.c:298
dsa_pointer TidStoreGetHandle(TidStore *ts)
Definition: tidstore.c:571
void TidStoreSetBlockOffsets(TidStore *ts, BlockNumber blkno, OffsetNumber *offsets, int num_offsets)
Definition: tidstore.c:356
size_t TidStoreMemoryUsage(TidStore *ts)
Definition: tidstore.c:551