You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit f9919b6
Browse filesBrowse the repository at this point in the historyBrowse files
authored and
Miguel Moncada
committed
fix: four adversarial-review findings
- NaN/NaT in a chunk's dimension coordinate poisoned the shadow
guarantee into (dim >= NaN), which Arrow simplifies every predicate
against as false — chunks with matching rows were silently pruned.
Such spans now carry an always-true guarantee (unprunable).
- _affine_axis accepted NaN-poisoned axes (NaN > tol is false), letting
the affine scatter place values in wrong cells when a result's dim
column contains NULLs. The acceptance test is now a <= .all() so NaN
rejects and the positional searchsorted path handles it.
- Projected scans omit dimension columns from the scan schema; the
cftime coordinate-conversion loop assumed every dim had a schema
field and raised KeyError on e.g. SELECT SUM(v) over a 360_day
dataset. Dims absent from the schema are now skipped.
- pyramid() rebinned float cell origins level-over-level, occasionally
aliasing boundary points into a neighboring cell. Cells are now
tracked as integer indices that halve exactly per level, with float
origins kept as query labels.
Also: docs notes from stress testing (Polars is_in float-literal
pushdown caveat, per-thread DuckDB cursor re-registration pattern).
Regression tests for all four fixes; battle-test matrix passed on
duckdb 1.4.5 LTS and 1.5.4, 4-thread concurrency, dtype zoo, and a
600-query memory soak.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
0 commit comments