Gabriel39 opened a new pull request, #68786: URL: https://github.com/apache/doris/pull/68786
### What problem does this PR solve? Related PR: #68532 Supersedes the closed master port #68603. Port the merged branch-4.1 change to master. External binary columns retain VARBINARY, and instant-bearing timestamp columns retain TIMESTAMPTZ instead of silently becoming text or local wall-clock values. This includes SQL/view handling, JDBC read/write normalization, Iceberg partition transforms and commit metadata, and matching regression coverage. Master uses connector plugins and JDBC type handlers. The port applies the mapping changes to those implementations while retaining master's typed predicate pushdown, write planning, Paimon connector writer, and UUID support. Legacy branch-4.1 Paimon writer classes and deleted write suites are not restored. The latest master refresh preserves catalog-property validation outside the catalog write lock, normalizes the durable mapping markers, and moves binary static-partition encoding into the shared insert context. Iceberg consumes the engine's separate SQL NULL markers for both commit validation and BE serialization. The new NULL-key Thrift field uses ID 20, preserving master's NaN-count field at ID 19. ### Release note External binary and instant timestamp mappings are enabled regardless of the deprecated catalog toggles. Ordinary views can preserve VARBINARY; native materialization restrictions remain. File TVF binary mapping remains explicit, while annotated instant timestamps map to TIMESTAMPTZ. Legacy catalog markers are migrated through ordinary ALTER journal records. This changes persisted metadata; rolling back FE binaries alone does not restore the old mapping properties. External files are not rewritten. Mixed-version compatibility limitations described in #68532 still apply. ### Validation Latest refresh against master `f0b7c35dcc73525692cf3608bec14e5926a7ef56`: - 66 targeted FE/connector tests passed: catalog migration/properties, type coercion, binary partition literals, Paimon type mapping, and Iceberg static-partition sinks. - Reproduced the missing binary encoding and dropped NULL-key marker with failing tests before applying the adaptations; both now pass. - Full FE reactor Checkstyle passed. clang-format 16 passed for all 16 affected C/C++ files; BE header hygiene passed. - Paimon connector package build passed. - A fresh full BE build and external service-backed regression execution remain pending CI. Earlier port validation, before the latest master refresh: 54 targeted FE core tests, 78 targeted BE ASAN tests, connector/JNI suites, full BE build, and parsing of 46 changed Groovy suites passed. These earlier results are not a fresh validation of the master refresh. The original broader Iceberg run had a baseline empty-snapshot expectation failure; clang-tidy was blocked by baseline/toolchain diagnostics. ### Check List (For Author) - [x] Unit tests and regression coverage ported. - [x] Behavior and persisted-metadata changes described above. - [x] External integration execution remains pending CI. ### Check List (For Reviewer who merge this PR) - [ ] Confirm the release note. - [ ] Confirm test cases. - [ ] Confirm document. - [ ] Add branch pick label if needed. -- 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]
