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::ArrowStructData 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::ArrowStructData::Initialize ( ArrowAppendData result,
const LogicalType type,
idx_t  capacity 
)
static
33272 {
33273 auto &children = StructType::GetChildTypes(type);
33274 for (auto &child : children) {
33275 auto child_buffer = ArrowAppender::InitializeChild(child.second, capacity, result.options);
33276 result.child_data.push_back(std::move(child_buffer));
33277 }
33278}

◆ Append()

void duckdb::ArrowStructData::Append ( ArrowAppendData append_data,
Vector input,
idx_t  from,
idx_t  to,
idx_t  input_size 
)
static
33280 {
33281 UnifiedVectorFormat format;
33282 input.ToUnifiedFormat(input_size, format);
33283 idx_t size = to - from;
33284 append_data.AppendValidity(format, from, to);
33285 // append the children of the struct
33286 auto &children = StructVector::GetEntries(input);
33287 for (idx_t child_idx = 0; child_idx < children.size(); child_idx++) {
33288 auto &child = children[child_idx];
33289 auto &child_data = *append_data.child_data[child_idx];
33290 child_data.append_vector(child_data, *child, from, to, size);
33291 }
33292 append_data.row_count += size;
33293}
GOpaque< Size > size(const GMat &src)

◆ Finalize()

void duckdb::ArrowStructData::Finalize ( ArrowAppendData append_data,
const LogicalType type,
ArrowArray result 
)
static
33295 {
33296 result->n_buffers = 1;
33297
33298 auto &child_types = StructType::GetChildTypes(type);
33299 ArrowAppender::AddChildren(append_data, child_types.size());
33300 result->children = append_data.child_pointers.data();
33301 result->n_children = NumericCast<int64_t>(child_types.size());
33302 for (idx_t i = 0; i < child_types.size(); i++) {
33303 auto &child_type = child_types[i].second;
33304 append_data.child_arrays[i] = *ArrowAppender::FinalizeChild(child_type, std::move(append_data.child_data[i]));
33305 }
33306}

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