Skip to content

[fix](arrow-flight) Return DATETIMEV2 as a timezone-naive Arrow timestamp#65780

Open
morningman wants to merge 1 commit into
apache:masterfrom
morningman:fix-adbc-datetime-timezone
Open

[fix](arrow-flight) Return DATETIMEV2 as a timezone-naive Arrow timestamp#65780
morningman wants to merge 1 commit into
apache:masterfrom
morningman:fix-adbc-datetime-timezone

Conversation

@morningman

Copy link
Copy Markdown
Contributor

What problem does this PR solve?

Issue Number: close #65741

Problem Summary:

DATETIME / DATETIMEV2 is a timezone-naive wall-clock type, but over Arrow Flight / ADBC it was mapped to a timezone-aware Arrow timestamp built with the session timezone. Clients such as pyarrow/ADBC then interpreted the value as an instant and rendered a spurious UTC offset:

SELECT CAST('2026-07-02 01:36:22.069504' AS DATETIME(6))
-> 2026-07-02 01:36:22.069504+00:00   (wrong; should be timezone-naive)

This PR fixes the BE Arrow conversion path:

  • convert_to_arrow_type: split DATETIMEV2 from TIMESTAMPTZ. DATETIMEV2 now maps to an Arrow timestamp without timezone metadata; TIMESTAMPTZ keeps its timezone because it has instant semantics.
  • DataTypeDateTimeV2SerDe::read_column_from_arrow: symmetrically interpret a timezone-naive Arrow timestamp as UTC instead of the session timezone, so a cross-cluster (type=doris) read does not shift the wall-clock value by the session offset (the receive path defaults to +08:00).

Part of the Arrow Flight / ADBC tracker #65615.

Release note

Fix Arrow Flight / ADBC returning DATETIME values as timezone-aware UTC timestamps. DATETIME/DATETIMEV2 is now returned as a timezone-naive Arrow timestamp, so clients no longer see a spurious +00:00 offset.

Check List (For Author)

  • Test

    • Regression test
    • Unit Test
    • 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
  • Behavior changed:

    • No.
    • Yes. Arrow Flight / ADBC now returns DATETIME/DATETIMEV2 as a timezone-naive Arrow timestamp instead of a timezone-aware one built from the session timezone.
  • Does this need documentation?

    • No.
    • Yes.

Check List (For Reviewer who merge this PR)

  • Confirm the release note
  • Confirm test cases
  • Confirm document
  • Add branch pick label

@hello-stephen

Copy link
Copy Markdown
Contributor

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR.

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?

@morningman

Copy link
Copy Markdown
Contributor Author

/review

@morningman

Copy link
Copy Markdown
Contributor Author

run buildall

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-H: Total hot run time: 29441 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit 5c95ff786d415602c1b00ff45183587179c197b6, data reload: false

------ Round 1 ----------------------------------
============================================
q1	17795	4086	4014	4014
q2	2112	311	198	198
q3	10186	1415	834	834
q4	4684	471	337	337
q5	7575	849	571	571
q6	190	173	141	141
q7	772	825	605	605
q8	9871	1502	1605	1502
q9	6094	4343	4364	4343
q10	6812	1729	1464	1464
q11	509	344	320	320
q12	778	588	467	467
q13	20447	3443	2827	2827
q14	283	275	255	255
q15	q16	810	801	731	731
q17	954	981	1102	981
q18	7265	5728	5534	5534
q19	1420	1286	1093	1093
q20	844	673	606	606
q21	5858	2717	2310	2310
q22	438	355	308	308
Total cold run time: 105697 ms
Total hot run time: 29441 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4499	4376	4394	4376
q2	292	322	214	214
q3	4574	4928	4440	4440
q4	2049	2156	1340	1340
q5	4448	4287	4679	4287
q6	253	192	143	143
q7	2062	1786	1604	1604
q8	2471	2138	2222	2138
q9	7743	7670	7729	7670
q10	4696	4642	4391	4391
q11	605	425	386	386
q12	740	747	521	521
q13	3298	3587	2950	2950
q14	316	327	285	285
q15	q16	701	752	651	651
q17	1375	1350	1339	1339
q18	7977	7368	6819	6819
q19	1108	1076	1069	1069
q20	2224	2207	1948	1948
q21	5235	4579	4451	4451
q22	537	458	414	414
Total cold run time: 57203 ms
Total hot run time: 51436 ms

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review completed for head 5c95ff786d415602c1b00ff45183587179c197b6 after two convergence rounds. Requesting changes for two P1 correctness regressions; one P3 test-lifecycle issue is also annotated inline.

Critical checkpoint conclusions:

  • Goal and proof: Mapping Doris DATETIMEV2 to a timezone-naive Arrow timestamp is correct for direct Arrow Flight/ADBC clients, and the added schema, unit round-trip, Arrow Flight, and same-head Remote Doris tests prove that path. The shared implementation does not yet accomplish the goal safely for every existing caller: forced-INT96 Parquet shifts same-version values, and a head producer shifts values for an older Remote Doris consumer.
  • Scope and clarity: The production edit is small and readable, but convert_to_arrow_type is a shared schema factory used beyond Arrow Flight. M3 shows that applying the client-facing change globally is too broad without Parquet-specific handling; M1 shows that the Remote Doris wire contract also needs version/capability scoping.
  • Concurrency and lifecycle: No new thread, shared mutable state, locking, static-initialization, ownership/COW, or resource-lifecycle behavior is introduced. The only lifecycle issue is M2 in the regression suite: it removes fixtures after the assertion despite the repository rule to retain them for debugging.
  • Configuration: No new configuration item is added. Existing FE and BE defaults set Parquet OUTFILE enable_int96_timestamps=true, which makes M3 a default, reachable path rather than an opt-in edge case.
  • Compatibility: M1 is an incompatible Arrow Flight wire-encoding change for a head-producer/base-consumer type=doris pairing. Base/base, base/head, and head/head preserve the wall clock; head/base silently shifts it by eight hours under Doris's +08:00 default. The ticket carries no encoding capability/version.
  • Parallel paths and conditions: Arrow Flight same-head, non-INT96 Parquet (isAdjustedToUTC=false), Python UDF/UDAF/UDTF interchange, memory scratch, nullable and nested array/map/struct SerDes, and TIMESTAMPTZ's distinct timezone-aware branch were traced and found symmetric. Forced INT96 is the distinct failing parallel path because it erases timezone metadata before Doris reads the value with the session timezone.
  • Tests and expected results: Added outputs are deterministic, ordered where needed, and consistent with the intended same-head wall-clock behavior. Coverage does not exercise mixed versions. Existing test_hive_read_parquet already covers explicit INT96 export/read-back and its wall-clock expectations would regress under this patch. M2 should remove only the terminal cleanup; the pre-setup drops already make reruns deterministic.
  • Observability: No additional logs or metrics are needed for this local conversion change once correctness and compatibility are fixed.
  • Transactions, persistence, data writes, and FE/BE variables: No transaction, EditLog, storage-format persistence, data-write atomicity, or new FE-to-BE variable propagation is involved. Parquet output is affected at its serialization boundary as described in M3.
  • Error handling, memory safety, and performance: No new unchecked Status, exception-boundary, allocator, nullable-shape, memory-accounting, or hot-path performance issue was found.
  • Release note and documentation: The release note accurately describes the intended direct Arrow Flight/ADBC behavior, but the implementation must first avoid the two inline correctness regressions. No separate user documentation requirement was identified.
  • User focus: .code-review.ClGMH5/review_focus.txt contained no additional focus request; the whole PR was reviewed.

Validation was static, as required by the review runner; no local build or test was attempted. Clang Formatter, CheckStyle, and Linux compile checks passed when inspected. The macOS BE-UT job stopped before tests because the runner selected JDK 25 while the script requires JDK 17; Linux BE-UT was still running at submission time.

Comment thread be/src/format/arrow/arrow_row_batch.cpp Outdated
// See apache/doris#65741.
case TYPE_DATETIMEV2:
if (type->get_scale() > 3) {
*result = std::make_shared<arrow::TimestampType>(arrow::TimeUnit::MICRO);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P1] Preserve Remote Doris compatibility with old readers

This changes the DATETIMEV2 wire encoding for every type=doris Flight query that returns that type. A head producer emits 2026-07-02 23:30:45.000000 as a timezone-empty DATETIMEV2(6) timestamp with raw value 1783035045000000; a pre-change Remote Doris reader always calls from_unixtime(..., +08:00) and returns 2026-07-03 07:30:45.000000. Old-to-new and same-version pairs work, but new-to-old silently changes data, and the Flight ticket carries no capability/version. Please negotiate the naive-DATETIMEV2 encoding (or retain the legacy encoding for old consumers) and add a mixed-version test before changing this shared schema.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the analysis. This is intentional, and we will not keep backward compatibility with the old encoding, because the old encoding is itself incorrect: DATETIME/DATETIMEV2 is a timezone-naive wall-clock type, so encoding it as a timezone-aware Arrow timestamp (which makes clients render a spurious +00:00 instant) is exactly the bug being fixed here.

A mixed-version type=doris federation is only a transient rolling-upgrade window. We intentionally do not add a capability/version handshake for it; once both sides are upgraded the value is correct, and we do not preserve the previous (buggy) behavior for old readers.

Comment thread be/src/format/arrow/arrow_row_batch.cpp Outdated
} else if (type->get_scale() > 0) {
*result = std::make_shared<arrow::TimestampType>(arrow::TimeUnit::MILLI);
} else {
*result = std::make_shared<arrow::TimestampType>(arrow::TimeUnit::SECOND);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P1] Keep DATETIMEV2 correct when Parquet forces INT96

This shared branch also feeds VParquetTransformer, and Parquet OUTFILE defaults enable_int96_timestamps to true. In that mode Arrow serializes the raw timestamp integer directly to INT96 and the Parquet column has no isAdjustedToUTC marker. Head now writes DATETIMEV2(0) value 2026-07-02 01:36:22 as as-if-UTC 1782956182; Doris's INT96 readers then apply the +08 session timezone and return 09:36:22. Base wrote the +08-adjusted integer and round-tripped. Please preserve local DATETIME semantics for the forced-INT96 path (or scope the naive mapping away from it); the existing test_hive_read_parquet INT96 export/read-back expectations should remain unchanged.

select k, dt0, dt3, dt6 from `test_remote_doris_datetime_naive_tz_catalog`.`test_remote_doris_datetime_naive_tz_db`.`t` order by k
"""

sql """ DROP DATABASE IF EXISTS test_remote_doris_datetime_naive_tz_db """

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P3] Keep the regression fixtures after the assertion

The suite already drops the database and catalog before setup. These final drops violate root AGENTS.md test standard 3, which requires leaving test objects in place for failure investigation. Please remove both post-test drops; the existing pre-setup cleanup already keeps reruns deterministic.

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 177777 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
TPC-DS sf100 test result on commit 5c95ff786d415602c1b00ff45183587179c197b6, data reload: false

query5	4330	630	490	490
query6	470	219	210	210
query7	4855	607	322	322
query8	352	195	179	179
query9	8785	4066	4000	4000
query10	486	349	309	309
query11	5955	2373	2110	2110
query12	159	114	125	114
query13	1266	624	443	443
query14	6251	5171	4867	4867
query14_1	4206	4212	4224	4212
query15	215	207	173	173
query16	1002	478	431	431
query17	1095	710	558	558
query18	2460	477	340	340
query19	213	188	147	147
query20	109	107	109	107
query21	237	159	135	135
query22	13566	13563	13440	13440
query23	17267	16445	16114	16114
query23_1	16211	16265	16447	16265
query24	7371	1750	1300	1300
query24_1	1331	1307	1281	1281
query25	587	470	399	399
query26	1338	370	238	238
query27	2553	633	397	397
query28	4519	2004	2005	2004
query29	1136	634	488	488
query30	347	268	227	227
query31	1124	1101	987	987
query32	115	66	98	66
query33	509	329	246	246
query34	1147	1160	654	654
query35	779	801	667	667
query36	1201	1175	1066	1066
query37	155	107	92	92
query38	1921	1704	1674	1674
query39	871	861	858	858
query39_1	836	819	860	819
query40	243	164	138	138
query41	65	62	63	62
query42	94	88	94	88
query43	319	323	276	276
query44	1452	774	752	752
query45	201	182	174	174
query46	1072	1161	726	726
query47	2165	2128	2031	2031
query48	403	399	295	295
query49	572	417	315	315
query50	1102	424	329	329
query51	10893	10863	10722	10722
query52	86	85	75	75
query53	245	288	197	197
query54	290	250	233	233
query55	75	71	64	64
query56	319	305	291	291
query57	1307	1280	1182	1182
query58	279	260	267	260
query59	1563	1658	1399	1399
query60	304	282	269	269
query61	160	149	151	149
query62	549	499	428	428
query63	244	199	206	199
query64	2856	1057	986	986
query65	4659	4666	4664	4664
query66	1847	526	406	406
query67	29351	29328	29191	29191
query68	3193	1503	920	920
query69	424	301	284	284
query70	1046	913	917	913
query71	406	351	322	322
query72	3390	2729	2377	2377
query73	850	765	428	428
query74	5048	4924	4715	4715
query75	2513	2491	2146	2146
query76	2315	1166	758	758
query77	342	371	315	315
query78	11787	11949	11304	11304
query79	1530	1145	757	757
query80	1313	554	479	479
query81	525	327	289	289
query82	636	153	121	121
query83	377	326	296	296
query84	280	164	128	128
query85	1028	613	507	507
query86	463	294	270	270
query87	1831	1812	1743	1743
query88	3688	2771	2755	2755
query89	429	378	336	336
query90	1850	200	195	195
query91	203	190	169	169
query92	60	59	54	54
query93	1679	1467	933	933
query94	823	353	317	317
query95	789	505	541	505
query96	1054	809	341	341
query97	2625	2631	2487	2487
query98	215	207	207	207
query99	1098	1104	970	970
Total cold run time: 264340 ms
Total hot run time: 177777 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
ClickBench: Total hot run time: 25.18 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit 5c95ff786d415602c1b00ff45183587179c197b6, data reload: false

query1	0.01	0.01	0.00
query2	0.09	0.05	0.05
query3	0.26	0.14	0.14
query4	1.60	0.14	0.14
query5	0.24	0.22	0.22
query6	1.23	1.07	1.04
query7	0.05	0.01	0.01
query8	0.06	0.04	0.04
query9	0.38	0.30	0.33
query10	0.55	0.56	0.55
query11	0.18	0.13	0.14
query12	0.18	0.14	0.15
query13	0.46	0.48	0.49
query14	1.03	1.01	1.00
query15	0.62	0.60	0.60
query16	0.32	0.32	0.32
query17	1.10	1.15	1.09
query18	0.23	0.21	0.20
query19	2.08	1.99	2.02
query20	0.02	0.01	0.01
query21	15.44	0.23	0.13
query22	4.77	0.05	0.05
query23	16.11	0.31	0.12
query24	3.00	0.43	0.33
query25	0.12	0.05	0.05
query26	0.74	0.21	0.15
query27	0.04	0.03	0.04
query28	3.46	0.91	0.52
query29	12.54	4.18	3.33
query30	0.28	0.16	0.16
query31	2.77	0.59	0.32
query32	3.23	0.58	0.48
query33	3.15	3.20	3.19
query34	15.54	4.25	3.56
query35	3.51	3.48	3.51
query36	0.57	0.45	0.46
query37	0.09	0.06	0.06
query38	0.06	0.04	0.04
query39	0.04	0.03	0.03
query40	0.18	0.16	0.16
query41	0.09	0.04	0.03
query42	0.04	0.03	0.03
query43	0.05	0.03	0.03
Total cold run time: 96.51 s
Total hot run time: 25.18 s

…tamp

DATETIME / DATETIMEV2 is a timezone-naive wall-clock type, but the Arrow
Flight / ADBC result mapped it to a timezone-aware Arrow timestamp built with
the session timezone. ADBC/pyarrow clients therefore treated the value as an
instant and rendered a spurious UTC offset, e.g.

  SELECT CAST('2026-07-02 01:36:22.069504' AS DATETIME(6))
  -> 2026-07-02 01:36:22.069504+00:00   (wrong; should be timezone-naive)

Fix on the BE Arrow conversion path:

- convert_to_arrow_type: add a datetime_naive flag. The Arrow Flight result
  schema (get_arrow_schema_from_expr_ctxs) now maps DATETIMEV2 to an Arrow
  timestamp WITHOUT timezone metadata. All other callers keep the existing
  timezone-aware mapping, so Parquet export (including forced INT96) and
  Python UDF round-trips are unchanged. TIMESTAMPTZ always keeps its timezone.
- DataTypeDateTimeV2SerDe::read_column_from_arrow: symmetrically interpret a
  timezone-naive Arrow timestamp as UTC instead of the session timezone, so a
  cross-cluster (type=doris) Flight read does not shift the wall-clock value.

Tests: BE unit tests asserting the Arrow field timezone (naive only on the
Flight path, preserved otherwise and for TIMESTAMPTZ) and a non-UTC reader
round-trip; regression cases in arrow_flight_sql_p0 and
external_table_p0/remote_doris.
@morningman
morningman force-pushed the fix-adbc-datetime-timezone branch from 5c95ff7 to 4203f0d Compare July 18, 2026 07:03
@morningman

Copy link
Copy Markdown
Contributor Author

run buildall

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-H: Total hot run time: 29789 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit 4203f0de26a72171739e4582473703c5b82fe619, data reload: false

------ Round 1 ----------------------------------
============================================
q1	17721	4254	4210	4210
q2	2038	324	198	198
q3	10328	1414	842	842
q4	4683	478	344	344
q5	7605	845	575	575
q6	182	175	142	142
q7	754	827	622	622
q8	9686	1583	1658	1583
q9	5929	4366	4327	4327
q10	6853	1759	1472	1472
q11	509	365	323	323
q12	762	587	470	470
q13	18102	3462	2760	2760
q14	278	261	247	247
q15	q16	791	783	709	709
q17	1234	1120	959	959
q18	6792	5771	5550	5550
q19	1473	1393	1110	1110
q20	794	693	608	608
q21	5950	2626	2439	2439
q22	441	356	299	299
Total cold run time: 102905 ms
Total hot run time: 29789 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4571	4473	4519	4473
q2	303	322	214	214
q3	4592	4960	4451	4451
q4	2117	2178	1363	1363
q5	4408	4275	4295	4275
q6	225	178	130	130
q7	2313	1892	1627	1627
q8	2521	2157	2095	2095
q9	7955	7847	7912	7847
q10	4697	4695	4190	4190
q11	809	433	394	394
q12	752	777	554	554
q13	3291	3697	2876	2876
q14	285	310	297	297
q15	q16	731	738	657	657
q17	1432	1384	1398	1384
q18	8078	7344	7035	7035
q19	1108	1064	1085	1064
q20	2233	2216	1943	1943
q21	5327	4620	4474	4474
q22	535	466	421	421
Total cold run time: 58283 ms
Total hot run time: 51764 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 178741 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
TPC-DS sf100 test result on commit 4203f0de26a72171739e4582473703c5b82fe619, data reload: false

query5	4314	630	486	486
query6	477	230	234	230
query7	4865	560	337	337
query8	348	190	200	190
query9	8751	4127	4105	4105
query10	461	346	303	303
query11	5788	2329	2139	2139
query12	155	109	100	100
query13	1252	609	412	412
query14	6229	5240	4905	4905
query14_1	4256	4278	4272	4272
query15	214	207	177	177
query16	998	463	471	463
query17	966	728	578	578
query18	2450	479	353	353
query19	212	204	154	154
query20	114	112	107	107
query21	238	163	137	137
query22	13672	13795	13446	13446
query23	17366	16402	16150	16150
query23_1	16297	16345	16292	16292
query24	7752	1756	1287	1287
query24_1	1310	1330	1308	1308
query25	589	460	406	406
query26	1332	364	212	212
query27	2596	606	388	388
query28	4458	2004	2002	2002
query29	1110	639	483	483
query30	347	270	230	230
query31	1130	1096	990	990
query32	110	64	64	64
query33	565	332	254	254
query34	1175	1161	677	677
query35	780	777	660	660
query36	1161	1175	1032	1032
query37	158	117	97	97
query38	1911	1722	1684	1684
query39	877	882	859	859
query39_1	831	841	829	829
query40	258	173	147	147
query41	75	69	70	69
query42	95	93	95	93
query43	341	335	293	293
query44	1487	776	771	771
query45	197	195	173	173
query46	1068	1227	724	724
query47	2085	2107	1981	1981
query48	403	400	299	299
query49	584	424	325	325
query50	1144	451	330	330
query51	10600	10712	10696	10696
query52	87	93	75	75
query53	268	288	210	210
query54	301	259	235	235
query55	78	75	73	73
query56	319	319	305	305
query57	1326	1274	1213	1213
query58	301	306	269	269
query59	1601	1650	1399	1399
query60	300	275	265	265
query61	155	156	149	149
query62	549	495	427	427
query63	239	201	204	201
query64	2814	1056	882	882
query65	4651	4623	4662	4623
query66	1842	502	381	381
query67	29421	29188	29009	29009
query68	2997	1524	985	985
query69	397	304	258	258
query70	1087	986	975	975
query71	359	359	330	330
query72	2991	2725	2482	2482
query73	861	770	448	448
query74	5090	4968	4722	4722
query75	2522	2502	2143	2143
query76	2337	1154	785	785
query77	361	382	281	281
query78	11855	12047	11404	11404
query79	2399	1159	711	711
query80	1735	550	489	489
query81	524	342	294	294
query82	627	155	120	120
query83	379	329	311	311
query84	334	161	131	131
query85	956	616	519	519
query86	429	298	273	273
query87	1837	1817	1749	1749
query88	3753	2804	2781	2781
query89	444	375	342	342
query90	1925	198	202	198
query91	199	194	165	165
query92	64	60	58	58
query93	1747	1569	971	971
query94	752	369	307	307
query95	798	507	495	495
query96	1028	828	359	359
query97	2641	2625	2505	2505
query98	216	206	241	206
query99	1126	1118	973	973
Total cold run time: 265407 ms
Total hot run time: 178741 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
ClickBench: Total hot run time: 25.26 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit 4203f0de26a72171739e4582473703c5b82fe619, data reload: false

query1	0.00	0.01	0.00
query2	0.11	0.06	0.06
query3	0.27	0.16	0.14
query4	1.62	0.15	0.15
query5	0.25	0.23	0.23
query6	1.24	1.09	1.11
query7	0.05	0.01	0.01
query8	0.06	0.04	0.04
query9	0.39	0.32	0.34
query10	0.55	0.57	0.54
query11	0.20	0.15	0.14
query12	0.20	0.14	0.15
query13	0.48	0.48	0.49
query14	1.03	1.03	1.00
query15	0.63	0.62	0.61
query16	0.32	0.34	0.31
query17	1.07	1.08	1.11
query18	0.23	0.22	0.21
query19	2.02	1.97	2.06
query20	0.02	0.01	0.01
query21	15.44	0.19	0.13
query22	4.99	0.05	0.06
query23	16.15	0.32	0.13
query24	2.94	0.44	0.33
query25	0.12	0.05	0.04
query26	0.76	0.21	0.15
query27	0.04	0.04	0.04
query28	3.49	0.98	0.56
query29	12.50	4.13	3.29
query30	0.30	0.18	0.18
query31	2.78	0.58	0.32
query32	3.22	0.61	0.50
query33	3.23	3.22	3.21
query34	15.70	4.28	3.48
query35	3.51	3.51	3.57
query36	0.55	0.44	0.43
query37	0.09	0.07	0.07
query38	0.05	0.05	0.04
query39	0.04	0.04	0.03
query40	0.18	0.18	0.14
query41	0.09	0.03	0.04
query42	0.04	0.03	0.04
query43	0.05	0.04	0.04
Total cold run time: 97 s
Total hot run time: 25.26 s

@hello-stephen

Copy link
Copy Markdown
Contributor

BE UT Coverage Report

Increment line coverage 90.48% (19/21) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 57.42% (23927/41670)
Line Coverage 41.17% (235364/571706)
Region Coverage 36.96% (185805/502694)
Branch Coverage 38.15% (83419/218646)

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100.00% (21/21) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 75.00% (30499/40667)
Line Coverage 59.08% (335899/568510)
Region Coverage 55.74% (281418/504848)
Branch Coverage 57.02% (124839/218934)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] ArrowFlight SQL result automatically converts timezone naive date to UTC (which is wrong)

2 participants