Skip to content

[feature](function) Support Hive-compatible encode and decode - #68131

Open
hacklu-tu wants to merge 13 commits into
apache:masterfrom
hacklu-tu:feature/hive-encode-decode
Open

hacklu-tu wants to merge 13 commits into
apache:masterfrom
hacklu-tu:feature/hive-encode-decode

Conversation

@hacklu-tu

@hacklu-tu hacklu-tu commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

What problem does this PR solve?

Issue Number: #48203

Related PR: apache/doris-website#4151

Problem Summary:

Doris does not provide encode(string, charset) and decode(binary, charset) scalar functions with Hive-compatible character conversion semantics, which makes Hive workload migration harder.

This PR:

  • adds Nereids signatures and FE constant folding for encode and decode;
  • requires the charset argument to be a supported string literal or NULL; columns and other expressions are rejected during analysis so the vectorized BE can select the conversion path once per query;
  • adds vectorized BE implementations backed by simdutf with strict malformed and unmappable input handling;
  • supports US-ASCII, ISO-8859-1, UTF-8, UTF-16BE, UTF-16LE, and UTF-16, matched case-insensitively;
  • follows Java/Hive UTF-16 BOM behavior and propagates nulls after validating the charset literal, so an unsupported charset remains an error even when the data argument is NULL;
  • adds FE/BE unit tests and SQL regression coverage for supported conversions and error cases.

The conversion semantics are Hive-compatible for the supported character sets. Doris intentionally restricts the charset argument to a literal (or NULL) rather than supporting a per-row charset column.

Release note

Add encode and decode scalar functions with Hive-compatible conversion semantics for US-ASCII, ISO-8859-1, UTF-8, UTF-16BE, UTF-16LE, and UTF-16. The charset argument must be a supported string literal or NULL.

Check List (For Author)

  • Test

    • Regression test
      • test_encode_decode passed in generated-output and comparison modes on a native Linux Doris cluster.
    • Unit Test
      • FE EncodeDecodePlannerTest: 2 tests passed, covering planner folding and charset-validation precedence over NULL folding.
      • FE EncodeDecodeTest: 4 tests passed.
      • FE Maven reactor succeeded.
      • BE function_character_encoding_test.*: 3 tests passed before the simdutf refactor; the same suite covers the simdutf implementation in CI.
      • Native Linux FE/BE build succeeded.
    • 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. Adds encode and decode, including UTF-16 BOM semantics, strict conversion errors, FE constant folding, and the literal charset contract.
  • Does this need documentation?

Check List (For Reviewer who merge this PR)

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

### What problem does this PR solve?

Issue Number: apache#48203

Related PR: None

Problem Summary: Doris lacks Hive-compatible encode(string, charset) and decode(binary, charset) scalar functions. Add FE signatures and constant folding, BE vectorized ICU conversion with strict malformed and unmappable input handling, case-insensitive support for the six Hive-documented character sets, Java-compatible UTF-16 BOM behavior, null propagation, and focused tests.

### Release note

Add Hive-compatible encode and decode scalar functions for US-ASCII, ISO-8859-1, UTF-8, UTF-16BE, UTF-16LE, and UTF-16.

### Check List (For Author)

- Test: Unit and regression tests
    - BE function_character_encoding_test.*: 3 tests passed.
    - FE StringArithmeticTest: 10 tests passed; Maven reactor succeeded.
    - Native Linux FE/BE build succeeded.
    - test_encode_decode regression suite passed in generated-output and comparison modes.
- Behavior changed: Yes. Add encode and decode with Hive-compatible types, supported character sets, UTF-16 BOM semantics, null propagation, and strict conversion errors.
- Does this need documentation: Yes. A follow-up doris-website PR is required.
### What problem does this PR solve?

Add positive regression coverage for Hive-compatible encode and decode across supported character sets, BOM handling, empty strings, and null propagation.

### How does this PR solve the problem?

Exercise table-driven encode/decode queries and record runner-generated expected output while retaining the existing invalid-conversion checks.

### Check List

- [x] Regression test
- [x] FE unit test
- [x] BE unit test
@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?

…lict

### What problem does this PR solve?

Related PR: apache#68131

Problem Summary: CI stopped before compilation because master URL tests and encode/decode helpers conflicted in StringArithmeticTest. Merge master and preserve both test groups.

### Release note

None

### Check List (For Author)

- Test: run-fe-ut.sh --run org.apache.doris.nereids.trees.expressions.functions.executable.StringArithmeticTest (12 tests passed)
- Behavior changed: No
- Does this need documentation: No
@hacklu-tu

Copy link
Copy Markdown
Contributor Author

run buildall

@hello-stephen

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

------ Round 1 ----------------------------------
============================================
q1	17758	3872	3886	3872
q2	2302	362	303	303
q3	10016	1467	812	812
q4	4693	476	354	354
q5	7486	825	558	558
q6	182	168	136	136
q7	734	797	584	584
q8	9371	1587	1497	1497
q9	5458	4235	4215	4215
q10	6748	1600	1346	1346
q11	437	276	241	241
q12	631	419	294	294
q13	18092	2658	2022	2022
q14	266	265	233	233
q15	q16	736	716	659	659
q17	1726	1171	987	987
q18	6639	5622	5566	5566
q19	1187	1271	956	956
q20	482	417	268	268
q21	5693	3088	2738	2738
q22	456	381	320	320
Total cold run time: 101093 ms
Total hot run time: 27961 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4590	4667	4538	4538
q2	811	619	547	547
q3	4927	5110	4747	4747
q4	2306	2330	1478	1478
q5	4617	4414	4653	4414
q6	222	171	124	124
q7	1807	1713	1445	1445
q8	2332	2062	2023	2023
q9	7312	7293	7200	7200
q10	4292	4213	3832	3832
q11	517	367	342	342
q12	700	717	504	504
q13	2286	2634	2012	2012
q14	263	275	244	244
q15	q16	673	681	625	625
q17	7317	6650	6662	6650
q18	11886	11037	11793	11037
q19	1081	1007	1015	1007
q20	2198	2163	1930	1930
q21	5399	4467	4618	4467
q22	522	457	430	430
Total cold run time: 66058 ms
Total hot run time: 59596 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 153039 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 6e11697f36c907ec50ba9abfdc38ca6747952deb, data reload: false

query5	4329	627	468	468
query6	446	181	170	170
query7	4820	538	285	285
query8	328	175	164	164
query9	8798	3994	3991	3991
query10	455	307	255	255
query11	5744	2172	2000	2000
query12	160	96	101	96
query13	1247	583	423	423
query14	6540	4577	4250	4250
query14_1	4030	3980	3963	3963
query15	210	213	185	185
query16	998	492	449	449
query17	935	746	515	515
query18	2411	457	327	327
query19	205	172	132	132
query20	103	96	100	96
query21	216	137	112	112
query22	13059	13081	12791	12791
query23	15702	14588	13942	13942
query23_1	14008	14155	14046	14046
query24	7481	1748	1234	1234
query24_1	1279	1243	1245	1243
query25	523	406	348	348
query26	1262	308	163	163
query27	2715	570	335	335
query28	4555	1985	1919	1919
query29	1071	592	461	461
query30	330	247	211	211
query31	914	838	622	622
query32	169	89	93	89
query33	496	311	235	235
query34	1220	1136	638	638
query35	738	763	631	631
query36	804	786	703	703
query37	159	111	91	91
query38	1847	1774	1681	1681
query39	696	697	667	667
query39_1	662	650	680	650
query40	222	121	100	100
query41	66	64	67	64
query42	97	93	92	92
query43	345	350	301	301
query44	1432	727	679	679
query45	190	179	168	168
query46	1062	1163	699	699
query47	1484	1524	1384	1384
query48	409	425	285	285
query49	578	418	287	287
query50	1014	361	247	247
query51	10574	10197	10404	10197
query52	87	92	73	73
query53	238	259	175	175
query54	267	207	195	195
query55	82	78	68	68
query56	232	232	220	220
query57	1393	1413	1393	1393
query58	250	198	205	198
query59	2006	2065	1790	1790
query60	281	246	217	217
query61	141	147	142	142
query62	412	324	266	266
query63	219	173	177	173
query64	2843	996	840	840
query65	4008	3965	3934	3934
query66	1818	449	305	305
query67	20151	20122	19739	19739
query68	3243	1437	937	937
query69	407	319	271	271
query70	994	899	872	872
query71	291	243	207	207
query72	2927	2553	2195	2195
query73	837	739	414	414
query74	4646	4486	4307	4307
query75	2414	2331	1931	1931
query76	2348	1150	709	709
query77	373	415	288	288
query78	9028	9010	8487	8487
query79	1205	1119	741	741
query80	516	476	343	343
query81	469	298	240	240
query82	274	166	122	122
query83	268	272	242	242
query84	292	139	108	108
query85	779	469	375	375
query86	286	242	240	240
query87	1982	1977	1812	1812
query88	3704	2741	2727	2727
query89	334	295	246	246
query90	2131	188	179	179
query91	174	149	126	126
query92	102	89	88	88
query93	1471	1480	833	833
query94	505	342	306	306
query95	692	455	349	349
query96	1031	767	356	356
query97	2456	2447	2297	2297
query98	209	185	188	185
query99	743	741	631	631
Total cold run time: 241008 ms
Total hot run time: 153039 ms

@hello-stephen

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

query1	0.01	0.00	0.01
query2	0.10	0.06	0.05
query3	0.26	0.13	0.13
query4	1.61	0.14	0.14
query5	0.24	0.21	0.21
query6	1.17	0.96	0.96
query7	0.04	0.01	0.00
query8	0.05	0.03	0.04
query9	0.39	0.34	0.35
query10	0.60	0.54	0.57
query11	0.20	0.14	0.14
query12	0.18	0.15	0.15
query13	0.47	0.47	0.48
query14	0.96	0.95	0.95
query15	0.61	0.60	0.58
query16	0.30	0.32	0.31
query17	1.06	1.07	1.10
query18	0.22	0.21	0.20
query19	2.00	1.96	1.96
query20	0.02	0.02	0.01
query21	15.47	0.22	0.13
query22	4.86	0.06	0.06
query23	16.08	0.31	0.12
query24	3.00	0.44	0.34
query25	0.11	0.05	0.05
query26	0.74	0.21	0.14
query27	0.04	0.04	0.05
query28	3.51	0.78	0.36
query29	12.48	4.02	3.21
query30	0.28	0.14	0.14
query31	2.79	0.56	0.31
query32	3.22	0.58	0.49
query33	3.15	3.19	3.15
query34	15.55	3.94	3.29
query35	3.25	3.27	3.26
query36	0.56	0.45	0.42
query37	0.09	0.07	0.06
query38	0.05	0.04	0.04
query39	0.04	0.03	0.03
query40	0.17	0.16	0.15
query41	0.08	0.03	0.03
query42	0.04	0.03	0.03
query43	0.04	0.04	0.03
Total cold run time: 96.09 s
Total hot run time: 24.12 s

@hello-stephen

Copy link
Copy Markdown
Contributor

BE UT Coverage Report

Increment line coverage 100.00% (1/1) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 63.52% (29586/46578)
Line Coverage 48.25% (308144/638703)
Region Coverage 43.83% (248610/567243)
Branch Coverage 45.39% (115598/254669)

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100.00% (1/1) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 76.25% (34392/45106)
Line Coverage 61.16% (386165/631431)
Region Coverage 57.58% (325317/564970)
Branch Coverage 58.33% (148095/253880)

@hello-stephen

Copy link
Copy Markdown
Contributor

FE UT Coverage Report

Increment line coverage 75.44% (43/57) 🎉
Increment coverage report
Complete coverage report

### What problem does this PR solve?

Issue Number: apache#48203

Related PR: apache#68131

Problem Summary: The FE incremental coverage gate reported 75.44% because the encode and decode scalar expression contracts were not exercised. Add focused unit tests for signatures, child rewriting, argument validation, and scalar visitor delegation.

### Release note

None

### Check List (For Author)

- Test: Unit Test
    - ./run-fe-ut.sh --run org.apache.doris.nereids.trees.expressions.functions.scalar.EncodeDecodeTest (3 tests passed)
    - ./run-fe-ut.sh --coverage --run org.apache.doris.nereids.trees.expressions.functions.scalar.EncodeDecodeTest (3 tests passed; affected lines fully covered)
- Behavior changed: No
- Does this need documentation: No
@hacklu-tu

Copy link
Copy Markdown
Contributor Author

run buildall

@hello-stephen

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

------ Round 1 ----------------------------------
============================================
q1	17890	3924	3837	3837
q2	2274	343	288	288
q3	9995	1423	772	772
q4	4679	472	364	364
q5	7453	824	557	557
q6	176	178	134	134
q7	709	798	588	588
q8	9338	1624	1540	1540
q9	5383	4224	4179	4179
q10	6727	1617	1335	1335
q11	426	271	247	247
q12	627	410	290	290
q13	18072	2636	2007	2007
q14	256	257	232	232
q15	q16	728	714	669	669
q17	1777	1107	1017	1017
q18	6519	5614	5588	5588
q19	1167	1205	1047	1047
q20	477	382	258	258
q21	5558	2546	2368	2368
q22	436	338	303	303
Total cold run time: 100667 ms
Total hot run time: 27620 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4136	4029	4045	4029
q2	738	574	547	547
q3	4528	4928	4379	4379
q4	2231	2305	1460	1460
q5	4243	4072	4091	4072
q6	227	170	126	126
q7	1718	1623	1453	1453
q8	2161	2261	2100	2100
q9	7518	7304	7292	7292
q10	4273	4267	3831	3831
q11	567	402	371	371
q12	738	723	535	535
q13	2466	2840	2161	2161
q14	288	315	282	282
q15	q16	737	717	618	618
q17	7945	7229	7195	7195
q18	11872	11020	11820	11020
q19	1164	1064	1086	1064
q20	2264	2237	1933	1933
q21	5791	4963	4859	4859
q22	521	458	411	411
Total cold run time: 66126 ms
Total hot run time: 59738 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 153063 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 7a9f82b620e68885d50a0ba7410ee2a53a4643fb, data reload: false

query5	4336	588	460	460
query6	455	181	170	170
query7	4796	548	288	288
query8	313	176	165	165
query9	8802	3939	3951	3939
query10	469	304	261	261
query11	5908	2176	1973	1973
query12	153	105	95	95
query13	1280	571	421	421
query14	6541	4565	4178	4178
query14_1	4006	3999	3996	3996
query15	205	196	189	189
query16	965	487	445	445
query17	914	691	541	541
query18	2422	478	338	338
query19	197	184	140	140
query20	104	105	104	104
query21	219	138	115	115
query22	13067	12940	12900	12900
query23	15439	14541	14116	14116
query23_1	14086	14114	14001	14001
query24	7440	1680	1241	1241
query24_1	1253	1215	1214	1214
query25	535	435	368	368
query26	1253	309	165	165
query27	2683	556	332	332
query28	4584	1932	1951	1932
query29	1073	590	457	457
query30	332	246	200	200
query31	890	766	629	629
query32	151	96	95	95
query33	526	327	248	248
query34	1220	1107	620	620
query35	729	767	640	640
query36	799	774	730	730
query37	148	103	88	88
query38	1836	1766	1692	1692
query39	712	705	660	660
query39_1	650	657	644	644
query40	220	124	102	102
query41	74	67	67	67
query42	92	91	89	89
query43	337	342	301	301
query44	1340	687	681	681
query45	186	181	174	174
query46	1098	1143	744	744
query47	1500	1482	1376	1376
query48	381	409	278	278
query49	607	408	298	298
query50	947	341	248	248
query51	10371	10441	10253	10253
query52	83	83	71	71
query53	229	241	173	173
query54	236	194	178	178
query55	81	72	77	72
query56	236	223	211	211
query57	1516	1372	1428	1372
query58	232	206	206	206
query59	1990	2075	1829	1829
query60	273	238	227	227
query61	138	137	137	137
query62	397	318	257	257
query63	218	168	165	165
query64	2850	958	823	823
query65	4036	3911	3949	3911
query66	1800	414	328	328
query67	20090	20104	19689	19689
query68	3259	1482	862	862
query69	412	294	252	252
query70	962	913	880	880
query71	295	217	213	213
query72	2910	2482	2100	2100
query73	836	766	418	418
query74	4649	4485	4266	4266
query75	2295	2273	1929	1929
query76	2331	1081	699	699
query77	346	378	318	318
query78	9296	9017	8380	8380
query79	1369	1247	762	762
query80	749	462	350	350
query81	488	282	241	241
query82	617	168	120	120
query83	339	273	235	235
query84	316	142	108	108
query85	951	449	375	375
query86	371	239	232	232
query87	1985	1969	1842	1842
query88	3603	2687	2710	2687
query89	358	284	245	245
query90	1715	179	178	178
query91	164	149	121	121
query92	100	87	86	86
query93	1525	1456	866	866
query94	591	330	324	324
query95	656	364	408	364
query96	995	797	337	337
query97	2454	2433	2328	2328
query98	204	191	185	185
query99	744	714	613	613
Total cold run time: 241114 ms
Total hot run time: 153063 ms

@hello-stephen

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

query1	0.00	0.00	0.00
query2	0.10	0.05	0.05
query3	0.25	0.14	0.13
query4	1.61	0.14	0.13
query5	0.24	0.22	0.22
query6	1.16	0.93	0.93
query7	0.04	0.00	0.01
query8	0.05	0.04	0.04
query9	0.40	0.33	0.33
query10	0.54	0.54	0.55
query11	0.20	0.15	0.13
query12	0.19	0.15	0.15
query13	0.48	0.47	0.47
query14	0.94	0.95	0.93
query15	0.61	0.59	0.58
query16	0.31	0.32	0.33
query17	1.10	1.08	1.05
query18	0.22	0.19	0.20
query19	2.05	1.87	1.88
query20	0.02	0.01	0.01
query21	15.42	0.22	0.13
query22	4.88	0.05	0.05
query23	16.16	0.30	0.12
query24	2.97	0.45	0.34
query25	0.10	0.06	0.05
query26	0.75	0.22	0.15
query27	0.04	0.04	0.03
query28	3.59	0.80	0.36
query29	12.59	4.05	3.20
query30	0.27	0.15	0.15
query31	2.76	0.57	0.31
query32	3.22	0.60	0.49
query33	3.23	3.17	3.14
query34	15.72	3.90	3.30
query35	3.25	3.25	3.25
query36	0.55	0.40	0.43
query37	0.09	0.06	0.06
query38	0.05	0.04	0.04
query39	0.05	0.03	0.04
query40	0.18	0.15	0.14
query41	0.09	0.03	0.03
query42	0.04	0.03	0.03
query43	0.04	0.04	0.03
Total cold run time: 96.55 s
Total hot run time: 23.9 s

@hacklu-tu

Copy link
Copy Markdown
Contributor Author

run cloud_p0

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100.00% (1/1) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 76.25% (34367/45070)
Line Coverage 61.13% (385636/630820)
Region Coverage 57.53% (324667/564302)
Branch Coverage 58.35% (147937/253548)

@hacklu-tu

Copy link
Copy Markdown
Contributor Author

run check_coverage

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100.00% (1/1) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 76.25% (34367/45070)
Line Coverage 61.13% (385636/630820)
Region Coverage 57.53% (324667/564302)
Branch Coverage 58.35% (147937/253548)

@hacklu-tu

Copy link
Copy Markdown
Contributor Author

/review

1 similar comment
@linrrzqqq

Copy link
Copy Markdown
Collaborator

/review

@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.

Static-only review of exact head 7a9f82b620e68885d50a0ba7410ee2a53a4643fb against base e85575e3ad60389259dfe267a90124e6299a230a. I found two correctness inconsistencies; the exact failure paths and requested coverage are in the inline comments.

Checkpoint conclusions:

  • Goal, approach, and tests: the six advertised charsets, strict conversion errors, UTF-16 BOM behavior, and NULL propagation are implemented and broadly tested, but the two retained invariance cases are uncovered.
  • Scope control: all 12 authoritative changed files plus registration, constant execution, literal serialization, column ownership, source discovery, and test discovery call chains were covered.
  • Concurrency: converter and scratch state are execution-local; no shared mutable state or lock-order issue is introduced.
  • Lifecycle and static initialization: ICU resources are RAII-owned and reset safely; no static-initialization hazard was found.
  • Configuration: no configuration surface is added or changed.
  • Compatibility: no persisted or wire format changes are introduced; old BEs cannot execute the new function names until upgraded, which is the ordinary limitation for a new scalar function.
  • Parallel paths: FE folding and BE runtime types/names agree, except for the retained charset-name normalization mismatch.
  • Null, const, and type safety: result ownership and checked shapes are sound, except for the retained constant-charset validation ordering.
  • Test coverage and result correctness: BE, FE, and ordered regression oracles are sound for covered cases; tests do not compare NULL plus an invalid constant charset or Unicode-folded literal names with runtime column names.
  • Observability: no new long-lived service or state transition needs metrics/logging.
  • Persistence and replay: not applicable; no durable state is changed.
  • Data writes: only scalar result columns are produced, and their storage owns the copied bytes.
  • FE/BE contract: signatures, nullability, physical return types, visitor dispatch, and serialization agree apart from the inline normalization issue.
  • Performance and memory: the implementation is linear and task-thread allocations are accounted; repeated converter setup and the no-op varbinary reserve were reviewed but lacked evidence of a material regression.
  • Other issues: none survived adjudication or the second convergence round.

Validation status: no local build or test was run, as required by the review task. Author and CI reports were treated as external claims, not independent validation. At submission time GitHub reports successful compile, BE UT, FE UT, P0, cloud, and performance checks, while check_coverage_fe is failing and the automated code-review check remains pending. No additional review focus was supplied.

ConverterCache converters;
std::string converted;
CharacterSet constant_character_set = CharacterSet::UTF_8;
if (character_set_is_const && input_rows_count != 0 &&

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.

[P2] Preserve NULL propagation before validating a constant charset

This parse runs before the row loop, so a nullable source column containing NULL plus a constant unsupported charset (for example, GBK) fails here. The same logical row with the charset supplied by a nonconstant column reaches the NULL branch first and returns NULL, making results depend on the physical const/vector shape. Please validate and cache the constant charset only when the first non-NULL row needs it, and cover this case for both functions.


private static Charset supportedCharacterSet(String name) {
String canonicalName;
switch (name.toUpperCase(Locale.ROOT)) {

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.

[P2] Use identical charset-name folding in FE and BE

Locale.ROOT uppercasing applies Unicode mappings: Uſ-ASCII (U+017F long s) becomes US-ASCII, so a literal can fold successfully here. BE only uppercases ASCII bytes and rejects the identical value when it comes from a column, so constant folding changes query behavior. Please use the same ASCII-only validation on both sides (or otherwise share exactly the same normalization) and add a literal-versus-runtime regression case.

### What problem does this PR solve?

Issue Number: close apache#48203

Related PR: apache#68131

Problem Summary: FE constant folding normalized character set names with Unicode uppercasing, while BE only performs ASCII case-insensitive matching. This allowed names such as Uſ-ASCII to fold successfully in FE but fail when supplied through a runtime column. Match supported names with ASCII-only comparison and add literal-versus-runtime regression coverage.

### Release note

Fix inconsistent character set validation between FE constant folding and BE runtime execution for encode and decode.

### Check List (For Author)

- Test: Unit Test / Regression test
    - ./run-fe-ut.sh --run org.apache.doris.nereids.trees.expressions.functions.executable.StringArithmeticTest (13 tests passed)
    - Added regression coverage for literal and runtime character set arguments; not run locally because it requires a Linux Doris cluster
- Behavior changed: Yes. Non-ASCII names that only become supported through Unicode case conversion are now rejected consistently.
- Does this need documentation: No
@hacklu-tu

Copy link
Copy Markdown
Contributor Author

run buildall

### What problem does this PR solve?

Issue Number: apache#48203

Related PR: apache#68131

Problem Summary: Character conversion still goes through ICU even though the supported sets are ASCII, Latin1, UTF-8, and UTF-16. Use simdutf for those transcodes. Keep strict errors, Java/Hive UTF-16 BOM behavior, and the constant character-set contract.

### Release note

None

### Check List (For Author)

- Test: Unit Test
    - Existing function_character_encoding_test covers the charset, BOM, null, and invalid-input cases. Not rerun in this commit because the local tree does not have the simdutf third-party build.
- Behavior changed: No. Same supported character sets and error conditions. The error suffix now uses simdutf's error name instead of an ICU status name.
- Does this need documentation: No
…and decode

### What problem does this PR solve?

Issue Number: apache#48203

Related PR: apache#68131

Problem Summary: The character set argument must be a string literal, not a general constant expression. Reject columns and expressions such as upper('utf-8') during analysis, and reject literals outside US-ASCII, ISO-8859-1, UTF-8, UTF-16BE, UTF-16LE, and UTF-16. A NULL literal is still allowed. Run the same check again after rewrite.

### Release note

encode and decode now require the character set to be a supported string literal or NULL.

### Check List (For Author)

- Test: Unit Test / Regression test
    - EncodeDecodeTest covers literal, NULL, unsupported charset, and non-literal arguments.
    - regression-test/suites/query_p0/sql_functions/binary_functions/test_encode_decode.groovy updated for the literal contract.
- Behavior changed: Yes. upper('utf-8') and other non-literal character set expressions are rejected.
- Does this need documentation: Yes. apache/doris-website#4151
hacklu-tu added a commit to hacklu-tu/doris-website that referenced this pull request Sep 23, 2026
The charset argument is a supported string literal or NULL, not a general constant expression.

Related PR: apache/doris#68131
@hacklu-tu

Copy link
Copy Markdown
Contributor Author

run buildall

@hacklu-tu

Copy link
Copy Markdown
Contributor Author

run buildall

### What problem does this PR solve?

Issue Number: close apache#48203

Related PR: apache#68131

Problem Summary: The strict Linux BE builds treated shadowed name parameters and an unused UTF-16 output offset as errors. Rename the character-set parameters and remove the unused local without changing conversion behavior.

### Release note

None

### Check List (For Author)

- Test: Strict Clang syntax compilation, clang-format, and build hygiene checks. The local targeted BE UT was blocked during macOS OpenBLAS/OpenMP configuration before Doris compilation.

- Behavior changed: No

- Does this need documentation: No
@hacklu-tu

Copy link
Copy Markdown
Contributor Author

run buildall

@hello-stephen

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

------ Round 1 ----------------------------------
============================================
q1	17774	4219	3903	3903
q2	2176	367	298	298
q3	10055	1403	795	795
q4	4684	480	350	350
q5	7562	920	551	551
q6	187	167	140	140
q7	742	801	596	596
q8	9302	1387	1584	1387
q9	5481	4232	4240	4232
q10	6818	1367	1016	1016
q11	422	273	258	258
q12	636	434	291	291
q13	18019	2622	2002	2002
q14	257	254	232	232
q15	q16	723	711	650	650
q17	1711	1108	1021	1021
q18	6561	5613	5562	5562
q19	1209	1237	1069	1069
q20	488	404	267	267
q21	5619	3348	2916	2916
q22	450	379	320	320
Total cold run time: 100876 ms
Total hot run time: 27856 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4649	4699	4516	4516
q2	792	578	545	545
q3	4727	5226	4617	4617
q4	2255	2376	1448	1448
q5	4660	4408	4622	4408
q6	231	184	132	132
q7	1840	1732	1468	1468
q8	2408	2034	2068	2034
q9	7413	7261	7247	7247
q10	3668	3807	3091	3091
q11	544	369	380	369
q12	707	713	498	498
q13	2280	2590	1981	1981
q14	266	280	269	269
q15	q16	665	689	608	608
q17	7374	6710	6657	6657
q18	11856	11104	11757	11104
q19	1112	1003	998	998
q20	2196	2178	1898	1898
q21	4927	4104	4285	4104
q22	515	475	399	399
Total cold run time: 65085 ms
Total hot run time: 58391 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 152402 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 62069e53c5f754c31badaafaee67b1a12cbf8609, data reload: false

query5	4319	586	474	474
query6	419	207	193	193
query7	4880	572	306	306
query8	319	176	171	171
query9	8810	4015	4021	4015
query10	428	305	253	253
query11	5810	3515	3213	3213
query12	153	88	85	85
query13	1254	568	412	412
query14	6501	4524	4223	4223
query14_1	3993	3992	3959	3959
query15	203	196	186	186
query16	977	503	455	455
query17	908	683	556	556
query18	2429	464	335	335
query19	200	179	148	148
query20	83	84	83	83
query21	225	134	118	118
query22	13072	13025	12768	12768
query23	14091	13116	12397	12397
query23_1	12597	12498	12671	12498
query24	7239	1145	680	680
query24_1	732	731	665	665
query25	576	437	379	379
query26	1273	310	168	168
query27	2682	559	340	340
query28	4544	1994	1973	1973
query29	1632	758	527	527
query30	303	217	184	184
query31	901	763	641	641
query32	149	103	97	97
query33	543	321	250	250
query34	1174	1083	673	673
query35	736	749	650	650
query36	807	787	740	740
query37	150	105	91	91
query38	1833	1772	1688	1688
query39	692	683	647	647
query39_1	643	623	661	623
query40	222	126	106	106
query41	71	71	72	71
query42	101	95	93	93
query43	338	347	308	308
query44	1373	732	745	732
query45	181	178	167	167
query46	1106	1176	764	764
query47	1504	1488	1396	1396
query48	407	445	338	338
query49	577	402	295	295
query50	973	361	271	271
query51	10179	10279	10118	10118
query52	88	89	74	74
query53	241	254	182	182
query54	255	219	201	201
query55	77	79	70	70
query56	231	220	207	207
query57	1470	1469	1297	1297
query58	283	262	280	262
query59	2006	2049	1857	1857
query60	274	250	223	223
query61	156	151	149	149
query62	391	319	274	274
query63	217	178	175	175
query64	2781	975	789	789
query65	3475	3407	3409	3407
query66	1796	426	296	296
query67	20075	20018	19852	19852
query68	3231	1483	985	985
query69	408	288	261	261
query70	892	858	811	811
query71	294	233	210	210
query72	2613	2523	2278	2278
query73	804	758	421	421
query74	4617	4457	4272	4272
query75	2285	2281	1925	1925
query76	2321	1106	752	752
query77	363	405	308	308
query78	9211	9009	8437	8437
query79	1357	1200	718	718
query80	620	462	370	370
query81	550	321	275	275
query82	638	153	132	132
query83	295	230	196	196
query84	332	146	114	114
query85	875	475	385	385
query86	332	241	233	233
query87	1996	1991	1840	1840
query88	3643	2722	2743	2722
query89	361	289	247	247
query90	1909	175	179	175
query91	172	162	130	130
query92	99	90	89	89
query93	1501	1410	871	871
query94	554	343	288	288
query95	660	353	337	337
query96	1067	758	373	373
query97	2437	2410	2321	2321
query98	160	147	148	147
query99	714	725	635	635
Total cold run time: 236014 ms
Total hot run time: 152402 ms

@hello-stephen

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

query1	0.00	0.00	0.01
query2	0.09	0.05	0.05
query3	0.25	0.13	0.13
query4	1.60	0.14	0.14
query5	0.24	0.22	0.21
query6	1.15	0.97	0.95
query7	0.04	0.01	0.00
query8	0.06	0.04	0.03
query9	0.39	0.32	0.33
query10	0.55	0.58	0.54
query11	0.20	0.14	0.15
query12	0.18	0.15	0.16
query13	0.46	0.48	0.47
query14	0.94	0.94	0.95
query15	0.60	0.57	0.57
query16	0.30	0.30	0.32
query17	1.10	1.10	1.09
query18	0.21	0.21	0.20
query19	1.99	1.87	1.88
query20	0.02	0.01	0.01
query21	15.48	0.21	0.13
query22	4.89	0.06	0.05
query23	16.17	0.29	0.12
query24	3.02	0.39	0.33
query25	0.10	0.05	0.03
query26	0.73	0.20	0.16
query27	0.04	0.04	0.04
query28	3.50	0.79	0.35
query29	12.50	3.96	3.18
query30	0.28	0.15	0.16
query31	2.77	0.55	0.31
query32	3.23	0.61	0.48
query33	3.20	3.15	3.24
query34	15.49	3.91	3.27
query35	3.22	3.24	3.23
query36	0.55	0.43	0.41
query37	0.09	0.07	0.06
query38	0.05	0.04	0.03
query39	0.04	0.03	0.03
query40	0.17	0.14	0.15
query41	0.09	0.03	0.02
query42	0.04	0.03	0.04
query43	0.05	0.03	0.04
Total cold run time: 96.07 s
Total hot run time: 23.84 s

@hello-stephen

Copy link
Copy Markdown
Contributor

BE UT Coverage Report

Increment line coverage 100.00% (1/1) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 63.94% (29776/46566)
Line Coverage 48.60% (310220/638320)
Region Coverage 44.11% (250058/566854)
Branch Coverage 45.70% (116297/254506)

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100.00% (1/1) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 76.32% (34416/45092)
Line Coverage 61.21% (386275/631044)
Region Coverage 57.66% (325524/564569)
Branch Coverage 58.40% (148167/253719)

@hacklu-tu

Copy link
Copy Markdown
Contributor Author

run buildall

1 similar comment
@hacklu-tu

Copy link
Copy Markdown
Contributor Author

run buildall

@hello-stephen

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

------ Round 1 ----------------------------------
============================================
q1	17611	3891	3884	3884
q2	2202	368	308	308
q3	10042	1478	836	836
q4	4691	479	353	353
q5	7466	836	553	553
q6	177	168	135	135
q7	752	805	630	630
q8	9311	1522	1567	1522
q9	5457	4200	4175	4175
q10	6836	1333	1029	1029
q11	435	271	248	248
q12	633	414	302	302
q13	18046	2609	2009	2009
q14	265	261	235	235
q15	q16	727	716	653	653
q17	1764	1169	1085	1085
q18	6633	5631	5551	5551
q19	1321	1297	1104	1104
q20	468	398	255	255
q21	5756	2992	2670	2670
q22	425	341	296	296
Total cold run time: 101018 ms
Total hot run time: 27833 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4172	4068	4052	4052
q2	723	556	509	509
q3	4485	4821	4296	4296
q4	2238	2327	1443	1443
q5	4238	4078	4074	4074
q6	229	174	126	126
q7	1727	1567	1455	1455
q8	2179	2522	2111	2111
q9	7588	7513	7705	7513
q10	3718	3721	3135	3135
q11	566	391	363	363
q12	744	720	522	522
q13	2508	2802	2164	2164
q14	304	300	285	285
q15	q16	696	705	628	628
q17	7743	7134	7094	7094
q18	12143	11098	11769	11098
q19	1145	1047	1046	1046
q20	2261	2185	1942	1942
q21	5331	4330	4544	4330
q22	542	473	424	424
Total cold run time: 65280 ms
Total hot run time: 58610 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 152057 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 62069e53c5f754c31badaafaee67b1a12cbf8609, data reload: false

query5	4321	587	451	451
query6	422	207	189	189
query7	4834	539	296	296
query8	321	178	161	161
query9	8777	4018	3997	3997
query10	440	301	255	255
query11	5895	3537	3220	3220
query12	148	90	87	87
query13	1253	596	406	406
query14	6529	4481	4189	4189
query14_1	3966	3952	3888	3888
query15	205	199	181	181
query16	995	504	452	452
query17	913	681	539	539
query18	2429	461	343	343
query19	203	184	150	150
query20	94	82	80	80
query21	220	133	117	117
query22	13017	12908	12831	12831
query23	14143	12960	12349	12349
query23_1	12982	12594	12548	12548
query24	7320	1129	650	650
query24_1	703	715	692	692
query25	546	411	373	373
query26	1248	300	165	165
query27	2710	520	343	343
query28	4542	1968	1993	1968
query29	1619	695	507	507
query30	293	213	189	189
query31	881	769	637	637
query32	154	90	86	86
query33	532	296	257	257
query34	1162	1134	643	643
query35	703	742	651	651
query36	787	781	692	692
query37	140	101	82	82
query38	1824	1780	1665	1665
query39	693	717	654	654
query39_1	641	673	654	654
query40	221	120	103	103
query41	67	65	63	63
query42	97	100	89	89
query43	330	342	297	297
query44	1369	713	724	713
query45	182	177	161	161
query46	1121	1199	765	765
query47	1480	1477	1375	1375
query48	400	432	289	289
query49	587	404	300	300
query50	1040	365	257	257
query51	10477	10268	10434	10268
query52	94	90	77	77
query53	239	251	181	181
query54	241	197	185	185
query55	75	74	69	69
query56	227	230	201	201
query57	1391	1460	1391	1391
query58	280	262	263	262
query59	1987	2086	1856	1856
query60	275	245	232	232
query61	152	152	142	142
query62	394	321	263	263
query63	211	174	178	174
query64	2837	1010	810	810
query65	3474	3429	3388	3388
query66	1784	426	300	300
query67	20109	20032	19873	19873
query68	3208	1513	885	885
query69	412	299	256	256
query70	891	818	810	810
query71	299	232	224	224
query72	2775	2627	2216	2216
query73	837	707	447	447
query74	4602	4457	4294	4294
query75	2291	2265	1914	1914
query76	2362	1104	776	776
query77	361	376	286	286
query78	8981	9089	8420	8420
query79	1197	1182	773	773
query80	511	453	378	378
query81	523	321	277	277
query82	261	164	125	125
query83	212	222	194	194
query84	307	141	113	113
query85	817	492	390	390
query86	311	235	234	234
query87	1972	1986	1831	1831
query88	3578	2737	2702	2702
query89	320	287	243	243
query90	2134	177	177	177
query91	176	154	129	129
query92	104	91	89	89
query93	1437	1479	841	841
query94	537	344	269	269
query95	682	457	329	329
query96	993	786	343	343
query97	2422	2432	2327	2327
query98	156	153	146	146
query99	717	727	627	627
Total cold run time: 235807 ms
Total hot run time: 152057 ms

@hello-stephen

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

query1	0.01	0.01	0.00
query2	0.09	0.05	0.05
query3	0.25	0.13	0.13
query4	1.60	0.14	0.14
query5	0.26	0.21	0.22
query6	1.16	0.89	0.96
query7	0.04	0.01	0.01
query8	0.05	0.04	0.04
query9	0.39	0.34	0.35
query10	0.56	0.54	0.54
query11	0.20	0.15	0.14
query12	0.18	0.14	0.14
query13	0.45	0.47	0.47
query14	0.95	0.95	0.93
query15	0.60	0.59	0.59
query16	0.30	0.31	0.31
query17	1.11	1.07	1.10
query18	0.21	0.19	0.20
query19	2.00	2.00	1.96
query20	0.02	0.02	0.01
query21	15.49	0.21	0.13
query22	4.83	0.05	0.04
query23	16.15	0.31	0.11
query24	3.02	0.41	0.33
query25	0.10	0.07	0.04
query26	0.73	0.21	0.15
query27	0.05	0.04	0.04
query28	3.52	0.86	0.35
query29	12.52	4.00	3.22
query30	0.28	0.15	0.14
query31	2.76	0.56	0.31
query32	3.22	0.59	0.49
query33	3.17	3.21	3.28
query34	15.51	3.93	3.25
query35	3.24	3.21	3.24
query36	0.56	0.44	0.42
query37	0.11	0.06	0.06
query38	0.05	0.04	0.03
query39	0.04	0.03	0.03
query40	0.17	0.15	0.15
query41	0.09	0.04	0.03
query42	0.04	0.03	0.04
query43	0.05	0.03	0.03
Total cold run time: 96.13 s
Total hot run time: 23.96 s

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100.00% (1/1) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 76.21% (34390/45124)
Line Coverage 61.12% (385839/631322)
Region Coverage 57.57% (325114/564732)
Branch Coverage 58.27% (147926/253852)

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100.00% (1/1) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 76.22% (34395/45126)
Line Coverage 61.13% (385973/631404)
Region Coverage 57.59% (325324/564863)
Branch Coverage 58.29% (147995/253914)

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100.00% (1/1) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 76.34% (34450/45126)
Line Coverage 61.25% (386747/631404)
Region Coverage 57.70% (325898/564863)
Branch Coverage 58.41% (148323/253914)

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100.00% (1/1) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 76.34% (34450/45126)
Line Coverage 61.25% (386745/631404)
Region Coverage 57.69% (325874/564863)
Branch Coverage 58.41% (148322/253914)

@hello-stephen

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

------ Round 1 ----------------------------------
============================================
q1	18240	3923	3882	3882
q2	2963	358	297	297
q3	10708	1400	781	781
q4	4743	486	343	343
q5	7927	831	555	555
q6	185	180	145	145
q7	747	784	598	598
q8	9731	1313	1369	1313
q9	6080	4178	4189	4178
q10	7172	1311	1023	1023
q11	695	270	249	249
q12	846	415	304	304
q13	18597	2630	1990	1990
q14	263	257	234	234
q15	q16	738	716	658	658
q17	1883	1151	1045	1045
q18	6556	5600	5516	5516
q19	1480	1293	1131	1131
q20	495	389	259	259
q21	5866	3028	2841	2841
q22	439	370	324	324
Total cold run time: 106354 ms
Total hot run time: 27666 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4612	4453	4483	4453
q2	733	569	556	556
q3	4758	5212	4677	4677
q4	2297	2376	1484	1484
q5	4774	4263	4222	4222
q6	227	174	131	131
q7	1726	1595	1443	1443
q8	2346	2104	2059	2059
q9	7192	7316	7324	7316
q10	3688	3610	3105	3105
q11	587	406	372	372
q12	730	697	509	509
q13	2341	2725	2172	2172
q14	290	313	266	266
q15	q16	717	726	645	645
q17	7642	7097	6820	6820
q18	11876	11059	11796	11059
q19	1084	990	1028	990
q20	2217	2182	1922	1922
q21	5090	4252	4387	4252
q22	508	475	429	429
Total cold run time: 65435 ms
Total hot run time: 58882 ms

@hello-stephen

Copy link
Copy Markdown
Contributor

FE Regression Coverage Report

Increment line coverage 81.11% (73/90) 🎉
Increment coverage report
Complete coverage report

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 151961 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 62069e53c5f754c31badaafaee67b1a12cbf8609, data reload: false

query5	4400	574	436	436
query6	437	209	202	202
query7	4832	552	293	293
query8	329	174	158	158
query9	8816	3994	4008	3994
query10	461	306	242	242
query11	5825	3535	3249	3249
query12	182	90	84	84
query13	1256	596	396	396
query14	6495	4506	4220	4220
query14_1	3941	3898	3922	3898
query15	203	202	179	179
query16	3295	484	443	443
query17	1004	688	536	536
query18	2239	462	339	339
query19	208	182	158	158
query20	84	82	83	82
query21	772	134	112	112
query22	13137	12981	12796	12796
query23	13894	13055	12376	12376
query23_1	12529	12593	12594	12593
query24	7185	1125	662	662
query24_1	631	699	741	699
query25	532	410	352	352
query26	1487	308	154	154
query27	2409	562	338	338
query28	4542	1977	1965	1965
query29	1554	716	515	515
query30	384	212	174	174
query31	875	752	620	620
query32	141	92	89	89
query33	537	299	248	248
query34	1178	1095	632	632
query35	711	745	621	621
query36	826	786	737	737
query37	157	108	87	87
query38	1828	1765	1685	1685
query39	682	721	657	657
query39_1	645	651	630	630
query40	230	116	95	95
query41	65	70	61	61
query42	99	91	93	91
query43	334	349	302	302
query44	1364	705	716	705
query45	180	173	163	163
query46	1024	1171	741	741
query47	1470	1470	1410	1410
query48	406	396	300	300
query49	634	403	276	276
query50	1004	340	257	257
query51	10259	10642	10314	10314
query52	85	89	75	75
query53	237	254	176	176
query54	243	198	188	188
query55	77	72	71	71
query56	240	215	226	215
query57	1488	1501	1441	1441
query58	285	255	262	255
query59	1981	2100	1862	1862
query60	284	241	228	228
query61	143	143	141	141
query62	464	325	264	264
query63	214	179	175	175
query64	2419	961	794	794
query65	3462	3404	3422	3404
query66	1699	425	301	301
query67	20211	19987	19813	19813
query68	3210	1486	855	855
query69	554	312	259	259
query70	894	831	805	805
query71	300	224	211	211
query72	2845	2424	2158	2158
query73	803	761	402	402
query74	4595	4524	4296	4296
query75	2301	2272	1920	1920
query76	1862	1070	744	744
query77	376	390	297	297
query78	9072	8970	8410	8410
query79	1299	1143	744	744
query80	613	475	372	372
query81	598	312	278	278
query82	630	167	129	129
query83	380	231	189	189
query84	321	150	113	113
query85	858	439	374	374
query86	374	235	233	233
query87	1999	1974	1821	1821
query88	3647	2765	2772	2765
query89	355	273	240	240
query90	1909	176	179	176
query91	163	154	124	124
query92	137	88	81	81
query93	1465	1414	871	871
query94	564	336	277	277
query95	658	448	337	337
query96	1118	786	340	340
query97	2437	2448	2359	2359
query98	161	150	152	150
query99	781	729	608	608
Total cold run time: 241662 ms
Total hot run time: 151961 ms

@hello-stephen

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

query1	0.00	0.00	0.00
query2	0.34	0.05	0.05
query3	0.70	0.14	0.12
query4	2.19	0.14	0.14
query5	0.25	0.22	0.22
query6	1.85	0.98	0.94
query7	0.05	0.01	0.00
query8	0.06	0.04	0.04
query9	0.76	0.34	0.33
query10	0.60	0.54	0.57
query11	0.35	0.16	0.14
query12	0.24	0.15	0.15
query13	0.48	0.47	0.46
query14	0.94	0.96	0.95
query15	0.63	0.58	0.58
query16	0.32	0.33	0.33
query17	1.08	1.07	1.05
query18	0.21	0.20	0.20
query19	2.23	1.96	2.09
query20	0.03	0.01	0.01
query21	16.43	0.17	0.13
query22	4.78	0.06	0.05
query23	17.38	0.31	0.13
query24	18.03	0.45	0.36
query25	0.12	0.06	0.04
query26	0.72	0.21	0.16
query27	0.04	0.03	0.04
query28	3.60	0.84	0.35
query29	12.77	4.02	3.20
query30	0.28	0.15	0.17
query31	2.88	0.53	0.30
query32	3.52	0.58	0.49
query33	3.19	3.28	3.16
query34	15.60	3.94	3.26
query35	3.21	3.22	3.18
query36	0.55	0.45	0.44
query37	0.24	0.07	0.07
query38	0.05	0.04	0.04
query39	0.17	0.02	0.03
query40	0.22	0.15	0.14
query41	0.32	0.03	0.03
query42	0.18	0.04	0.03
query43	0.04	0.04	0.03
Total cold run time: 117.63 s
Total hot run time: 24 s

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100.00% (1/1) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 76.34% (34450/45126)
Line Coverage 61.25% (386759/631404)
Region Coverage 57.71% (325963/564863)
Branch Coverage 58.42% (148342/253914)

@hello-stephen

Copy link
Copy Markdown
Contributor

FE Regression Coverage Report

Increment line coverage 81.11% (73/90) 🎉
Increment coverage report
Complete coverage report

@hello-stephen

Copy link
Copy Markdown
Contributor

BE UT Coverage Report

Increment line coverage 100.00% (1/1) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 64.01% (29830/46604)
Line Coverage 48.66% (310813/638722)
Region Coverage 44.14% (250377/567174)
Branch Coverage 45.73% (116482/254717)

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100.00% (1/1) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 76.34% (34450/45126)
Line Coverage 61.25% (386763/631404)
Region Coverage 57.70% (325925/564863)
Branch Coverage 58.42% (148333/253914)

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.

3 participants