use std::sync::Arc;
use ordermap::OrderMap;
use crate::catalog::CatalogProvider;
use crate::tree::ast::identifier::{
Identifier as AstIdentifier, SimpleIdentifier as AstSimpleIdentifier,
};
use crate::types::Type;
pub fn catalog_with_tables(tables: Vec<(&str, Vec<(&str, Type)>)>) -> Arc<CatalogProvider> {
let mut datasets = std::collections::HashMap::new();
for (table_name, fields) in tables {
let table_id = AstIdentifier::parse(table_name).unwrap();
let mut field_map = OrderMap::new();
for (field_name, field_type) in fields {
field_map.insert(AstSimpleIdentifier::new(field_name), field_type);
}
datasets.insert(table_id, field_map);
}
Arc::new(CatalogProvider::new(datasets))
}