7 releases

Uses new Rust 2024

0.1.6 Jan 27, 2026
0.1.5 Jan 26, 2026

#581 in Database interfaces

MIT license

61KB
1.5K SLoC

duckdb-slt

A Rust-based 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

Not all keywords/directives added in duckdb-sqllogictest-python are supported. duckdb-slt at the moment only supports:

  • require with the notable distinction that it only attempts to LOAD the extension, the installation of it needs to be done by using the extensions option.

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.

Dependencies

~35–48MB
~682K SLoC