use ordermap::OrderMap;
use hamelin_lib::func::def::FunctionTranslationContext;
use hamelin_lib::sql::expression::identifier::SimpleIdentifier;
use hamelin_lib::sql::query::SQLQuery;
use crate::TranslationRegistry;
#[derive(Debug)]
pub struct TranslationContext<'a> {
pub registry: &'a TranslationRegistry,
pub ctes: OrderMap<SimpleIdentifier, SQLQuery>,
pub fctx: FunctionTranslationContext,
}
impl<'a> TranslationContext<'a> {
pub fn new(registry: &'a TranslationRegistry) -> Self {
Self {
registry,
ctes: OrderMap::new(),
fctx: FunctionTranslationContext::default(),
}
}
pub fn add_cte(&mut self, name: SimpleIdentifier, query: SQLQuery) {
self.ctes.insert(name, query);
}
}