use arrow::datatypes::{DataType, Field, Schema};
use datafusion::{
catalog::TableReference,
common::{Column, DFSchema},
logical_expr::Expr,
};
pub(crate) fn df_column(table_name: &str, column: &str) -> Expr {
Expr::Column(Column::new(
Some(TableReference::from(table_name)),
column.to_string(),
))
}
pub(crate) fn df_schema(table_name: &str, pairs: Vec<(&str, DataType)>) -> DFSchema {
let arrow_schema = Schema::new(
pairs
.into_iter()
.map(|(name, data_type)| Field::new(name, data_type, false))
.collect::<Vec<_>>(),
);
DFSchema::try_from_qualified_schema(table_name, &arrow_schema).unwrap()
}