hamelin_legacy 0.3.9

Legacy AST translation code for Hamelin (to be deprecated)
Documentation
use crate::ast::pipeline::HamelinPipeline;
use crate::ast::sort_expression::HamelinSortExpression;
use crate::translation::sql_query_helpers::add_order_expression;
use crate::translation::PendingQuery;
use hamelin_lib::antlr::hamelinparser::{SortCommandContext, SortCommandContextAttrs};
use hamelin_lib::err::TranslationErrors;
use hamelin_lib::func::def::FunctionTranslationContext;

pub fn translate(
    ctx: &SortCommandContext<'static>,
    pipeline: &HamelinPipeline,
    previous: &PendingQuery,
) -> Result<PendingQuery, TranslationErrors> {
    let all = ctx.sortExpression_all().clone();
    let expr_ctx = pipeline
        .context
        .expression_translation_context(&previous.env, FunctionTranslationContext::default());
    let res = PendingQuery::new(
        add_order_expression(
            previous.query.clone(),
            HamelinSortExpression::new(all, expr_ctx).translate()?.0,
            &previous.env,
        ),
        previous.env.clone(),
    );

    Ok(res)
}