use glaredb_error::{Result, not_implemented};
use crate::logical::binder::bind_context::BindContext;
use crate::logical::binder::bind_copy::{BoundCopyTo, BoundCopyToSource};
use crate::logical::operator::LogicalOperator;
use crate::logical::planner::plan_from::FromPlanner;
use crate::logical::planner::plan_query::QueryPlanner;
#[derive(Debug)]
pub struct CopyPlanner;
impl CopyPlanner {
pub fn plan(
&self,
bind_context: &mut BindContext,
copy_to: BoundCopyTo,
) -> Result<LogicalOperator> {
let _source = match copy_to.source {
BoundCopyToSource::Query(query) => QueryPlanner.plan(bind_context, *query)?,
BoundCopyToSource::Table(table) => FromPlanner.plan(bind_context, *table)?,
};
not_implemented!("Plan COPY TO")
}
}