pub struct VirtualDataSlice { /* private fields */ }Expand description
A columnar data slice returned from a virtual server view query.
This struct represents a rectangular slice of data from a view, stored
internally as Arrow builders during population and frozen into a
RecordBatch on first consumption.
Implementations§
Source§impl VirtualDataSlice
impl VirtualDataSlice
pub fn new(config: ViewConfig) -> Self
Sourcepub fn from_arrow_ipc(&mut self, ipc: &[u8]) -> Result<(), Box<dyn Error>>
pub fn from_arrow_ipc(&mut self, ipc: &[u8]) -> Result<(), Box<dyn Error>>
Loads data from Arrow IPC file format bytes, with automatic post-processing based on the view configuration.
When group_by is active, extracts __GROUPING_ID__ and
__ROW_PATH_N__ columns to build self.row_path, then removes
them from the output RecordBatch.
When split_by is active, renames data columns by replacing _
with | (the DuckDB PIVOT separator).
Also coerces non-standard Arrow types (e.g. Decimal128, Int64)
to Perspective-compatible types.
Sourcepub fn render_to_columns_json(&mut self) -> Result<String, Box<dyn Error>>
pub fn render_to_columns_json(&mut self) -> Result<String, Box<dyn Error>>
Serializes the data to a column-oriented JSON string.
Sourcepub fn set_col<T: SetVirtualDataColumn>(
&mut self,
name: &str,
grouping_id: Option<usize>,
index: usize,
value: T,
) -> Result<(), Box<dyn Error>>
pub fn set_col<T: SetVirtualDataColumn>( &mut self, name: &str, grouping_id: Option<usize>, index: usize, value: T, ) -> Result<(), Box<dyn Error>>
Sets a value in a column at the specified row index.
If group_by_index is Some, the value is added to the __ROW_PATH__
column as part of the row’s group-by path. Otherwise, the value is
inserted into the named column.
Creates the column if it does not already exist.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for VirtualDataSlice
impl !RefUnwindSafe for VirtualDataSlice
impl Send for VirtualDataSlice
impl Sync for VirtualDataSlice
impl Unpin for VirtualDataSlice
impl UnsafeUnpin for VirtualDataSlice
impl !UnwindSafe for VirtualDataSlice
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more