Zerolzj opened a new pull request, #29779: URL: https://github.com/apache/flink/pull/29779
## What is the purpose of the change Correct binary IN/NOT IN comparisons compiled to SEARCH point sets. ObjectHashSet currently delegates byte-array equality to HashSet, which compares array identities instead of SQL binary values. Distinct arrays containing the same bytes can therefore fail membership checks. JIRA: https://issues.apache.org/jira/browse/FLINK-41327 ## Brief change log - Use content-based keys for byte arrays, leaving other object keys unchanged. - This also applies to UUID values represented internally as byte arrays. - Copy inserted binary keys so caller mutation cannot corrupt membership; lookup keys do not copy the bytes. - Add runtime membership tests and SQL tests without constant folding, including matches, misses, NOT IN, high-bit bytes and NULL semantics. ## Verifying this change Original-source regressions: ObjectHashSetTest had 2 assertion failures out of 3 tests; BinaryInPredicateITCase had 4 assertion failures out of 10 tests. Both had no errors or skips after normal RPC packaging. With the fix, ObjectHashSetTest (3), BinaryInPredicateITCase (10), and existing ComparisonFunctionITCase (42) pass with no failures, errors or skips. The tests cover content membership/deduplication, copied keys, empty/high-bit byte arrays, BINARY/VARBINARY IN/NOT IN and NULL semantics. UUID-specific SQL and performance benchmarks are not included. All 55 selected reactor modules packaged successfully with the targeted tests. A full `clean verify` is currently running with Java 17, an English JVM locale and Python 3.11 on PATH; it has not yet completed. Earlier full runs encountered environment issues: insufficient disk reserve, localized XML error messages, and a missing `python` command. These were addressed in the build environment, and the affected tests have since passed. No tests or checks were bypassed. This draft will be updated with the final full-build result before it is marked ready for review. ## Does this pull request potentially affect one of the following parts: - Dependencies: no - Public API: no - Serializers: no - Runtime per-record code paths: yes; binary membership uses content hashing and a lightweight lookup wrapper. - Deployment or recovery: no - S3 file system connector: no ## Documentation - Introduces a new feature: no; fixes binary predicate correctness. - Release-note text is prepared in the JIRA draft. ##### Was generative AI tooling used to co-author this PR? - [X] Yes Generated-by: OpenAI Codex (GPT-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]
