49 maskMap.insert({tableID, std::move(mask)});
54 for (
auto& [tableID, mask] : maskMap) {
55 result.emplace(tableID, mask.get());
63 return maskMap.at(tableID).get();
67 if (maskMap.contains(tableID)) {
68 pinnedMask = maskMap.at(tableID).get();
78 return pinnedMask->isMasked(offset);
#define KUZU_API
Definition api.h:25
#define KU_ASSERT(condition)
Definition assert.h:24
bool hasPinnedMask() const
Definition mask.h:73
void addMask(table_id_t tableID, std::unique_ptr< SemiMask > mask)
Definition mask.h:47
table_id_map_t< SemiMask * > getMasks() const
Definition mask.h:52
NodeOffsetMaskMap()=default
offset_t getNumMaskedNode() const
bool containsTableID(table_id_t tableID) const
Definition mask.h:60
SemiMask * getPinnedMask() const
Definition mask.h:74
bool valid(offset_t offset) const
Definition mask.h:76
void pin(table_id_t tableID)
Definition mask.h:66
bool valid(nodeID_t nodeID) const
Definition mask.h:80
SemiMask * getOffsetMask(table_id_t tableID) const
Definition mask.h:61
void enable()
Definition mask.h:30
virtual offset_vec_t collectMaskedNodes(uint64_t size) const =0
virtual void mask(offset_t nodeOffset)=0
virtual bool isMasked(offset_t startNodeOffset)=0
virtual offset_vec_t range(uint32_t start, uint32_t end)=0
bool isEnabled() const
Definition mask.h:29
virtual ~SemiMask()=default
offset_t getMaxOffset() const
Definition mask.h:27
virtual uint64_t getNumMaskedNodes() const =0
virtual void maskRange(offset_t startNodeOffset, offset_t endNodeOffset)=0
SemiMask(offset_t maxOffset)
Definition mask.h:11
Definition array_utils.h:7
std::unordered_map< table_id_t, T > table_id_map_t
Definition types.h:76
oid_t table_id_t
Definition types.h:72
internalID_t nodeID_t
Definition types.h:83
std::vector< offset_t > offset_vec_t
Definition types.h:88
uint64_t offset_t
Definition types.h:79
Definition array_utils.h:7
static KUZU_API std::unique_ptr< SemiMask > createMask(offset_t maxOffset)
offset_t offset
Definition types.h:91
table_id_t tableID
Definition types.h:92