Gabriel39 opened a new pull request, #68297:
URL: https://github.com/apache/doris/pull/68297

   ### What problem does this PR solve?
   
   This is the first of five planned extractions from #67784, targeting 
`branch-4.1`.
   
   Binary `Field` values can retain references to released source storage, and 
Hive binary text needs its own Base64 contract. TIMESTAMPTZ output can lose 
historical offset seconds, format invalid NULL payloads, or fail again while 
reporting a boundary cast error.
   
   - Own long binary Field values while keeping short values inline. Preserve 
execution type lengths and decoder bytes, fix binary literal encoding, and add 
Hive Base64 and hexadecimal decoding support.
   - Explicitly reject unsupported binary hash keys, IN, aggregates, predicates 
and computed partition transforms. Keep the existing FE comparison/group/join 
restrictions and existing binary scalar functions. Reject unsupported 
collection kernels before coercion.
   - Normalize fixed timezone offsets and preserve historical second offsets in 
both TIMESTAMPTZ formatting and parsing. Skip masked NULL payloads, reject 
unrepresentable local years, and preserve cast error/NULL behavior at 
boundaries.
   
   Arrow convertor migration, Parquet/ORC semantics, external writer changes 
and catalog mapping migration belong to the subsequent extractions. This PR 
does not enable native VARBINARY storage.
   
   ### Testing
   
   - Rebuilt the BE ASAN test target from this extraction: **184 tests 
passed**, zero failures. Coverage includes binary lifetime/SerDe/rejection 
paths, timestamp parsing/casts, hash and partition guards, and existing 
Arrow/Variant serialization tests.
   - `VarBinaryUnsupportedCollectionTest`: **passed** (13 unsupported 
collection expressions, plus existing byte-preserving array/collection 
analysis).
   - FE reactor `validate` with repository Checkstyle: **passed**.
   - clang-format 16 check on all 34 changed C++ source/header files: 
**passed**.
   - Groovy compilation of the three new regression suites: **passed**. Live 
SQL regression execution is pending CI.
   
   The local BE test source list was narrowed for the focused build and 
restored before committing. No build configuration changes are included.
   
   ### Release note
   
   Fix binary value lifetime and serialization, reject unsupported binary 
computation paths, and preserve TIMESTAMPTZ historical offsets and boundary 
error behavior.
   
   ### Check List (For Author)
   
   - Test
     - [x] Regression test (three self-checking suites added; execution pending 
CI)
     - [x] Unit Test
   - Behavior changed:
     - [x] Yes. Binary rejection and timestamp boundary behavior are described 
above.
   - Does this need documentation?
     - [x] No. This fixes existing type behavior without introducing a 
configuration option.
   
   ### Check List (For Reviewer who merge this PR)
   
   - [ ] Confirm the release note
   - [ ] Confirm test cases
   - [ ] Confirm document
   - [ ] Add branch pick label
   


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


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to