#[cfg(test)]
mod tests {
use arrow::datatypes::DataType;
use datafusion::error::Result;
use datafusion::execution::session_state::SessionStateBuilder;
use datafusion::execution::FunctionRegistry;
use datafusion::prelude::SessionContext;
use datafusion_comet_spark_expr::create_comet_physical_fun;
#[tokio::test]
async fn test_udf_registration() -> Result<()> {
let mut session_state = SessionStateBuilder::new().build();
let _ = session_state.register_udf(create_comet_physical_fun(
"xxhash64",
DataType::Int64,
&session_state,
None,
)?);
let ctx = SessionContext::new_with_state(session_state);
let df = ctx
.sql("SELECT xxhash64('valid',64) AS hash_value")
.await
.unwrap();
let results = df.collect().await?;
assert!(!results.is_empty(), "Results should not be empty");
Ok(())
}
}