cartel-sqlite 0.27.2

SQLite driver for the dope runtime
Documentation
use cartel_sqlite::Catalog as _;
use common::engine::mutation::*;

pub mod common;

#[test]
fn preserves_commands() {
    let entries = Commands::STATEMENTS;
    assert_eq!(entries.len(), 6);
    assert_eq!(
        entries[0].sql(),
        "INSERT INTO \"items\" AS q0_0 (\"id\",\"select\") VALUES (?1,?2)"
    );
    assert_eq!((entries[0].parameters(), entries[0].columns()), (2, 0));
    assert!(
        entries[1]
            .sql()
            .starts_with("UPDATE \"items\" AS q0_0 SET \"select\" = ")
    );
    assert_eq!((entries[1].parameters(), entries[1].columns()), (2, 0));
    assert!(
        entries[2]
            .sql()
            .starts_with("DELETE FROM \"items\" AS q0_0 WHERE ")
    );
    assert_eq!((entries[2].parameters(), entries[2].columns()), (1, 0));
}

#[test]
fn retains_qualified_table() {
    let entry = Commands::STATEMENTS[3];
    assert_eq!(
        entry.sql(),
        "INSERT INTO \"items\" AS q0_0 (\"id\",\"select\") VALUES (?1,?2) RETURNING \"id\",\"select\""
    );
    assert_eq!((entry.parameters(), entry.columns()), (2, 2));
}

#[test]
fn preserves_shorthand() {
    let legacy = Commands::STATEMENTS[4];
    let short = Commands::STATEMENTS[5];
    assert_eq!(
        (legacy.sql(), legacy.parameters(), legacy.columns()),
        (short.sql(), short.parameters(), short.columns()),
    );
}