kz930 opened a new pull request, #7566: URL: https://github.com/apache/texera/pull/7566
### What changes were proposed in this PR? Substring Search and Unnest String both read their column and called `toString` on it with no null check, so one blank cell took the workflow down with a NullPointerException. An empty value is ordinary input here. A blank CSV cell arrives as null, since univocity returns null for an empty field and `AttributeTypeUtils.parseField` passes it through by design, its first line being `if (field == null) return null`. Both now skip, which is what the rest of the codebase does with a value that is not there. `FilterPredicate` answers false for every condition but IS_NULL / IS_NOT_NULL once a field is null; `COUNT(column)` counts only non-null rows, and CONCAT and MIN pass over them; twenty-four operators open their generated Python with `dropna(subset=[...]) #remove missing values`. Substring Search filters the row out, and Unnest String produces no rows, the same way its existing filter drops the empty pieces a run of delimiters produces. ### Any related issues, documentation, discussions? Closes #7548 ### How was this PR tested? Each spec gains the case: `SubstringSearchOpExecSpec` covers an empty cell with an ordinary substring and with the empty substring, and `UnnestStringOpExecSpec` covers an empty cell. Both fail on the previous behavior, 15 passed / 3 failed before the change and 18 / 0 after. ### Was this PR authored or co-authored using generative AI tooling? Generated-by: Claude Code (Claude Opus 5) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
