use std::sync::Arc;
use super::{types::SqlTypeDefinition, SqlTuple, Table};
pub struct PlannedStatement {
pub common: PlannedCommon,
pub plan: Arc<Plan>,
}
pub struct PlannedCommon {}
pub enum Plan {
CartesianJoin(CartesianJoin),
FullTableScan(FullTableScan),
ModifyTable(ModifyTablePlan),
StaticData(Arc<Vec<SqlTuple>>),
}
pub struct CartesianJoin {
pub left: Arc<Plan>,
pub right: Arc<Plan>,
}
pub struct FullTableScan {
pub src_table: Arc<Table>,
pub target_type: Arc<SqlTypeDefinition>,
}
pub struct ModifyTablePlan {
pub table: Arc<Table>,
pub source: Arc<Plan>,
}