Skip to content

Conversation

@englefly
Copy link
Contributor

@englefly englefly commented Jan 1, 2026

What problem does this PR solve?

APPLY_TO_JOIN should be applied on CTE producer before REWRITE_CTE_CHILDREN. Some rules depends on StatsDerive, and StatsDerive assumes that all slots used by a plan node is from its children's outputs. But LogicalApply breaks this assumption.

Issue Number: close #xxx

Related PR: #xxx

Problem Summary:

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?

@englefly
Copy link
Contributor Author

englefly commented Jan 1, 2026

run buildall

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17727	4213	4025	4025
q2	2243	365	237	237
q3	10180	1288	722	722
q4	10213	813	320	320
q5	7499	2129	1868	1868
q6	190	168	140	140
q7	941	820	656	656
q8	9281	1335	1129	1129
q9	5484	4719	4727	4719
q10	7136	1818	1430	1430
q11	515	312	301	301
q12	709	712	575	575
q13	17817	3787	3097	3097
q14	284	313	275	275
q15	576	509	499	499
q16	690	672	634	634
q17	701	740	620	620
q18	6961	6394	7312	6394
q19	1264	997	640	640
q20	410	393	264	264
q21	3283	2685	2693	2685
q22	1141	1098	1095	1095
Total cold run time: 105245 ms
Total hot run time: 32325 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4292	4310	4311	4310
q2	338	412	327	327
q3	2347	2733	2469	2469
q4	1396	1817	1548	1548
q5	4347	4529	4313	4313
q6	216	168	123	123
q7	1991	1916	1801	1801
q8	2546	2339	2393	2339
q9	7166	7052	7002	7002
q10	2456	2702	2350	2350
q11	671	490	459	459
q12	716	740	630	630
q13	3639	3959	3095	3095
q14	268	281	265	265
q15	525	489	481	481
q16	628	655	595	595
q17	1085	1301	1306	1301
q18	7353	7284	7159	7159
q19	896	881	883	881
q20	1902	2011	1821	1821
q21	4565	4317	4237	4237
q22	1089	1069	994	994
Total cold run time: 50432 ms
Total hot run time: 48500 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 173104 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 30f8fd3768ada19797dee5ae8a7496927c7bbcfd, data reload: false

query5	4812	572	422	422
query6	323	237	223	223
query7	4219	479	275	275
query8	335	240	226	226
query9	8759	2626	2626	2626
query10	521	378	318	318
query11	15234	15152	14830	14830
query12	170	115	106	106
query13	1242	510	373	373
query14	6227	2985	2766	2766
query14_1	2699	2623	2669	2623
query15	197	196	174	174
query16	1111	462	445	445
query17	1074	686	588	588
query18	2493	436	347	347
query19	221	231	203	203
query20	126	120	120	120
query21	273	138	123	123
query22	4079	3917	3859	3859
query23	16047	15644	15327	15327
query23_1	15411	15479	15451	15451
query24	7440	1583	1232	1232
query24_1	1236	1203	1218	1203
query25	572	480	424	424
query26	1113	268	162	162
query27	2741	445	291	291
query28	4509	2198	2204	2198
query29	826	555	461	461
query30	304	236	216	216
query31	794	637	548	548
query32	76	71	67	67
query33	549	384	297	297
query34	875	886	539	539
query35	762	784	699	699
query36	847	883	847	847
query37	125	93	73	73
query38	2743	2761	2631	2631
query39	781	740	747	740
query39_1	686	697	710	697
query40	214	129	113	113
query41	67	62	62	62
query42	105	103	108	103
query43	482	435	410	410
query44	1325	761	750	750
query45	187	183	175	175
query46	864	969	626	626
query47	1352	1525	1383	1383
query48	318	320	266	266
query49	603	400	320	320
query50	645	273	208	208
query51	3803	3786	3729	3729
query52	101	105	95	95
query53	289	334	280	280
query54	276	246	240	240
query55	79	75	73	73
query56	277	311	293	293
query57	1027	1041	896	896
query58	270	250	242	242
query59	1999	2147	2156	2147
query60	324	308	296	296
query61	186	156	164	156
query62	394	343	315	315
query63	304	266	274	266
query64	4817	1279	978	978
query65	3835	3760	3688	3688
query66	1377	416	302	302
query67	16044	15111	15529	15111
query68	6107	1015	732	732
query69	502	347	307	307
query70	1063	879	949	879
query71	367	298	282	282
query72	5636	3311	3439	3311
query73	792	743	313	313
query74	8781	8888	8576	8576
query75	2863	2852	2502	2502
query76	3791	1072	654	654
query77	520	362	274	274
query78	9743	10013	9165	9165
query79	1126	876	641	641
query80	673	580	496	496
query81	485	260	230	230
query82	220	148	113	113
query83	266	251	241	241
query84	256	122	104	104
query85	893	508	451	451
query86	339	323	329	323
query87	2930	2881	2748	2748
query88	3219	2278	2286	2278
query89	400	354	331	331
query90	1951	158	155	155
query91	176	163	140	140
query92	74	69	63	63
query93	996	903	566	566
query94	582	323	279	279
query95	594	330	323	323
query96	610	458	206	206
query97	2352	2372	2284	2284
query98	215	203	192	192
query99	596	586	489	489
Total cold run time: 252703 ms
Total hot run time: 173104 ms

@doris-robot
Copy link

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

query1	0.05	0.05	0.05
query2	0.08	0.05	0.05
query3	0.25	0.08	0.08
query4	1.61	0.11	0.10
query5	0.27	0.26	0.25
query6	1.14	0.66	0.65
query7	0.03	0.02	0.02
query8	0.06	0.04	0.05
query9	0.57	0.49	0.50
query10	0.54	0.55	0.55
query11	0.15	0.11	0.11
query12	0.16	0.13	0.13
query13	0.61	0.60	0.59
query14	0.99	0.99	0.97
query15	0.80	0.80	0.80
query16	0.42	0.41	0.38
query17	1.05	1.03	1.02
query18	0.22	0.21	0.21
query19	1.86	1.77	1.88
query20	0.01	0.02	0.01
query21	16.42	0.27	0.13
query22	4.78	0.06	0.05
query23	15.96	0.27	0.10
query24	1.62	0.47	0.64
query25	0.10	0.06	0.11
query26	0.14	0.13	0.13
query27	0.08	0.06	0.06
query28	4.61	1.04	0.88
query29	12.58	3.94	3.14
query30	0.29	0.14	0.12
query31	2.82	0.61	0.39
query32	3.23	0.55	0.46
query33	2.96	3.00	2.99
query34	16.70	5.09	4.49
query35	4.47	4.45	4.49
query36	0.68	0.50	0.48
query37	0.11	0.07	0.06
query38	0.07	0.04	0.04
query39	0.05	0.03	0.03
query40	0.16	0.14	0.13
query41	0.08	0.03	0.03
query42	0.04	0.03	0.03
query43	0.05	0.03	0.04
Total cold run time: 98.87 s
Total hot run time: 27.02 s

@hello-stephen
Copy link
Contributor

FE Regression Coverage Report

Increment line coverage 100.00% (57/57) 🎉
Increment coverage report
Complete coverage report

@englefly englefly force-pushed the unnest-subquery-cte branch from 30f8fd3 to d287b7a Compare January 1, 2026 03:17
@englefly
Copy link
Contributor Author

englefly commented Jan 1, 2026

run buildall

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17690	4156	4086	4086
q2	2276	341	229	229
q3	10246	1279	728	728
q4	10251	858	345	345
q5	7603	2123	1915	1915
q6	188	168	139	139
q7	929	822	666	666
q8	9277	1419	1135	1135
q9	5135	4868	4777	4777
q10	7266	1804	1424	1424
q11	533	305	293	293
q12	704	746	596	596
q13	17935	3790	3104	3104
q14	291	293	276	276
q15	592	514	498	498
q16	705	677	655	655
q17	764	721	648	648
q18	6821	6487	6454	6454
q19	1101	982	604	604
q20	416	377	249	249
q21	3197	2579	2494	2494
q22	1075	1023	1006	1006
Total cold run time: 104995 ms
Total hot run time: 32321 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4068	4015	4034	4015
q2	344	391	319	319
q3	2117	2603	2197	2197
q4	1327	1738	1323	1323
q5	4109	3969	3982	3969
q6	206	174	130	130
q7	2118	1997	1810	1810
q8	2503	2342	2364	2342
q9	7099	7014	7099	7014
q10	2540	2762	2298	2298
q11	559	461	449	449
q12	770	777	644	644
q13	3548	4041	3337	3337
q14	288	321	288	288
q15	543	506	557	506
q16	719	714	656	656
q17	1156	1303	1311	1303
q18	7897	7816	7896	7816
q19	932	903	929	903
q20	1991	2064	1879	1879
q21	4891	4605	4585	4585
q22	1199	1163	1074	1074
Total cold run time: 50924 ms
Total hot run time: 48857 ms

@doris-robot
Copy link

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

query5	4556	582	460	460
query6	357	248	212	212
query7	4261	455	279	279
query8	339	255	248	248
query9	8756	2641	2657	2641
query10	481	386	325	325
query11	15412	14996	14998	14996
query12	181	116	110	110
query13	1270	516	428	428
query14	6294	2981	2786	2786
query14_1	2651	2670	2646	2646
query15	206	196	180	180
query16	1151	471	449	449
query17	1159	689	598	598
query18	2439	445	346	346
query19	257	223	193	193
query20	127	117	116	116
query21	502	146	118	118
query22	3857	3854	3867	3854
query23	16052	15550	15267	15267
query23_1	15453	15367	15460	15367
query24	7594	1545	1237	1237
query24_1	1242	1221	1196	1196
query25	641	489	427	427
query26	1245	263	164	164
query27	2756	450	301	301
query28	4509	2197	2198	2197
query29	794	545	455	455
query30	353	233	205	205
query31	803	609	554	554
query32	81	77	67	67
query33	582	350	294	294
query34	900	893	538	538
query35	757	849	699	699
query36	878	873	785	785
query37	176	88	73	73
query38	2749	2729	2681	2681
query39	795	744	731	731
query39_1	719	725	713	713
query40	213	133	117	117
query41	66	66	62	62
query42	106	105	105	105
query43	433	467	433	433
query44	1383	754	752	752
query45	195	186	175	175
query46	856	972	619	619
query47	1395	1476	1330	1330
query48	318	325	261	261
query49	620	399	325	325
query50	635	276	208	208
query51	3711	3798	3726	3726
query52	109	115	93	93
query53	294	327	285	285
query54	286	258	251	251
query55	79	74	80	74
query56	295	290	299	290
query57	1008	1027	969	969
query58	265	250	246	246
query59	1950	2053	2004	2004
query60	312	312	295	295
query61	162	164	162	162
query62	404	372	318	318
query63	300	266	275	266
query64	4988	1309	1001	1001
query65	3792	3680	3674	3674
query66	1447	450	307	307
query67	15488	15377	15112	15112
query68	7290	1024	728	728
query69	504	343	312	312
query70	1019	962	962	962
query71	366	314	273	273
query72	6064	3420	3383	3383
query73	774	729	316	316
query74	8754	8769	8580	8580
query75	2843	2901	2500	2500
query76	3832	1080	670	670
query77	513	375	273	273
query78	9730	9805	9198	9198
query79	1372	933	613	613
query80	641	577	484	484
query81	506	264	234	234
query82	218	143	112	112
query83	267	260	240	240
query84	259	123	106	106
query85	888	525	465	465
query86	359	299	319	299
query87	2845	2853	2731	2731
query88	3541	2301	2286	2286
query89	383	355	351	351
query90	2204	161	156	156
query91	180	162	148	148
query92	79	66	62	62
query93	1273	930	574	574
query94	573	328	299	299
query95	571	337	355	337
query96	609	472	213	213
query97	2375	2358	2294	2294
query98	224	197	203	197
query99	621	583	477	477
Total cold run time: 255602 ms
Total hot run time: 173518 ms

@doris-robot
Copy link

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

query1	0.05	0.05	0.05
query2	0.15	0.05	0.05
query3	0.27	0.09	0.08
query4	1.61	0.12	0.11
query5	0.26	0.26	0.25
query6	1.15	0.67	0.65
query7	0.03	0.02	0.03
query8	0.05	0.05	0.04
query9	0.57	0.51	0.51
query10	0.56	0.54	0.55
query11	0.18	0.11	0.11
query12	0.16	0.12	0.12
query13	0.62	0.59	0.59
query14	0.97	0.99	0.98
query15	0.80	0.78	0.79
query16	0.39	0.40	0.40
query17	1.04	1.07	1.03
query18	0.23	0.27	0.21
query19	1.89	1.88	1.85
query20	0.02	0.01	0.01
query21	16.28	0.28	0.14
query22	5.01	0.05	0.05
query23	15.87	0.29	0.10
query24	1.90	0.96	0.36
query25	0.09	0.05	0.06
query26	0.15	0.13	0.14
query27	0.14	0.06	0.06
query28	3.81	1.07	0.88
query29	12.62	3.87	3.15
query30	0.44	0.13	0.11
query31	2.96	0.60	0.37
query32	3.29	0.55	0.47
query33	3.07	3.01	2.99
query34	16.78	5.14	4.48
query35	4.44	4.43	4.50
query36	0.66	0.50	0.52
query37	0.18	0.07	0.06
query38	0.09	0.04	0.04
query39	0.14	0.03	0.03
query40	0.19	0.14	0.14
query41	0.23	0.04	0.03
query42	0.15	0.03	0.03
query43	0.06	0.04	0.04
Total cold run time: 99.55 s
Total hot run time: 27.02 s

@hello-stephen
Copy link
Contributor

FE UT Coverage Report

Increment line coverage 100.00% (57/57) 🎉
Increment coverage report
Complete coverage report

@englefly
Copy link
Contributor Author

englefly commented Jan 1, 2026

run buildall

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17582	4212	4037	4037
q2	2000	353	239	239
q3	10199	1291	745	745
q4	10214	861	331	331
q5	7516	2164	1876	1876
q6	190	180	142	142
q7	921	818	657	657
q8	9297	1461	1181	1181
q9	5090	4761	4790	4761
q10	6812	1778	1402	1402
q11	516	305	292	292
q12	707	741	604	604
q13	17787	3901	3201	3201
q14	309	297	285	285
q15	592	513	508	508
q16	714	699	655	655
q17	760	766	661	661
q18	6861	6450	6374	6374
q19	1105	961	613	613
q20	407	384	258	258
q21	3170	2608	2354	2354
q22	1085	1038	975	975
Total cold run time: 103834 ms
Total hot run time: 32151 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4108	4066	4066	4066
q2	325	378	318	318
q3	2102	2587	2237	2237
q4	1305	1719	1306	1306
q5	4100	4007	4108	4007
q6	201	171	133	133
q7	1878	1795	2073	1795
q8	2576	2414	2353	2353
q9	7175	7179	7161	7161
q10	2543	2707	2313	2313
q11	617	472	462	462
q12	738	760	622	622
q13	3624	4113	3574	3574
q14	270	317	283	283
q15	566	531	498	498
q16	678	706	637	637
q17	1179	1304	1375	1304
q18	7907	7822	7921	7822
q19	963	973	952	952
q20	1959	2077	1854	1854
q21	4800	4478	4155	4155
q22	1055	996	1000	996
Total cold run time: 50669 ms
Total hot run time: 48848 ms

@doris-robot
Copy link

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

query5	4799	580	439	439
query6	336	246	221	221
query7	4216	476	270	270
query8	331	258	234	234
query9	8791	2634	2647	2634
query10	545	354	326	326
query11	15274	15082	14826	14826
query12	176	114	110	110
query13	1255	506	385	385
query14	6383	2993	2740	2740
query14_1	2676	2619	2650	2619
query15	205	193	176	176
query16	1004	458	446	446
query17	1069	683	592	592
query18	2611	446	349	349
query19	226	224	202	202
query20	124	116	116	116
query21	216	139	117	117
query22	3808	3883	3869	3869
query23	15907	15517	15241	15241
query23_1	15430	15572	15333	15333
query24	7413	1599	1216	1216
query24_1	1234	1230	1275	1230
query25	531	437	401	401
query26	1222	259	156	156
query27	2778	453	296	296
query28	4522	2189	2194	2189
query29	755	537	423	423
query30	304	242	211	211
query31	835	640	553	553
query32	89	78	64	64
query33	532	337	282	282
query34	886	897	525	525
query35	744	787	719	719
query36	831	876	806	806
query37	133	95	77	77
query38	2730	2693	2667	2667
query39	764	777	737	737
query39_1	748	720	709	709
query40	221	132	116	116
query41	69	64	63	63
query42	105	106	102	102
query43	461	461	416	416
query44	1364	773	750	750
query45	185	185	177	177
query46	891	971	618	618
query47	1351	1457	1387	1387
query48	311	328	253	253
query49	607	413	321	321
query50	655	286	219	219
query51	3790	3735	3768	3735
query52	108	107	101	101
query53	295	325	272	272
query54	282	247	243	243
query55	78	73	71	71
query56	279	292	288	288
query57	1004	992	900	900
query58	261	241	242	241
query59	2166	2068	2153	2068
query60	314	303	296	296
query61	166	155	157	155
query62	388	354	309	309
query63	302	270	278	270
query64	4940	1316	991	991
query65	3749	3685	3655	3655
query66	1401	445	312	312
query67	14862	15276	14829	14829
query68	4755	1023	744	744
query69	490	357	308	308
query70	1056	1007	851	851
query71	370	296	273	273
query72	6084	3489	3504	3489
query73	789	725	317	317
query74	8841	8743	8581	8581
query75	2860	2848	2497	2497
query76	3798	1064	687	687
query77	517	387	286	286
query78	9619	9822	9194	9194
query79	996	895	613	613
query80	633	589	479	479
query81	479	265	227	227
query82	212	148	116	116
query83	266	264	239	239
query84	253	117	105	105
query85	885	514	464	464
query86	322	314	319	314
query87	2895	2885	2757	2757
query88	3295	2307	2297	2297
query89	397	360	326	326
query90	1945	159	145	145
query91	172	169	146	146
query92	70	70	65	65
query93	1076	942	567	567
query94	561	295	292	292
query95	600	407	322	322
query96	604	474	211	211
query97	2334	2371	2271	2271
query98	214	202	197	197
query99	610	574	501	501
Total cold run time: 250419 ms
Total hot run time: 172827 ms

@doris-robot
Copy link

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

query1	0.05	0.05	0.05
query2	0.09	0.05	0.05
query3	0.26	0.08	0.08
query4	1.61	0.11	0.11
query5	0.28	0.26	0.24
query6	1.15	0.67	0.64
query7	0.04	0.02	0.02
query8	0.06	0.04	0.04
query9	0.57	0.51	0.52
query10	0.54	0.54	0.54
query11	0.15	0.10	0.11
query12	0.16	0.13	0.12
query13	0.62	0.60	0.60
query14	0.99	1.00	0.99
query15	0.83	0.79	0.79
query16	0.39	0.39	0.40
query17	1.06	1.04	1.05
query18	0.23	0.22	0.22
query19	1.94	1.87	1.80
query20	0.02	0.01	0.01
query21	16.17	0.30	0.14
query22	4.93	0.05	0.05
query23	16.02	0.28	0.11
query24	0.94	0.62	0.18
query25	0.09	0.06	0.07
query26	0.14	0.14	0.13
query27	0.06	0.05	0.06
query28	3.96	1.05	0.87
query29	12.57	3.88	3.12
query30	0.28	0.14	0.11
query31	2.82	0.61	0.39
query32	3.24	0.55	0.47
query33	3.07	3.00	2.96
query34	16.66	5.07	4.51
query35	4.48	4.48	4.44
query36	0.67	0.50	0.50
query37	0.11	0.06	0.06
query38	0.07	0.04	0.04
query39	0.05	0.03	0.04
query40	0.17	0.14	0.14
query41	0.09	0.04	0.04
query42	0.04	0.02	0.03
query43	0.04	0.03	0.04
Total cold run time: 97.71 s
Total hot run time: 26.79 s

@hello-stephen
Copy link
Contributor

FE UT Coverage Report

Increment line coverage 100.00% (57/57) 🎉
Increment coverage report
Complete coverage report

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