pub fn schedule_and_decode_blocking(
column_infos: Vec<Arc<ColumnInfo>>,
requested_rows: RequestedRows,
filter: FilterExpression,
column_indices: Vec<u32>,
target_schema: Arc<Schema>,
config: SchedulerDecoderConfig,
) -> Result<Box<dyn RecordBatchReader>>
Expand description
Schedules and decodes the requested data in a blocking fashion
This function is a blocking version of schedule_and_decode
. It schedules the requested data
and decodes it in the current thread.
This can be useful when the disk is fast (or the data is in memory) and the amount of data is relatively small. For example, when doing a take against NVMe or in-memory data.
This should NOT be used for full scans. Even if the data is in memory this function will not parallelize the decode and will be slower than the async version. Full scans typically make relatively few IOPs and so the asynchronous overhead is much smaller.
This method will first completely run the scheduling process. Then it will run the decode process.