akar_processor/physical/write_ops/
physicalexplain.rs1use crate::physical::types::{OperatorResult, PhysicalOperatorExec};
3use akar_common::types::PhysicalTypeID;
4use akar_common::vector::DataChunk;
5use std::sync::Arc;
6
7pub struct PhysicalExplain {
14 pub inner_plan: String,
16}
17
18impl PhysicalOperatorExec for PhysicalExplain {
19 fn operator_type(&self) -> &str {
20 "explain"
21 }
22
23 fn execute(&self, _input: Vec<DataChunk>) -> OperatorResult {
24 let plan_str = self.inner_plan.clone();
25 let array = Arc::new(arrow::array::StringArray::from(vec![plan_str]));
28 let arrow = akar_common::arrow_vector::ArrowVector::new(array, PhysicalTypeID::String);
29 let chunk = DataChunk {
30 fields: vec![arrow.array],
31 field_types: vec![PhysicalTypeID::String],
32 size: 1,
33 field_names: vec![],
34 sel_vector: None,
35 };
36 Ok(vec![chunk])
37 }
38}