v0.2.3
What's in v0.2.3
Bug-fix release. All fixes ship in the WASM playground bundle and the published Python/npm packages.
Fixes
- GZIP-compressed Parquet now decodes in the engine (codec=2). miniz-based deflate path with a manual RFC 1952 header peel. (#7)
- ZSTD-compressed Parquet now decodes (codec=6). Vendored libzstd 1.5.6 decompression-only subset, BSD-3, ~50 KB compiled. (#7)
read_parquetglob expansion works in the WASM playground.SELECT * FROM '/data/shard_*.parquet'now correctly fans out across all matching files instead of failing withCannot open Parquet. (#6)- Single-threaded WASM no longer crashes on GROUP BY.
std::threadspawns are now gated through aHWThreads()helper that returns 1 on__EMSCRIPTEN__ && !__EMSCRIPTEN_PTHREADS__and runs the worker inline. - Playground cache-buster bumped to
20260428-1so any open browser tab refetches the new WASM/JS on next load.
Verification
- 22/22 format smoke tests green.
- 100k-row Parquet on SNAPPY / GZIP / ZSTD return identical aggregates, native and WASM.
- 39 MB real-world TPC-H orders Parquet (30 row groups, mixed encodings) reads in ~40 ms via WASM in Node.
Upgrade
- Python:
pip install --upgrade slothdb(already published as 0.2.3 sdist; binary wheels follow CI). - WASM:
npm install @slothdb/wasm@0.2.3. - Playground: just refresh the page; new cache-buster forces a clean fetch.
If you hit a stale cached version, hard-refresh once (Ctrl+Shift+R / Cmd+Shift+R).