1 unstable release

new 0.18.0 May 6, 2025

#2416 in Database interfaces

Apache-2.0

260KB
4.5K SLoC

ADBC Driver for Apache DataFusion

Example Usage

use adbc_core::driver_manager::ManagedDriver;
use adbc_core::options::AdbcVersion;
use adbc_core::{Connection, Database, Driver, Statement};
use arrow_cast::pretty::print_batches;
use arrow_array::RecordBatch;

fn main() {
    let mut driver = ManagedDriver::load_dynamic_from_name(
        "adbc_datafusion",
        Some(b"DataFusionDriverInit"),
        AdbcVersion::V110,
    )
    .unwrap();

    let mut database = driver.new_database().unwrap();

    let mut connection = database.new_connection().unwrap();

    let mut statement = connection.new_statement().unwrap();
    let _ = statement.set_sql_query("SELECT 'world' AS Hello");

    let batches: Vec<RecordBatch> = statement.execute().unwrap().map(|b| b.unwrap()).collect();

    print_batches(&batches).unwrap();
}

Dependencies

~76MB
~1.5M SLoC