Skip to content

What's new in 0.49

0.49 adds the optional etlantic-duckdb package as a qualified subset. The package provides the versioned SQL protocol, an embedded DuckDB runtime, and a closed portable-transform compiler for the explicitly listed filter, projection, computed-field, limit, sort, join, and aggregate actions.

The compiler performs fail-closed capability and schema preflight. Unsupported operators, functions, types, unresolved columns, and known join collisions are reported before backend execution. SQL and transform evidence is generated by scripts/check_duckdb_0_49.py; evidence contains metadata and fixture identities only, never source rows, secrets, or executable backend objects.

The package remains optional:

uv sync --locked --group duckdb
uv run python examples/duckdb_portable.py

Runnable DuckDB example

Status: Available. Companion: examples/duckdb_portable.py (executed by the DuckDB optional-plugin CI matrix).

Expected output

DuckDB portable example OK

The qualified subset is not a claim that every portable action or every SQL engine is supported. See the capability matrix, the 0.49 exit gate, and the 0.49 findings ledger for boundaries and release evidence.