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