Skip to content

Conversation

@yujun777
Copy link
Contributor

@yujun777 yujun777 commented Oct 14, 2025

  1. Add fold constant for nullif function;
  2. Opt fold nvl: nvl(a, a) => a, nvl(a, null) => a;
  3. Make AggregateFunction and TableGeneratingFunction to non-foldable.

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

@hello-stephen
Copy link
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?

@yujun777
Copy link
Contributor Author

run buildall

1 similar comment
@yujun777
Copy link
Contributor Author

run buildall

@doris-robot
Copy link

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

query1	0.06	0.05	0.06
query2	0.10	0.06	0.05
query3	0.25	0.09	0.08
query4	1.61	0.12	0.12
query5	0.29	0.25	0.26
query6	1.18	0.64	0.63
query7	0.03	0.03	0.02
query8	0.05	0.04	0.04
query9	0.64	0.55	0.52
query10	0.61	0.59	0.59
query11	0.17	0.11	0.12
query12	0.15	0.12	0.12
query13	0.64	0.62	0.61
query14	1.02	1.05	1.03
query15	0.86	0.87	0.86
query16	0.40	0.39	0.40
query17	1.07	1.05	1.01
query18	0.22	0.20	0.19
query19	1.90	1.83	1.87
query20	0.02	0.02	0.01
query21	15.42	0.95	0.59
query22	0.75	1.13	0.68
query23	15.01	1.42	0.61
query24	6.76	2.18	0.46
query25	0.56	0.20	0.13
query26	0.69	0.16	0.13
query27	0.06	0.06	0.05
query28	9.29	1.35	0.93
query29	12.58	3.91	3.20
query30	0.28	0.15	0.12
query31	2.83	0.60	0.40
query32	3.25	0.56	0.47
query33	3.09	3.16	3.20
query34	16.30	5.52	4.85
query35	4.88	4.97	4.95
query36	0.70	0.50	0.51
query37	0.11	0.08	0.07
query38	0.07	0.05	0.05
query39	0.03	0.03	0.03
query40	0.19	0.16	0.15
query41	0.09	0.03	0.04
query42	0.04	0.03	0.04
query43	0.04	0.03	0.03
Total cold run time: 104.29 s
Total hot run time: 30.13 s

@yujun777
Copy link
Contributor Author

run external

@yujun777
Copy link
Contributor Author

run buildall

@doris-robot
Copy link

TPC-DS: Total hot run time: 189435 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 b7e19fcdfa34adf6e1c6ff4830ae3846e7b8fac4, data reload: false

query1	1073	421	406	406
query2	6554	1679	1673	1673
query3	6753	241	227	227
query4	25911	23287	23003	23003
query5	4917	622	486	486
query6	327	235	216	216
query7	4651	487	303	303
query8	314	256	254	254
query9	8700	2559	2576	2559
query10	537	361	281	281
query11	15114	15123	14905	14905
query12	182	124	113	113
query13	1667	544	429	429
query14	11216	9242	9265	9242
query15	208	195	181	181
query16	7712	763	567	567
query17	1918	842	700	700
query18	2164	476	359	359
query19	240	249	189	189
query20	149	130	144	130
query21	300	138	121	121
query22	4567	4758	4475	4475
query23	35140	33801	33992	33801
query24	9094	2506	2498	2498
query25	643	522	477	477
query26	1292	357	181	181
query27	3931	528	353	353
query28	4328	2219	2156	2156
query29	901	658	512	512
query30	296	245	196	196
query31	929	813	731	731
query32	93	72	69	69
query33	590	389	331	331
query34	804	864	528	528
query35	834	844	739	739
query36	991	1006	888	888
query37	128	107	87	87
query38	3525	3598	3471	3471
query39	1645	1420	1407	1407
query40	220	126	119	119
query41	62	57	59	57
query42	121	115	111	111
query43	482	484	460	460
query44	1377	827	825	825
query45	183	178	170	170
query46	856	997	625	625
query47	1699	1792	1680	1680
query48	398	421	309	309
query49	761	500	415	415
query50	652	688	413	413
query51	4042	3916	3908	3908
query52	114	109	95	95
query53	234	262	202	202
query54	601	610	532	532
query55	85	87	83	83
query56	313	322	296	296
query57	1163	1170	1130	1130
query58	283	277	275	275
query59	2620	2608	2502	2502
query60	358	337	327	327
query61	155	159	155	155
query62	793	736	682	682
query63	232	190	184	184
query64	4538	1155	850	850
query65	4023	3953	3931	3931
query66	1111	438	341	341
query67	15184	15223	15035	15035
query68	9472	885	595	595
query69	487	322	281	281
query70	1339	1272	1292	1272
query71	493	354	302	302
query72	5857	4927	4970	4927
query73	729	608	351	351
query74	9357	8827	8912	8827
query75	4387	3344	2812	2812
query76	4902	1172	727	727
query77	1009	420	313	313
query78	9605	9795	8893	8893
query79	1658	833	593	593
query80	682	572	495	495
query81	498	266	230	230
query82	281	172	130	130
query83	299	278	314	278
query84	308	116	104	104
query85	866	471	439	439
query86	337	308	292	292
query87	3725	3822	3672	3672
query88	2891	2291	2239	2239
query89	396	321	305	305
query90	2132	229	221	221
query91	167	171	136	136
query92	87	140	63	63
query93	1137	974	652	652
query94	682	438	333	333
query95	404	326	307	307
query96	494	575	289	289
query97	2942	2995	2874	2874
query98	245	211	208	208
query99	1388	1420	1319	1319
Total cold run time: 282254 ms
Total hot run time: 189435 ms

@doris-robot
Copy link

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

query1	0.06	0.05	0.04
query2	0.09	0.05	0.05
query3	0.25	0.08	0.08
query4	1.61	0.11	0.12
query5	0.29	0.27	0.26
query6	1.18	0.65	0.66
query7	0.03	0.03	0.03
query8	0.05	0.04	0.04
query9	0.62	0.53	0.53
query10	0.59	0.59	0.59
query11	0.16	0.11	0.12
query12	0.15	0.12	0.12
query13	0.64	0.63	0.61
query14	1.02	1.04	1.03
query15	0.88	0.85	0.87
query16	0.41	0.41	0.41
query17	1.05	1.05	1.06
query18	0.22	0.20	0.21
query19	1.93	1.87	1.83
query20	0.01	0.02	0.01
query21	15.44	0.96	0.58
query22	0.75	1.02	0.66
query23	15.14	1.38	0.64
query24	7.14	1.77	1.15
query25	0.49	0.26	0.14
query26	0.60	0.16	0.13
query27	0.06	0.05	0.06
query28	9.97	1.41	0.94
query29	12.56	4.00	3.25
query30	0.28	0.14	0.11
query31	2.82	0.60	0.38
query32	3.24	0.57	0.48
query33	3.10	3.04	3.18
query34	15.78	5.50	4.82
query35	4.92	4.87	4.93
query36	0.72	0.52	0.50
query37	0.10	0.08	0.07
query38	0.07	0.05	0.04
query39	0.04	0.03	0.04
query40	0.17	0.16	0.13
query41	0.09	0.03	0.03
query42	0.04	0.03	0.03
query43	0.04	0.04	0.04
Total cold run time: 104.8 s
Total hot run time: 30.71 s

@yujun777
Copy link
Contributor Author

run feut

@yujun777
Copy link
Contributor Author

run cloud_p0

@yujun777
Copy link
Contributor Author

run nonConcurrent

1 similar comment
@yujun777
Copy link
Contributor Author

run nonConcurrent

@hello-stephen
Copy link
Contributor

FE Regression Coverage Report

Increment line coverage 86.21% (25/29) 🎉
Increment coverage report
Complete coverage report

@yujun777
Copy link
Contributor Author

run nonConcurrent

@hello-stephen
Copy link
Contributor

FE Regression Coverage Report

Increment line coverage 86.21% (25/29) 🎉
Increment coverage report
Complete coverage report

@yujun777
Copy link
Contributor Author

run nonConcurrent

@hello-stephen
Copy link
Contributor

FE Regression Coverage Report

Increment line coverage 86.21% (25/29) 🎉
Increment coverage report
Complete coverage report

@github-actions github-actions bot added the approved Indicates a PR has been approved by one committer. label Oct 21, 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.

@englefly englefly merged commit dc7e1d8 into apache:master Oct 22, 2025
28 checks passed
dwdwqfwe pushed a commit to dwdwqfwe/doris that referenced this pull request Oct 24, 2025
1. Add fold constant for nullif function;
2. Opt fold nvl:   `nvl(a, a)`  => `a`,  `nvl(a, null)` => `a`;
3. Make AggregateFunction and TableGeneratingFunction to non-foldable.
yujun777 added a commit to yujun777/doris that referenced this pull request Nov 20, 2025
1. Add fold constant for nullif function;
2. Opt fold nvl:   `nvl(a, a)`  => `a`,  `nvl(a, null)` => `a`;
3. Make AggregateFunction and TableGeneratingFunction to non-foldable.
yujun777 added a commit to yujun777/doris that referenced this pull request Dec 1, 2025
1. Add fold constant for nullif function;
2. Opt fold nvl:   `nvl(a, a)`  => `a`,  `nvl(a, null)` => `a`;
3. Make AggregateFunction and TableGeneratingFunction to non-foldable.
yujun777 added a commit to yujun777/doris that referenced this pull request Dec 2, 2025
1. Add fold constant for nullif function;
2. Opt fold nvl:   `nvl(a, a)`  => `a`,  `nvl(a, null)` => `a`;
3. Make AggregateFunction and TableGeneratingFunction to non-foldable.
yujun777 added a commit to yujun777/doris that referenced this pull request Dec 8, 2025
1. Add fold constant for nullif function;
2. Opt fold nvl:   `nvl(a, a)`  => `a`,  `nvl(a, null)` => `a`;
3. Make AggregateFunction and TableGeneratingFunction to non-foldable.
yujun777 added a commit to yujun777/doris that referenced this pull request Jan 9, 2026
1. Add fold constant for nullif function;
2. Opt fold nvl:   `nvl(a, a)`  => `a`,  `nvl(a, null)` => `a`;
3. Make AggregateFunction and TableGeneratingFunction to non-foldable.
yujun777 added a commit to yujun777/doris that referenced this pull request Jan 12, 2026
1. Add fold constant for nullif function;
2. Opt fold nvl:   `nvl(a, a)`  => `a`,  `nvl(a, null)` => `a`;
3. Make AggregateFunction and TableGeneratingFunction to non-foldable.
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