Repository navigation
Conversation
The native Mosaic writer updates FLOAT/DOUBLE min/max with a partial comparison: a leading NaN pins both bounds to NaN, a later NaN never enters the bounds, and -0.0 equals +0.0. Paimon compares bounds with compareTo, so manifest pruning and row-group pruning could skip files and row groups that still contain matching rows. Mosaic stats carry no NaN count, so such bounds cannot be detected and are no longer used. Null counts are kept. Generated-by: Claude Code
|
There is an existing-data upgrade gap in the manifest-level fix. I reproduced this for both FLOAT and DOUBLE: write This is a remaining failure of the original bug, rather than a new regression introduced here. Before treating this as a production fix for existing tables, please cover persisted unsafe manifest statistics as well, or explicitly document the limitation and a verified procedure for rebuilding the affected metadata/data. Please add a test that writes legacy bounds and reads them with the fix; the current tests write all metadata using the new extractor. |
|
No one has actually encountered a "NaN" issue; stop trying to use AI to "fix" such problems—unless you are genuinely facing them in a production environment. |
Purpose
fix #10728
mosaic.stats-columns; the default collects no stats.fileformat.md), losing min/max pruning.Tests
MosaicFloatingPointBoundsTest: table reads with NaN-first and signed-zero rows (FLOAT and DOUBLE), asserting the planned split, the row-group read and the filtered result. Red on master at both levels, green now. Single row group only; engine SQL not run.MosaicSimpleStatsExtractorTestexpectations.mvn -pl paimon-mosaic clean install: 162 tests, 0 failures.