partiql 0.14.0

PartiQL in Rust
Documentation
use crate::common::{eval_query_with_catalog, TestError};
use assert_matches::assert_matches;
use partiql_catalog::catalog::PartiqlCatalog;
use partiql_catalog::extension::Extension;
use partiql_eval::eval::Evaluated;
use partiql_eval::plan::EvaluationMode;
use partiql_extension_value_functions::PartiqlValueFnExtension;

mod common;

#[track_caller]
#[inline]
pub fn eval(statement: &str, mode: EvaluationMode) -> Result<Evaluated, TestError<'_>> {
    let mut catalog = PartiqlCatalog::default();
    let ext = PartiqlValueFnExtension::default();
    ext.load(&mut catalog)?;
    let catalog = catalog.to_shared_catalog();

    eval_query_with_catalog(statement, &catalog, mode)
}

#[test]
fn select_star_unpivot() {
    let query = "SELECT * FROM UNPIVOT {'amzn': 840.05, 'tdc': 31.06} AS price AT sym";

    let res = eval(query, EvaluationMode::Permissive);
    assert_matches!(res, Ok(_));
    let res = res.unwrap().result;
    insta::assert_debug_snapshot!(res);
}