use selene_core::DbString;
use crate::{
ProcedureHandle, ProcedureMutability, ProcedureOutputSchema, ProcedureTier, SourceSpan,
};
use super::{BindingTableColumn, ProjectExpr};
#[derive(Clone, Debug)]
pub struct PlannedCall {
pub optional: bool,
pub procedure: Box<[DbString]>,
pub handle: ProcedureHandle,
pub args: Vec<ProjectExpr>,
pub yield_cols: Vec<PlannedYieldItem>,
pub output_schema: ProcedureOutputSchema,
pub yield_schema: Vec<BindingTableColumn>,
pub tier: ProcedureTier,
pub mutability: ProcedureMutability,
pub span: SourceSpan,
}
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct PlannedYieldItem {
pub column: YieldKind,
pub alias: Option<DbString>,
pub span: SourceSpan,
}
#[derive(Clone, Debug, Eq, PartialEq)]
pub enum YieldKind {
Star,
Named(DbString),
}