Skip to content

Conversation

@Mryange
Copy link
Contributor

@Mryange Mryange commented Nov 7, 2025

What problem does this PR solve?

There used to be many unused parameters in the function framework; this PR removes them.
The previous default-NULL handling framework inserted intermediate results into the block and then erased them — when blocks are large this caused significant overhead.
Now intermediates are handled using a temporary block, and a simple_insert function is provided that only inserts values into the data.

Release note

None

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

@Mryange
Copy link
Contributor Author

Mryange commented Nov 7, 2025

run buildall

@Mryange
Copy link
Contributor Author

Mryange commented Nov 7, 2025

run buildall

@doris-robot
Copy link

TPC-H: Total hot run time: 34429 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit 9b0bf5dbed9ab764e384e83fa260a29c43210ae0, data reload: false

------ Round 1 ----------------------------------
q1	17631	5168	5042	5042
q2	2003	312	201	201
q3	10302	1283	731	731
q4	10222	911	390	390
q5	7489	2402	2338	2338
q6	181	166	137	137
q7	945	803	643	643
q8	9373	1372	1165	1165
q9	6904	5209	5139	5139
q10	6834	2226	1814	1814
q11	480	305	294	294
q12	340	374	237	237
q13	17774	3668	3121	3121
q14	230	228	214	214
q15	566	509	503	503
q16	1005	988	940	940
q17	598	869	380	380
q18	7409	7236	7010	7010
q19	1258	964	575	575
q20	367	352	233	233
q21	3873	3225	2350	2350
q22	1074	1020	972	972
Total cold run time: 106858 ms
Total hot run time: 34429 ms

----- Round 2, with runtime_filter_mode=off -----
q1	5159	5280	5142	5142
q2	253	331	233	233
q3	2229	2701	2307	2307
q4	1343	1817	1330	1330
q5	4249	4561	4679	4561
q6	229	178	132	132
q7	2077	1976	1827	1827
q8	2651	2705	2644	2644
q9	7340	7266	7264	7264
q10	3073	3383	3027	3027
q11	618	531	520	520
q12	682	842	669	669
q13	3594	3916	3399	3399
q14	293	307	263	263
q15	569	503	501	501
q16	1085	1114	1061	1061
q17	1228	1571	1384	1384
q18	8050	7737	7589	7589
q19	814	813	810	810
q20	2000	2067	1914	1914
q21	5192	4479	4360	4360
q22	1068	1048	1016	1016
Total cold run time: 53796 ms
Total hot run time: 51953 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 189436 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 9b0bf5dbed9ab764e384e83fa260a29c43210ae0, data reload: false

query1	1021	404	392	392
query2	6574	1716	1685	1685
query3	6755	226	223	223
query4	26247	23823	23444	23444
query5	4396	675	505	505
query6	344	249	242	242
query7	4664	532	306	306
query8	325	270	259	259
query9	8703	2616	2618	2616
query10	483	348	299	299
query11	15292	15228	15194	15194
query12	180	126	120	120
query13	1695	573	449	449
query14	11147	9313	9335	9313
query15	204	189	175	175
query16	7501	719	529	529
query17	1226	790	626	626
query18	2023	434	316	316
query19	216	203	178	178
query20	144	121	123	121
query21	212	140	114	114
query22	4053	4245	4039	4039
query23	34186	33073	33244	33073
query24	8600	2431	2448	2431
query25	585	544	454	454
query26	1242	304	176	176
query27	2714	527	360	360
query28	4388	2246	2231	2231
query29	850	676	519	519
query30	307	232	202	202
query31	943	870	755	755
query32	90	80	77	77
query33	617	416	347	347
query34	832	912	541	541
query35	842	891	761	761
query36	993	1093	906	906
query37	131	121	90	90
query38	3585	3576	3524	3524
query39	1517	1442	1432	1432
query40	227	140	127	127
query41	71	70	65	65
query42	135	119	116	116
query43	495	512	483	483
query44	1281	758	762	758
query45	201	191	185	185
query46	996	1086	676	676
query47	1779	1809	1698	1698
query48	408	445	346	346
query49	807	555	443	443
query50	689	741	428	428
query51	3946	3975	3913	3913
query52	115	117	107	107
query53	266	291	204	204
query54	324	316	301	301
query55	92	89	88	88
query56	341	338	345	338
query57	1207	1198	1116	1116
query58	304	297	304	297
query59	2574	2681	2501	2501
query60	362	370	343	343
query61	197	181	205	181
query62	854	757	677	677
query63	232	200	208	200
query64	4481	1187	869	869
query65	4124	3966	3978	3966
query66	1109	503	356	356
query67	15508	15289	15011	15011
query68	8342	957	611	611
query69	496	341	294	294
query70	1411	1297	1228	1228
query71	485	355	318	318
query72	5881	5084	4894	4894
query73	684	595	366	366
query74	8904	9168	8913	8913
query75	3971	3462	2896	2896
query76	3759	1295	799	799
query77	803	419	322	322
query78	9715	9775	8851	8851
query79	2017	920	617	617
query80	654	605	498	498
query81	520	276	226	226
query82	425	164	139	139
query83	270	270	249	249
query84	251	112	94	94
query85	901	509	430	430
query86	340	324	296	296
query87	3826	3789	3600	3600
query88	3595	2316	2300	2300
query89	413	340	306	306
query90	2034	227	223	223
query91	171	168	136	136
query92	88	75	67	67
query93	1203	1027	652	652
query94	698	476	348	348
query95	419	329	312	312
query96	499	629	290	290
query97	2986	2990	2851	2851
query98	257	216	210	210
query99	1466	1521	1283	1283
Total cold run time: 276436 ms
Total hot run time: 189436 ms

@doris-robot
Copy link

ClickBench: Total hot run time: 27.73 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit 9b0bf5dbed9ab764e384e83fa260a29c43210ae0, data reload: false

query1	0.05	0.05	0.05
query2	0.09	0.04	0.05
query3	0.25	0.08	0.09
query4	1.61	0.11	0.11
query5	0.27	0.25	0.24
query6	1.21	0.67	0.64
query7	0.04	0.03	0.02
query8	0.06	0.04	0.04
query9	0.60	0.54	0.51
query10	0.57	0.57	0.57
query11	0.16	0.10	0.12
query12	0.15	0.12	0.12
query13	0.62	0.61	0.60
query14	1.01	0.98	1.02
query15	0.84	0.84	0.85
query16	0.38	0.39	0.40
query17	1.03	1.04	1.00
query18	0.22	0.20	0.19
query19	1.92	1.76	1.77
query20	0.01	0.01	0.01
query21	15.44	0.20	0.13
query22	5.10	0.06	0.05
query23	15.67	0.24	0.10
query24	2.59	0.82	0.95
query25	0.08	0.06	0.06
query26	0.15	0.14	0.13
query27	0.06	0.05	0.06
query28	4.50	1.14	0.93
query29	12.65	3.87	3.22
query30	0.28	0.14	0.12
query31	2.82	0.60	0.38
query32	3.23	0.54	0.47
query33	3.04	3.11	3.06
query34	15.90	5.17	4.56
query35	4.55	4.50	4.60
query36	0.67	0.51	0.50
query37	0.09	0.07	0.08
query38	0.07	0.04	0.04
query39	0.04	0.03	0.03
query40	0.17	0.15	0.13
query41	0.09	0.04	0.03
query42	0.04	0.03	0.03
query43	0.04	0.03	0.03
Total cold run time: 98.36 s
Total hot run time: 27.73 s

@hello-stephen
Copy link
Contributor

BE UT Coverage Report

Increment line coverage 85.71% (30/35) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 52.78% (18227/34533)
Line Coverage 38.13% (165764/434721)
Region Coverage 33.16% (129054/389176)
Branch Coverage 33.87% (55320/163322)

@hello-stephen
Copy link
Contributor

BE Regression && UT Coverage Report

Increment line coverage 97.14% (34/35) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 71.55% (24288/33947)
Line Coverage 58.06% (252800/435441)
Region Coverage 53.50% (211180/394697)
Branch Coverage 54.75% (90007/164405)

Copy link
Contributor

@HappenLee HappenLee left a comment

Choose a reason for hiding this comment

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

LGTM

@github-actions github-actions bot added the approved Indicates a PR has been approved by one committer. label Nov 10, 2025
@github-actions
Copy link
Contributor

PR approved by at least one committer and no changes requested.

@github-actions
Copy link
Contributor

PR approved by anyone and no changes requested.

Copy link
Contributor

@zclllyybb zclllyybb left a comment

Choose a reason for hiding this comment

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

LGTM

@zclllyybb zclllyybb merged commit 162c78d into apache:master Nov 11, 2025
29 of 30 checks passed
wyxxxcat pushed a commit to wyxxxcat/doris that referenced this pull request Nov 13, 2025
… optimize the default NULL-handling logic. (apache#57811)

There used to be many unused parameters in the function framework; this
PR removes them.
The previous default-NULL handling framework inserted intermediate
results into the block and then erased them — when blocks are large this
caused significant overhead.
Now intermediates are handled using a temporary block, and a
simple_insert function is provided that only inserts values into the
data.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by one committer. reviewed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants