fallenmi opened a new pull request, #50882:
URL: https://github.com/apache/arrow/pull/50882

   ### Rationale for this change
   
   `field.isin([])` creates an empty null-typed value set. String inputs 
currently fail the string-specific type check before that empty set can be 
safely cast, so filtering string and dictionary-encoded string columns raises 
`ArrowTypeError` instead of returning no rows.
   
   ### What changes are included in this PR?
   
   Allow only zero-length null-typed value sets through the string type check 
so the existing safe-cast path can handle them. The existing rejection of 
non-empty non-binary value sets is preserved.
   
   Add C++ coverage for `is_in` and `index_in` with `string` and 
`large_string`, and Python coverage for string and dictionary-encoded string 
table filters.
   
   ### Are these changes tested?
   
   Yes:
   
   - Reproduced on `pyarrow 26.0.0.dev131`: string and dictionary-string 
filters raised the reported type error.
   - Full `arrow-compute-scalar-utility-test`: 95 passed.
   - Focused PyArrow compute tests: 4 passed.
   - C++ format/lint and Python format/lint hooks for the changed files: passed.
   - `git diff --check`: passed.
   
   ### Are there any user-facing changes?
   
   Yes. Filtering string or dictionary-encoded string data with an empty set 
now returns an empty result instead of raising `ArrowTypeError`. There is no 
public API change.
   
   ### AI usage
   
   OpenAI Codex assisted with reproducing the issue, tracing the type check, 
and drafting the patch, tests, and PR description. This draft remains pending 
my line-by-line review; I will only mark it ready after I understand and verify 
every change.
   
   * GitHub Issue: #31464


-- 
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]

Reply via email to