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

   ### What problem does this PR solve?
   
   Related PR: #68786, #68532
   
   `branch-4.1` already contains #68532. This PR adapts the applicable 
correctness fixes found during #68786 review to the 4.1 executors and scan 
planner.
   
   | Area | Fix |
   | --- | --- |
   | Iceberg binary partitions | Distinguish SQL NULL from binary bytes whose 
Base64 path is `null` when reusing writers, preserving separate commit 
metadata. |
   | VARBINARY literals | Compare unsigned bytes with significant trailing 
zeros in both FE literal implementations. |
   | MySQL / OceanBase MySQL | Project instant columns as UTC text before 
driver decoding and preserve `zeroDateTimeBehavior`. |
   | Oracle | Initialize each borrowed driver's session time zone and use 
explicit-offset text binds with server-side conversion. |
   | Presto | Support the official driver's scalar/array timestamp 
representation and VARCHAR timestamp binds with explicit casts. |
   | JDBC query TVFs | Preserve trailing comments, terminal delimiters, MySQL 
SQL mode and Trino `WITH SESSION` when wrapping timestamp projections. |
   | JNI | Reject UTC years outside 0–9999 before packing TIMESTAMPTZ, 
including nested values, while preserving NULL and year zero. |
   | Paimon | Serialize binary partition values losslessly for native readers. |
   | MaxCompute | Write nested timestamp vectors using UTC microseconds. |
   
   Existing 4.1 type mappings are retained. The master connector framework, 
native external UUID migration and unconditional file-TVF mapping changes are 
outside this backport.
   
   ### Release note
   
   Fix external binary partition correctness, VARBINARY literal comparisons, 
JDBC timestamp handling and nested timestamp writes in 4.1.
   
   ### Check List (For Author)
   
   - Test:
     - [x] Unit Test: 50 FE tests, 44 Java extension tests and 31 BE 
writer/partition-transform tests passed locally. BE tests rebuilt the affected 
source and test with existing 4.1 build dependencies.
     - [x] Manual test: MySQL Connector/J 5.1.49 and 8.0.28 each passed all 
four integration methods, covering JVM/session time zones, client/server 
prepared statements, cached driver time zones and zero-date policies.
     - [x] Regression test added: Iceberg binary/NULL path collision, including 
independent Spark partition-filter checks for Parquet and ORC. The full 
external regression suite was not run locally.
     - [x] FE Checkstyle and clang-format 16 checks.
   - Behavior changed:
     - [x] Yes: correct the existing read/write and comparison behavior 
described above.
   - Does this need documentation?
     - [x] No.
   


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