duckdb-slt

Crates.ioduckdb-slt
lib.rsduckdb-slt
version0.1.2
created_at2026-01-24 00:28:01.944625+00
updated_at2026-01-24 18:31:44.565857+00
descriptionCommand-line sqllogictest runner for DuckDB.
homepagehttps://github.com/dotneB/duckdb-sqllogictest-rs
repositoryhttps://github.com/dotneB/duckdb-sqllogictest-rs
max_upload_size
id2065781
size467,491
(dotneB)

documentation

https://docs.rs/duckdb-slt

README

duckdb-slt

Command-line sqllogictest runner for DuckDB.

Latest Version MIT License Downloads CI

Install

cargo install duckdb-slt

Or using binary install:

cargo binstall duckdb-slt

Usage

Run one or more sqllogictest files:

duckdb-slt tests/fixtures/pass.slt
duckdb-slt suite/a.slt suite/b.slt

Run using a glob pattern

duckdb-slt "tests/fixtures/pass*.slt"

Set a working directory for resolving relative paths:

duckdb-slt --workdir suite tests/a.slt

Enable extensions before running tests:

duckdb-slt --extensions json tests/fixtures/pass.slt

Short forms:

duckdb-slt -e json -w suite tests/fixtures/pass.slt

Run an extension's integration tests (example extension: quack):

duckdb-slt.exe -e ./target/release/quack.duckdb_extension -u -w "$(CURDIR)" "$(CURDIR)/test/sql/*.test"

Show help and version:

duckdb-slt --help
duckdb-slt --version

CLI

Options:

  • --db <PATH>: DuckDB database file path (defaults to in-memory)
  • -u, --allow-unsigned-extensions: allow loading unsigned DuckDB extensions (risky; opt-in)
  • -e, --extensions <EXT>: enable extensions before running tests (repeatable)
  • -w, --workdir <DIR>: set working directory before resolving relative paths
  • --fail-fast: stop after the first test mismatch

Extensions

Each --extensions <EXT> entry runs INSTALL then LOAD, in command-line order.

Supported forms:

  • json (name)
  • spatial@community (named repository)
  • custom_extension@https://my-extension-repo.example (custom repository URL)
  • path/to/ext.duckdb_extension (local extension file)

Compatibility Notes

Compared to duckdb-sqllogictest-python, an important difference is that duckdb-slt does not support the require keyword (for example require quack). If you want to run the same test files with duckdb-slt, those require ... lines need to be commented out.

Exit Codes

  • 0: all tests passed
  • 2: at least one test failed due to an expectation mismatch
  • 1: runtime error (I/O error, DuckDB error, invalid configuration, invalid CLI usage)

License

MIT. See LICENSE.

Commit count: 37

cargo fmt