The GitHub Actions job "Suggest reviewers" on 
texera.git/fix/7550-csv-blank-cell-type has failed.
Run started by GitHub user kz930 (triggered by kz930).

Head commit for run:
2b08597de476ea4a50aa7254aa232a492a4cd61a / kary zheng <[email protected]>
fix(csv-scan): keep a numeric column's type when one of its cells is blank

Schema inference and execution disagreed about what a blank cell is, and the
schema side was the one that lost information. Inference set nullValue("") on 
its
parser, so a blank read as an empty string: tryParseDouble("") fails,
tryParseBoolean("") fails, and inferField lands on tryParseString(). One empty
cell was enough to type a whole numeric column as STRING. Execution builds its
parser without nullValue, so the same blank read as null there, which is what
AttributeTypeUtils.parseField is written to pass through.

The effect reaches well past the scan. Every downstream operator that does
arithmetic on such a column then receives strings and fails on rows whose values
are perfectly good numbers, not on the blank one. Hugging Face Iris Logistic
Regression on a three-row file fails at the first row, where numpy is handed
array([['2.6', '0.75']], dtype='<U32').

Dropping the setting leaves both sides reading a blank as null, and
tryParseDouble(null) already answers DOUBLE, so the column keeps the type its
values give it. One corner changes with it: a column that is blank in every
sampled row now infers as INTEGER rather than STRING. Its values are null either
way, so this renames the empty rather than reinterpreting anything.

CSVScanSourceOpDescSpec gains the case; it fails on the previous behavior. The
module's 2187 tests pass.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

Report URL: https://github.com/apache/texera/actions/runs/31534491653

With regards,
GitHub Actions via GitBox

Reply via email to