You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by "morningman (via GitHub)" <gi...@apache.org> on 2026/10/12 09:07:15 UTC
[PR] [test](external) Port the branch-4.x Arrow convertor and Parquet timestamp tests [doris]
morningman opened a new pull request, #68963:
URL: https://github.com/apache/doris/pull/68963
### What problem does this PR solve?
Issue Number: None
Related PR: #68381, #68441, #68396, #68883, #68516
Problem Summary:
**In short.** This ports the tests of branch-4.x #68381 (explicit, schema-owned Arrow block convertors) and #68441 (aligned Parquet and ORC timestamp semantics) that did not come to master with their behavior. master has the production code through #68396 and #68883, and through #65446 and #68516; a hunk-by-hunk comparison found no gap there. This PR changes no production code.
**Background.**
- #68381 moved format-specific Arrow writing into per-format convertors. For Variant, Iceberg writes `arrow.parquet.variant` extension arrays with a `metadata, value` storage struct, and Paimon writes its own `value, metadata` struct. #68883 brought the Variant hooks of both convertors to master.
- #68441 made the Parquet and ORC timestamp semantics explicit: Paimon marks every timestamp field with `timestamp_is_adjusted_to_utc` (INT96 alone cannot tell a wall clock from an instant), a Hive write always sends `hive.parquet.time-zone` (empty means wall clock), a Hudi MOR scan says up front whether a slice may be read as native Parquet, ALTER CATALOG validates the time zone, and only connectors that use the Hive INT96 time zone receive it.
**The problem, and what it cost.** These behaviors were not pinned on master:
| Behavior | Tested on master before this PR |
|---|---|
| Iceberg Variant through `IcebergArrowBlockConvertor`: extension array, encoded bytes unchanged, outer NULLs, Parquet Variant logical type and field ids, at the top level and nested in LIST, MAP and STRUCT | no; only a one-value round trip of the SerDe hook |
| `PaimonArrowBlockConvertor`: bytes and outer NULLs for encoded and typed Variants, `ARRAY<VARIANT>` through the Paimon SerDe, rejection of an unsupported primitive at the Paimon hook | only through the generic Arrow path, or one row without NULLs and without byte checks |
| ALTER CATALOG rejects an invalid IANA `hive.parquet.time-zone` and accepts `+05:45` | only the rejection of `CST` |
| A Hive write without `hive.parquet.time-zone` still sends an empty time zone | only an explicit `""` |
| Only a Parquet Hudi MOR table advertises native Parquet slices | Parquet only; no ORC or HFile case |
| Paimon sets `timestamp_is_adjusted_to_utc`, not only its value, including on nested timestamps | the value only, at the top level; the wall-clock check also passes when the flag is missing |
| A connector that does not use the Hive INT96 time zone gets none from an HMS catalog that sets one | only the opposite case |
**How this PR fixes it.**
- `DataTypeSerDeArrowTest`: `IcebergVariantExtensionAndParquetSchema` and `NestedIcebergVariantExtensionsAndParquetSchema`, as in branch-4.x. They came with #66620 (Iceberg Variant writes), but they build the Arrow schema themselves and test only code master already has.
- `PaimonArrowBlockConvertorTest` (in `data_type_variant_v2_serde_output_test.cpp`): `BinaryStructPreservesEncodedAndTypedBytesAndOuterNulls`, `NestedArrayUsesPaimonSerdeRecursively` and `BinaryStructRejectsUnsupportedPaimonPrimitive`, with master's error text for the last one. master's generic-path versions stay.
- `HMSExternalCatalogParquetTimeZoneTest#testAlterValidatesCandidateTimezoneBeforePublishing`, `HiveWritePlanProviderTest` (absent property, `UTC`, `+05:45`), `HudiForceJniTest` (ORC and HFile MOR tables), `PaimonScanPlanProviderTest#buildSchemaInfoCarriesTimestampSemantics` (set flag, nested timestamp, other columns unflagged) and `PluginDrivenScanNodeScanProviderSelectionTest#connectorWithoutHiveInt96SemanticsIgnoresCatalogParquetTimezone`.
Not ported: tests of branch-4.x-only code (`NonLocalizableInt32Predicate` from #66802, the `{1,2,3,4}` expectation master changed on purpose in #66399, VARBINARY mapping of file TVFs), and the Iceberg Variant writer tests that need the Iceberg Variant write port (`VParquetWriterTest` Variant cases and the Variant assertions of `IcebergBuildsItsOwnSchemaAndMetadata`).
**Results.** The BE suites pass (42 tests, 5 of them new) and the FE classes pass. Each new FE assertion fails when the check it guards is removed:
| Change to the code under test | Test that fails |
|---|---|
| ALTER CATALOG skips the time zone check of the candidate properties | `testAlterValidatesCandidateTimezoneBeforePublishing` |
| A Hive write sets the time zone only when the property is present | `parquetTimezoneDistinguishesExplicitWallClockFromOldCoordinator` (absent property) |
| Hudi advertises native Parquet for any input format | `lazyMorScanAdvertisesNativeParquetBeforeRangesArrive` (ORC) |
| Paimon leaves `timestamp_is_adjusted_to_utc` unset for wall-clock timestamps | `buildSchemaInfoCarriesTimestampSemantics` |
| The scan node passes the catalog's Hive time zone without asking the provider | `connectorWithoutHiveInt96SemanticsIgnoresCatalogParquetTimezone` |
Original authors of the ported test cases: @Gabriel39 (#68381, #68441), @hubgeter (#66620), @suxiaogang223 (#66321)
### Release note
None
### Check List (For Author)
- Test <!-- At least one of them must be included. -->
- [ ] Regression test
- [x] Unit Test
- BE UT: `DataTypeSerDeArrowTest`, `DataTypeVariantV2SerdeOutputTest` and `PaimonArrowBlockConvertorTest` pass (42 tests, 5 of them new).
- FE UT: `HMSExternalCatalogParquetTimeZoneTest`, `PluginDrivenScanNodeScanProviderSelectionTest`, `HiveWritePlanProviderTest`, `HudiForceJniTest` and `PaimonScanPlanProviderTest` pass, and fail under the changes listed above.
- [ ] Manual test (add detailed scripts or steps below)
- [ ] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
- [ ] Previous test can cover this change.
- [ ] No code files have been changed.
- [ ] Other reason <!-- Add your reason? -->
- Behavior changed:
- [x] No.
- [ ] Yes. <!-- Explain the behavior change -->
- Does this need documentation?
- [x] No.
- [ ] Yes. <!-- Add document PR link here. eg: https://github.com/apache/doris-website/pull/1214 -->
### Check List (For Reviewer who merge this PR)
- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label <!-- Add branch pick label that this PR should merge into -->
--
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: commits-unsubscribe@doris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org
Re: [PR] [test](external) Port the branch-4.x Arrow convertor and Parquet timestamp tests [doris]
Posted by "morningman (via GitHub)" <gi...@apache.org>.
morningman commented on PR #68963:
URL: https://github.com/apache/doris/pull/68963#issuecomment-6121156560
run buildall
--
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: commits-unsubscribe@doris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org
Re: [PR] [test](external) Port the branch-4.x Arrow convertor and Parquet timestamp tests [doris]
Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #68963:
URL: https://github.com/apache/doris/pull/68963#issuecomment-6124118299
# BE Regression && UT Coverage Report
Increment line coverage `100% (0/0)` :tada:
[Increment coverage report](http://coverage.selectdb-in.cc/coverage/68963_e52da51a48f287d2e2ecd26bf103c33c3beee94e_merge/increment_report/index.html)
[Complete coverage report](http://coverage.selectdb-in.cc/coverage/68963_e52da51a48f287d2e2ecd26bf103c33c3beee94e_merge/report/index.html)
| Category | Coverage |
|-------------------|--------------------|
| Function Coverage | 76.91% (35449/46091) |
| Line Coverage | 62.19% (401231/645140) |
| Region Coverage | 58.67% (339045/577847) |
| Branch Coverage | 59.48% (155853/262011) |
--
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: commits-unsubscribe@doris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org
Re: [PR] [test](external) Port the branch-4.x Arrow convertor and Parquet timestamp tests [doris]
Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #68963:
URL: https://github.com/apache/doris/pull/68963#issuecomment-6123041059
<details>
<summary>ClickBench: <b>Total hot run time: 24.64 s</b></summary>
```
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit e52da51a48f287d2e2ecd26bf103c33c3beee94e, data reload: false
query1 0.01 0.01 0.00
query2 0.10 0.05 0.05
query3 0.26 0.12 0.11
query4 1.62 0.13 0.12
query5 0.28 0.25 0.24
query6 1.17 0.68 0.68
query7 0.04 0.00 0.00
query8 0.08 0.04 0.04
query9 0.43 0.34 0.36
query10 0.60 0.60 0.58
query11 0.21 0.14 0.14
query12 0.21 0.14 0.15
query13 0.50 0.49 0.49
query14 0.97 0.97 0.96
query15 0.66 0.63 0.60
query16 0.33 0.34 0.34
query17 1.13 1.14 1.09
query18 0.22 0.21 0.20
query19 2.12 2.02 2.07
query20 0.02 0.01 0.02
query21 15.49 0.25 0.15
query22 4.44 0.06 0.06
query23 16.24 0.32 0.12
query24 3.00 0.78 0.41
query25 0.10 0.08 0.04
query26 1.63 0.25 0.15
query27 0.03 0.05 0.04
query28 1.59 0.64 0.41
query29 12.52 4.28 3.32
query30 0.29 0.14 0.13
query31 2.78 0.58 0.34
query32 3.23 0.62 0.53
query33 3.14 3.27 3.35
query34 15.64 4.03 3.41
query35 3.37 3.35 3.37
query36 0.56 0.44 0.43
query37 0.09 0.06 0.06
query38 0.04 0.04 0.03
query39 0.04 0.03 0.03
query40 0.17 0.15 0.13
query41 0.09 0.03 0.03
query42 0.04 0.02 0.02
query43 0.04 0.04 0.03
Total cold run time: 95.52 s
Total hot run time: 24.64 s
```
</details>
--
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: commits-unsubscribe@doris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org
Re: [PR] [test](external) Port the branch-4.x Arrow convertor and Parquet timestamp tests [doris]
Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #68963:
URL: https://github.com/apache/doris/pull/68963#issuecomment-6121156166
Thank you for your contribution to Apache Doris.
Don't know what should be done next? See [How to process your PR](https://doris.apache.org/community/how-to-contribute/review-and-ci).
Please clearly describe your PR:
1. What problem was fixed (it's best to include specific error reporting information). How it was fixed.
2. Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
3. What features were added. Why was this function added?
4. Which code was refactored and why was this part of the code refactored?
5. Which functions were optimized and what is the difference before and after the optimization?
--
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: commits-unsubscribe@doris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org
Re: [PR] [test](external) Port the branch-4.x Arrow convertor and Parquet timestamp tests [doris]
Posted by "morningman (via GitHub)" <gi...@apache.org>.
morningman merged PR #68963:
URL: https://github.com/apache/doris/pull/68963
--
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: commits-unsubscribe@doris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org
Re: [PR] [test](external) Port the branch-4.x Arrow convertor and Parquet timestamp tests [doris]
Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #68963:
URL: https://github.com/apache/doris/pull/68963#issuecomment-6122966648
<details>
<summary>TPC-DS: <b>Total hot run time: 152147 ms</b></summary>
```
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
TPC-DS sf100 test result on commit e52da51a48f287d2e2ecd26bf103c33c3beee94e, data reload: false
query5 4302 615 454 454
query6 422 207 190 190
query7 4815 443 231 231
query8 309 179 174 174
query9 8750 3977 3980 3977
query10 459 317 255 255
query11 5910 3431 3206 3206
query12 150 89 87 87
query13 1248 452 322 322
query14 6525 4814 4456 4456
query14_1 4241 4276 4240 4240
query15 207 200 182 182
query16 951 458 404 404
query17 855 663 574 574
query18 2399 411 307 307
query19 185 156 124 124
query20 77 78 81 78
query21 208 139 113 113
query22 12899 12918 12734 12734
query23 13292 12705 12327 12327
query23_1 12105 12143 12391 12143
query24 7103 829 457 457
query24_1 458 458 459 458
query25 512 394 333 333
query26 1298 252 135 135
query27 2766 440 273 273
query28 4625 1965 1967 1965
query29 1556 584 439 439
query30 299 216 180 180
query31 893 765 647 647
query32 138 93 92 92
query33 499 294 227 227
query34 900 857 516 516
query35 739 759 636 636
query36 795 820 735 735
query37 128 105 89 89
query38 1782 1748 1687 1687
query39 697 729 703 703
query39_1 684 665 670 665
query40 214 111 97 97
query41 65 63 63 63
query42 90 87 84 84
query43 360 387 337 337
query44 1296 706 714 706
query45 186 179 166 166
query46 845 965 578 578
query47 3009 3019 2920 2920
query48 305 314 223 223
query49 569 403 307 307
query50 720 285 218 218
query51 10303 10406 10570 10406
query52 79 79 70 70
query53 189 199 148 148
query54 227 217 187 187
query55 73 70 61 61
query56 228 206 203 203
query57 1589 1595 1541 1541
query58 282 258 258 258
query59 2368 2382 2120 2120
query60 275 254 229 229
query61 140 147 146 146
query62 391 336 287 287
query63 198 164 164 164
query64 2775 946 757 757
query65 3439 3349 3366 3349
query66 1790 415 300 300
query67 20402 20342 19869 19869
query68 2999 1016 611 611
query69 395 297 254 254
query70 926 828 817 817
query71 302 230 204 204
query72 2775 2700 2412 2412
query73 522 552 300 300
query74 4537 4464 4355 4355
query75 2320 2308 1942 1942
query76 2288 1001 622 622
query77 354 391 296 296
query78 9061 8988 8492 8492
query79 1022 914 517 517
query80 532 430 362 362
query81 524 319 273 273
query82 574 136 112 112
query83 301 195 182 182
query84 309 123 108 108
query85 823 413 377 377
query86 315 232 232 232
query87 2013 1951 1820 1820
query88 3662 2714 2707 2707
query89 340 294 258 258
query90 1916 172 176 172
query91 156 144 120 120
query92 96 88 88 88
query93 1018 1032 576 576
query94 455 304 286 286
query95 600 340 375 340
query96 670 527 236 236
query97 2457 2459 2351 2351
query98 158 151 140 140
query99 785 783 659 659
Total cold run time: 233480 ms
Total hot run time: 152147 ms
```
</details>
--
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: commits-unsubscribe@doris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org
Re: [PR] [test](external) Port the branch-4.x Arrow convertor and Parquet timestamp tests [doris]
Posted by "morningman (via GitHub)" <gi...@apache.org>.
morningman commented on PR #68963:
URL: https://github.com/apache/doris/pull/68963#issuecomment-6121156926
/review
--
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: commits-unsubscribe@doris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org
Re: [PR] [test](external) Port the branch-4.x Arrow convertor and Parquet timestamp tests [doris]
Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #68963:
URL: https://github.com/apache/doris/pull/68963#issuecomment-6122819872
<details>
<summary>TPC-H: <b>Total hot run time: 29182 ms</b></summary>
```
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit e52da51a48f287d2e2ecd26bf103c33c3beee94e, data reload: false
------ Round 1 ----------------------------------
============================================
q1 17625 5660 5554 5554
q2 2074 293 244 244
q3 10295 1397 825 825
q4 4674 475 351 351
q5 7431 796 542 542
q6 189 186 156 156
q7 764 799 612 612
q8 9243 1315 1146 1146
q9 5668 4455 4451 4451
q10 6824 1295 1013 1013
q11 425 249 235 235
q12 643 400 288 288
q13 18066 3063 2412 2412
q14 272 273 248 248
q15 q16 743 722 655 655
q17 1169 747 572 572
q18 7034 6243 6188 6188
q19 1098 955 601 601
q20 377 338 228 228
q21 5620 2568 2675 2568
q22 394 352 293 293
Total cold run time: 100628 ms
Total hot run time: 29182 ms
----- Round 2, with runtime_filter_mode=off -----
============================================
q1 6545 6435 6443 6435
q2 729 570 536 536
q3 5497 5675 5251 5251
q4 2072 2148 1584 1584
q5 5867 5739 5658 5658
q6 255 194 156 156
q7 2290 2073 1823 1823
q8 3067 2740 2795 2740
q9 8378 7991 7760 7760
q10 3687 3601 3220 3220
q11 597 414 381 381
q12 684 698 514 514
q13 2737 3061 2376 2376
q14 294 286 262 262
q15 q16 672 686 613 613
q17 7805 7007 6898 6898
q18 13195 12250 13090 12250
q19 920 781 787 781
q20 2168 2175 1934 1934
q21 5885 4759 4783 4759
q22 486 457 407 407
Total cold run time: 73830 ms
Total hot run time: 66338 ms
```
</details>
--
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: commits-unsubscribe@doris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org
Re: [PR] [test](external) Port the branch-4.x Arrow convertor and Parquet timestamp tests [doris]
Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #68963:
URL: https://github.com/apache/doris/pull/68963#issuecomment-6123040580
# BE UT Coverage Report
Increment line coverage ` ` :tada:
[Increment coverage report](http://coverage.selectdb-in.cc/coverage/e52da51a48f287d2e2ecd26bf103c33c3beee94e_e52da51a48f287d2e2ecd26bf103c33c3beee94e/increment_report/index.html)
[Complete coverage report](http://coverage.selectdb-in.cc/coverage/e52da51a48f287d2e2ecd26bf103c33c3beee94e_e52da51a48f287d2e2ecd26bf103c33c3beee94e/report/index.html)
| Category | Coverage |
|-------------------|--------------------|
| Function Coverage | 65.65% (31259/47613) |
| Line Coverage | 50.40% (328828/652492) |
| Region Coverage | 45.79% (265707/580248) |
| Branch Coverage | 47.43% (124658/262820) |
--
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: commits-unsubscribe@doris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org