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]

Reply via email to