Kùzu C++ API
Loading...
Searching...
No Matches
kuzu::common::NullMask Class Reference

#include <null_mask.h>

Public Member Functions

 NullMask (uint64_t capacity)
 
 NullMask (std::span< uint64_t > nullData, bool mayContainNulls)
 
void setAllNonNull ()
 
void setAllNull ()
 
bool hasNoNullsGuarantee () const
 
uint64_t countNulls () const
 
void setNull (uint32_t pos, bool isNull)
 
bool isNull (uint32_t pos) const
 
const uint64_t * getData () const
 
bool copyFrom (const NullMask &nullMask, uint64_t srcOffset, uint64_t dstOffset, uint64_t numBitsToCopy, bool invert=false)
 
bool copyFromNullBits (const uint64_t *srcNullEntries, uint64_t srcOffset, uint64_t dstOffset, uint64_t numBitsToCopy, bool invert=false)
 
void setNullFromRange (uint64_t offset, uint64_t numBitsToSet, bool isNull)
 
void resize (uint64_t capacity)
 
void operator|= (const NullMask &other)
 

Static Public Member Functions

static void setNull (uint64_t *nullEntries, uint32_t pos, bool isNull)
 
static bool isNull (const uint64_t *nullEntries, uint32_t pos)
 
static uint64_t getNumNullEntries (uint64_t numNullBits)
 
static bool copyNullMask (const uint64_t *srcNullEntries, uint64_t srcOffset, uint64_t *dstNullEntries, uint64_t dstOffset, uint64_t numBitsToCopy, bool invert=false)
 
static void setNullRange (uint64_t *nullEntries, uint64_t offset, uint64_t numBitsToSet, bool isNull)
 
static std::pair< bool, bool > getMinMax (const uint64_t *nullEntries, uint64_t numValues)
 

Static Public Attributes

static constexpr uint64_t NO_NULL_ENTRY = 0
 
static constexpr uint64_t ALL_NULL_ENTRY = ~uint64_t(NO_NULL_ENTRY)
 
static constexpr uint64_t NUM_BITS_PER_NULL_ENTRY_LOG2 = 6
 
static constexpr uint64_t NUM_BITS_PER_NULL_ENTRY = (uint64_t)1 << NUM_BITS_PER_NULL_ENTRY_LOG2
 
static constexpr uint64_t NUM_BYTES_PER_NULL_ENTRY = NUM_BITS_PER_NULL_ENTRY >> 3
 

Constructor & Destructor Documentation

◆ NullMask() [1/2]

kuzu::common::NullMask::NullMask ( uint64_t capacity)
inlineexplicit

◆ NullMask() [2/2]

kuzu::common::NullMask::NullMask ( std::span< uint64_t > nullData,
bool mayContainNulls )
inlineexplicit

Member Function Documentation

◆ copyFrom()

bool kuzu::common::NullMask::copyFrom ( const NullMask & nullMask,
uint64_t srcOffset,
uint64_t dstOffset,
uint64_t numBitsToCopy,
bool invert = false )
inline

◆ copyFromNullBits()

bool kuzu::common::NullMask::copyFromNullBits ( const uint64_t * srcNullEntries,
uint64_t srcOffset,
uint64_t dstOffset,
uint64_t numBitsToCopy,
bool invert = false )

◆ copyNullMask()

static bool kuzu::common::NullMask::copyNullMask ( const uint64_t * srcNullEntries,
uint64_t srcOffset,
uint64_t * dstNullEntries,
uint64_t dstOffset,
uint64_t numBitsToCopy,
bool invert = false )
static

◆ countNulls()

uint64_t kuzu::common::NullMask::countNulls ( ) const

◆ getData()

const uint64_t * kuzu::common::NullMask::getData ( ) const
inline

◆ getMinMax()

static std::pair< bool, bool > kuzu::common::NullMask::getMinMax ( const uint64_t * nullEntries,
uint64_t numValues )
static

◆ getNumNullEntries()

static uint64_t kuzu::common::NullMask::getNumNullEntries ( uint64_t numNullBits)
inlinestatic

◆ hasNoNullsGuarantee()

bool kuzu::common::NullMask::hasNoNullsGuarantee ( ) const
inline

◆ isNull() [1/2]

static bool kuzu::common::NullMask::isNull ( const uint64_t * nullEntries,
uint32_t pos )
inlinestatic

◆ isNull() [2/2]

bool kuzu::common::NullMask::isNull ( uint32_t pos) const
inline

◆ operator|=()

void kuzu::common::NullMask::operator|= ( const NullMask & other)

◆ resize()

void kuzu::common::NullMask::resize ( uint64_t capacity)

◆ setAllNonNull()

void kuzu::common::NullMask::setAllNonNull ( )
inline

◆ setAllNull()

void kuzu::common::NullMask::setAllNull ( )
inline

◆ setNull() [1/2]

void kuzu::common::NullMask::setNull ( uint32_t pos,
bool isNull )
inline

◆ setNull() [2/2]

static void kuzu::common::NullMask::setNull ( uint64_t * nullEntries,
uint32_t pos,
bool isNull )
static

◆ setNullFromRange()

void kuzu::common::NullMask::setNullFromRange ( uint64_t offset,
uint64_t numBitsToSet,
bool isNull )

◆ setNullRange()

static void kuzu::common::NullMask::setNullRange ( uint64_t * nullEntries,
uint64_t offset,
uint64_t numBitsToSet,
bool isNull )
static

Member Data Documentation

◆ ALL_NULL_ENTRY

uint64_t kuzu::common::NullMask::ALL_NULL_ENTRY = ~uint64_t(NO_NULL_ENTRY)
staticconstexpr

◆ NO_NULL_ENTRY

uint64_t kuzu::common::NullMask::NO_NULL_ENTRY = 0
staticconstexpr

◆ NUM_BITS_PER_NULL_ENTRY

uint64_t kuzu::common::NullMask::NUM_BITS_PER_NULL_ENTRY = (uint64_t)1 << NUM_BITS_PER_NULL_ENTRY_LOG2
staticconstexpr

◆ NUM_BITS_PER_NULL_ENTRY_LOG2

uint64_t kuzu::common::NullMask::NUM_BITS_PER_NULL_ENTRY_LOG2 = 6
staticconstexpr

◆ NUM_BYTES_PER_NULL_ENTRY

uint64_t kuzu::common::NullMask::NUM_BYTES_PER_NULL_ENTRY = NUM_BITS_PER_NULL_ENTRY >> 3
staticconstexpr

The documentation for this class was generated from the following file: