mongreldb-query 0.60.2

DataFusion SQL + Arrow frontend for MongrelDB.
Documentation
use arrow::array::Int64Array;
use mongreldb_core::Database;
use mongreldb_query::MongrelSession;
use std::sync::Arc;
use tempfile::tempdir;

#[tokio::test]
async fn sql_set_not_null_backfills_existing_rows_from_default() {
    let dir = tempdir().unwrap();
    let db = Arc::new(Database::create(dir.path()).unwrap());
    let session = MongrelSession::open(db).unwrap();
    session
        .run("CREATE TABLE items (id BIGINT PRIMARY KEY, score BIGINT)")
        .await
        .unwrap();
    session
        .run("INSERT INTO items (id) VALUES (1), (2)")
        .await
        .unwrap();
    session
        .run("ALTER TABLE items ALTER COLUMN score SET DEFAULT 7")
        .await
        .unwrap();
    session
        .run("ALTER TABLE items ALTER COLUMN score SET NOT NULL")
        .await
        .unwrap();

    let batches = session
        .run("SELECT score FROM items ORDER BY id")
        .await
        .unwrap();
    let values = batches[0]
        .column(0)
        .as_any()
        .downcast_ref::<Int64Array>()
        .unwrap();
    assert_eq!(values.values(), &[7, 7]);
}