v0.4.4: Native DuckDB integration
Native DuckDB integration
Register QVD files as DuckDB tables with a single function call — then query with SQL. No manual conversions needed.
import qvd, duckdb
conn = duckdb.connect()
# Single file
qvd.register_duckdb(conn, "sales", "sales.qvd")
# All QVD files from a folder
tables = qvd.register_duckdb_folder(conn, "/data/qvd/")
# Multiple folders with glob
tables = qvd.register_duckdb_folder(conn, ["/data/sales/", "/data/crm/"],
glob="client_*.qvd", recursive=True)
# Query with SQL — JOINs across QVD tables
conn.sql("SELECT * FROM sales JOIN customers ON ...").show()New Python functions
register_duckdb(conn, name, path)— register single QVD as DuckDB tableregister_duckdb_filtered(conn, name, path, col, index, select)— with streaming EXISTS filterregister_duckdb_folder(conn, paths, recursive, glob, max_file_size_mb):- Single path or list of paths
recursive=True— scan subdirectoriesglob="prefix_*.qvd"— file pattern matchingmax_file_size_mb=500— skip files over limit (default 500MB)- Errors are warnings, not crashes
Tested: 405 QVD files registered as DuckDB tables, cross-table JOINs verified.