pub struct MapVector;Expand description
Operations on MAP vectors.
DuckDB stores maps as LIST<STRUCT{key: K, value: V}>.
The child of the list vector is a STRUCT vector with two fields:
- field index 0: keys
- field index 1: values
§Example
use quack_rs::vector::complex::MapVector;
use libduckdb_sys::duckdb_vector;
// Reading MAP keys from a MAP vector:
// let keys_vec = unsafe { MapVector::keys(map_vector) };
// let vals_vec = unsafe { MapVector::values(map_vector) };Implementations§
Source§impl MapVector
impl MapVector
Sourcepub unsafe fn struct_child(vector: duckdb_vector) -> duckdb_vector
pub unsafe fn struct_child(vector: duckdb_vector) -> duckdb_vector
Returns the child STRUCT vector (contains both keys and values as fields).
§Safety
vector must be a valid DuckDB MAP vector.
Sourcepub unsafe fn keys(vector: duckdb_vector) -> duckdb_vector
pub unsafe fn keys(vector: duckdb_vector) -> duckdb_vector
Returns the keys vector (STRUCT field 0 of the MAP’s child).
§Safety
vector must be a valid DuckDB MAP vector.
Sourcepub unsafe fn values(vector: duckdb_vector) -> duckdb_vector
pub unsafe fn values(vector: duckdb_vector) -> duckdb_vector
Returns the values vector (STRUCT field 1 of the MAP’s child).
§Safety
vector must be a valid DuckDB MAP vector.
Sourcepub unsafe fn total_entry_count(vector: duckdb_vector) -> usize
pub unsafe fn total_entry_count(vector: duckdb_vector) -> usize
Returns the total number of key-value pairs across all rows.
§Safety
vector must be a valid DuckDB MAP vector.
Sourcepub unsafe fn reserve(vector: duckdb_vector, capacity: usize)
pub unsafe fn reserve(vector: duckdb_vector, capacity: usize)
Reserves capacity in the MAP’s child vector for at least capacity entries.
§Safety
vector must be a valid DuckDB MAP vector.
Sourcepub unsafe fn set_size(vector: duckdb_vector, size: usize)
pub unsafe fn set_size(vector: duckdb_vector, size: usize)
Sets the total number of key-value entries written.
§Safety
vector must be a valid DuckDB MAP vector.
Sourcepub unsafe fn set_entry(
vector: duckdb_vector,
row_idx: usize,
offset: u64,
length: u64,
)
pub unsafe fn set_entry( vector: duckdb_vector, row_idx: usize, offset: u64, length: u64, )
Writes the offset/length metadata for a parent MAP row.
This has the same semantics as ListVector::set_entry, since MAP is a LIST.
§Safety
Same as ListVector::set_entry.
Sourcepub unsafe fn get_entry(
vector: duckdb_vector,
row_idx: usize,
) -> duckdb_list_entry
pub unsafe fn get_entry( vector: duckdb_vector, row_idx: usize, ) -> duckdb_list_entry
Returns the duckdb_list_entry for a given MAP row (for reading).
§Safety
Same as ListVector::get_entry.
Sourcepub unsafe fn key_writer(vector: duckdb_vector) -> VectorWriter
pub unsafe fn key_writer(vector: duckdb_vector) -> VectorWriter
Creates a VectorWriter for the keys vector (STRUCT field 0).
§Safety
vector must be a valid DuckDB MAP vector.
Sourcepub unsafe fn value_writer(vector: duckdb_vector) -> VectorWriter
pub unsafe fn value_writer(vector: duckdb_vector) -> VectorWriter
Creates a VectorWriter for the values vector (STRUCT field 1).
§Safety
vector must be a valid DuckDB MAP vector.
Sourcepub unsafe fn key_reader(
vector: duckdb_vector,
element_count: usize,
) -> VectorReader
pub unsafe fn key_reader( vector: duckdb_vector, element_count: usize, ) -> VectorReader
Creates a VectorReader for the keys vector.
§Safety
vectormust be a validDuckDBMAP vector.element_countmust equal the total number of key-value entries.
Sourcepub unsafe fn value_reader(
vector: duckdb_vector,
element_count: usize,
) -> VectorReader
pub unsafe fn value_reader( vector: duckdb_vector, element_count: usize, ) -> VectorReader
Creates a VectorReader for the values vector.
§Safety
vectormust be a validDuckDBMAP vector.element_countmust equal the total number of key-value entries.