Autonomy Software C++ 24.5.1
Welcome to the Autonomy Software repository of the Mars Rover Design Team (MRDT) at Missouri University of Science and Technology (Missouri S&T)! API reference contains the source code and other resources for the development of the autonomy software for our Mars rover. The Autonomy Software project aims to compete in the University Rover Challenge (URC) by demonstrating advanced autonomous capabilities and robust navigation algorithms.
Loading...
Searching...
No Matches
duckdb::ArrowBoolData Struct Reference

Static Public Member Functions

static void Initialize (ArrowAppendData &result, const LogicalType &type, idx_t capacity)
 
static void Append (ArrowAppendData &append_data, Vector &input, idx_t from, idx_t to, idx_t input_size)
 
static void Finalize (ArrowAppendData &append_data, const LogicalType &type, ArrowArray *result)
 

Member Function Documentation

◆ Initialize()

void duckdb::ArrowBoolData::Initialize ( ArrowAppendData result,
const LogicalType type,
idx_t  capacity 
)
static
32961 {
32962 auto byte_count = (capacity + 7) / 8;
32963 result.GetMainBuffer().reserve(byte_count);
32964}

◆ Append()

void duckdb::ArrowBoolData::Append ( ArrowAppendData append_data,
Vector input,
idx_t  from,
idx_t  to,
idx_t  input_size 
)
static
32966 {
32967 idx_t size = to - from;
32968 UnifiedVectorFormat format;
32969 input.ToUnifiedFormat(input_size, format);
32970 auto &main_buffer = append_data.GetMainBuffer();
32971 auto &validity_buffer = append_data.GetValidityBuffer();
32972 // we initialize both the validity and the bit set to 1's
32973 ArrowAppendData::ResizeValidity(validity_buffer, append_data.row_count + size);
32974 ArrowAppendData::ResizeValidity(main_buffer, append_data.row_count + size);
32975 auto data = UnifiedVectorFormat::GetData<bool>(format);
32976
32977 auto result_data = main_buffer.GetData<uint8_t>();
32978 auto validity_data = validity_buffer.GetData<uint8_t>();
32979 uint8_t current_bit;
32980 idx_t current_byte;
32981 ArrowAppendData::GetBitPosition(append_data.row_count, current_byte, current_bit);
32982 for (idx_t i = from; i < to; i++) {
32983 auto source_idx = format.sel->get_index(i);
32984 // append the validity mask
32985 if (!format.validity.RowIsValid(source_idx)) {
32986 append_data.SetNull(validity_data, current_byte, current_bit);
32987 } else if (!data[source_idx]) {
32988 ArrowAppendData::UnsetBit(result_data, current_byte, current_bit);
32989 }
32990 ArrowAppendData::NextBit(current_byte, current_bit);
32991 }
32992 append_data.row_count += size;
32993}
GOpaque< Size > size(const GMat &src)
::uint8_t uint8_t

◆ Finalize()

void duckdb::ArrowBoolData::Finalize ( ArrowAppendData append_data,
const LogicalType type,
ArrowArray result 
)
static
32995 {
32996 result->n_buffers = 2;
32997 result->buffers[1] = append_data.GetMainBuffer().data();
32998}

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