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]