Skip to content

Conversation

@suxiaogang223
Copy link
Contributor

@suxiaogang223 suxiaogang223 commented Jun 24, 2025

@suxiaogang223 suxiaogang223 requested a review from morrySnow as a code owner June 24, 2025 06:42
@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?

@morrySnow
Copy link
Contributor

run buildall

@suxiaogang223 suxiaogang223 changed the title branch-3.1: [enhance](orc) Optimize ORC Predicate Pushdown for OR-connected Predicate branch-3.1: [enhance](orc) Optimize ORC Predicate Pushdown for OR-connected Predicate #43255 #44615 #45104 #47625 #49927 Jun 24, 2025
@suxiaogang223 suxiaogang223 changed the title branch-3.1: [enhance](orc) Optimize ORC Predicate Pushdown for OR-connected Predicate #43255 #44615 #45104 #47625 #49927 branch-3.1: [enhance](orc) Optimize ORC Predicate Pushdown for OR-connected Predicate (#43255 #44615 #45104 #47625 #49927) Jun 24, 2025
@suxiaogang223 suxiaogang223 changed the title branch-3.1: [enhance](orc) Optimize ORC Predicate Pushdown for OR-connected Predicate (#43255 #44615 #45104 #47625 #49927) branch-3.1: [enhance](orc) Optimize ORC Predicate Pushdown for OR-connected Predicate (#43255 #44615 #45104 #47625 #49088 #49927) Jun 24, 2025
@hello-stephen
Copy link
Contributor

Cloud UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 83.20% (1119/1345)
Line Coverage 66.56% (19027/28586)
Region Coverage 66.26% (9435/14239)
Branch Coverage 56.22% (5105/9080)

@suxiaogang223
Copy link
Contributor Author

run buildall

@hello-stephen
Copy link
Contributor

Cloud UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 83.20% (1119/1345)
Line Coverage 66.53% (19019/28586)
Region Coverage 66.28% (9437/14239)
Branch Coverage 56.24% (5107/9080)

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17618	6806	6655	6655
q2	2047	165	160	160
q3	10580	1150	1136	1136
q4	10214	840	718	718
q5	7936	2892	2893	2892
q6	232	135	137	135
q7	1013	627	623	623
q8	9750	1999	2065	1999
q9	6785	6431	6417	6417
q10	7004	2286	2326	2286
q11	482	257	266	257
q12	389	204	206	204
q13	17796	2947	2989	2947
q14	238	199	210	199
q15	494	462	460	460
q16	489	376	378	376
q17	989	620	562	562
q18	7307	6626	6784	6626
q19	1313	956	950	950
q20	495	197	203	197
q21	3913	3151	3211	3151
q22	1098	993	992	992
Total cold run time: 108182 ms
Total hot run time: 39942 ms

----- Round 2, with runtime_filter_mode=off -----
q1	6584	6599	6520	6520
q2	330	231	241	231
q3	2890	2750	2832	2750
q4	2064	1804	1842	1804
q5	5744	5759	5715	5715
q6	204	125	125	125
q7	2224	1773	1764	1764
q8	3353	3543	3503	3503
q9	8867	8758	8876	8758
q10	3549	3550	3511	3511
q11	587	494	491	491
q12	803	613	643	613
q13	8310	3107	3223	3107
q14	298	267	260	260
q15	494	476	479	476
q16	486	425	431	425
q17	1826	1624	1589	1589
q18	8358	7717	7743	7717
q19	1743	1567	1457	1457
q20	2096	1894	1863	1863
q21	5184	5013	4828	4828
q22	1095	992	985	985
Total cold run time: 67089 ms
Total hot run time: 58492 ms

@doris-robot
Copy link

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

query1	970	377	364	364
query2	6537	1882	1839	1839
query3	6699	217	216	216
query4	34137	23372	23552	23372
query5	4269	463	468	463
query6	279	187	188	187
query7	4641	313	312	312
query8	283	228	236	228
query9	9631	2574	2576	2574
query10	490	261	262	261
query11	18677	15137	15205	15137
query12	165	104	102	102
query13	1644	441	423	423
query14	10291	7082	6695	6695
query15	243	174	180	174
query16	8018	478	475	475
query17	1620	585	550	550
query18	2168	302	306	302
query19	309	157	158	157
query20	115	109	108	108
query21	209	104	104	104
query22	4451	4237	4163	4163
query23	34248	33562	33245	33245
query24	11226	2807	2895	2807
query25	689	410	420	410
query26	1421	170	171	170
query27	2932	345	339	339
query28	7845	2108	2124	2108
query29	928	436	443	436
query30	322	156	157	156
query31	1020	808	796	796
query32	99	60	63	60
query33	803	297	317	297
query34	920	499	509	499
query35	906	726	727	726
query36	1102	949	916	916
query37	127	70	70	70
query38	3963	3844	3766	3766
query39	1476	1432	1424	1424
query40	288	102	101	101
query41	55	50	57	50
query42	116	109	106	106
query43	517	474	469	469
query44	1268	834	810	810
query45	182	169	168	168
query46	1131	719	698	698
query47	1961	1819	1876	1819
query48	431	340	333	333
query49	1189	414	415	414
query50	826	412	424	412
query51	7396	7129	7032	7032
query52	104	93	98	93
query53	255	181	181	181
query54	1342	449	459	449
query55	74	77	74	74
query56	255	249	261	249
query57	1312	1171	1149	1149
query58	244	206	217	206
query59	3002	2855	2771	2771
query60	285	257	245	245
query61	109	104	111	104
query62	857	679	691	679
query63	215	194	192	192
query64	5392	631	624	624
query65	3261	3187	3191	3187
query66	1448	314	360	314
query67	15760	15849	15630	15630
query68	4871	578	560	560
query69	441	274	280	274
query70	1193	1102	1143	1102
query71	318	259	257	257
query72	6394	4138	4047	4047
query73	752	353	354	353
query74	10015	8952	9045	8952
query75	3390	2669	2640	2640
query76	3009	1098	1162	1098
query77	400	276	267	267
query78	10502	9654	9557	9557
query79	2343	599	609	599
query80	1068	423	416	416
query81	533	222	218	218
query82	629	89	86	86
query83	218	153	147	147
query84	240	76	74	74
query85	1855	301	296	296
query86	485	295	293	293
query87	4392	4187	4260	4187
query88	4208	2361	2344	2344
query89	398	296	287	287
query90	1967	187	184	184
query91	140	109	111	109
query92	63	51	51	51
query93	2056	578	557	557
query94	853	299	292	292
query95	352	249	255	249
query96	611	274	283	274
query97	3295	3120	3185	3120
query98	220	206	192	192
query99	1505	1286	1280	1280
Total cold run time: 303864 ms
Total hot run time: 189352 ms

@doris-robot
Copy link

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

query1	0.04	0.03	0.03
query2	0.07	0.02	0.03
query3	0.23	0.07	0.06
query4	1.63	0.10	0.10
query5	0.54	0.51	0.52
query6	1.14	0.72	0.73
query7	0.04	0.02	0.02
query8	0.04	0.03	0.04
query9	0.55	0.50	0.51
query10	0.55	0.55	0.56
query11	0.14	0.10	0.10
query12	0.14	0.11	0.11
query13	0.62	0.60	0.59
query14	0.77	0.80	0.79
query15	0.85	0.81	0.82
query16	0.38	0.38	0.39
query17	1.04	1.03	0.99
query18	0.24	0.22	0.21
query19	1.90	1.85	1.88
query20	0.02	0.01	0.01
query21	15.42	0.59	0.57
query22	2.22	2.29	1.84
query23	17.29	0.99	0.82
query24	2.60	1.98	0.13
query25	0.16	0.06	0.25
query26	0.29	0.14	0.12
query27	0.03	0.04	0.04
query28	10.88	0.52	0.46
query29	12.57	3.24	3.23
query30	0.24	0.06	0.06
query31	2.86	0.38	0.37
query32	3.25	0.47	0.46
query33	2.99	3.02	2.99
query34	17.01	4.49	4.52
query35	4.61	4.49	4.51
query36	0.65	0.49	0.48
query37	0.09	0.06	0.06
query38	0.04	0.03	0.04
query39	0.04	0.03	0.03
query40	0.17	0.12	0.12
query41	0.07	0.02	0.02
query42	0.03	0.02	0.02
query43	0.03	0.02	0.02
Total cold run time: 104.47 s
Total hot run time: 29.29 s

@suxiaogang223
Copy link
Contributor Author

run buildall

@doris-robot
Copy link

Cloud UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 83.20% (1119/1345)
Line Coverage 66.47% (19000/28586)
Region Coverage 66.25% (9434/14239)
Branch Coverage 56.18% (5101/9080)

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17614	6790	6609	6609
q2	2070	174	165	165
q3	10665	1078	1194	1078
q4	10516	737	756	737
q5	7746	2831	2763	2763
q6	212	134	143	134
q7	985	613	610	610
q8	9356	1923	2030	1923
q9	6714	6395	6402	6395
q10	6991	2325	2308	2308
q11	468	261	259	259
q12	395	203	211	203
q13	17756	3001	2963	2963
q14	235	204	207	204
q15	488	465	466	465
q16	457	383	378	378
q17	971	550	619	550
q18	7234	6726	6687	6687
q19	1329	1070	988	988
q20	490	196	197	196
q21	3964	3105	3116	3105
q22	1107	966	996	966
Total cold run time: 107763 ms
Total hot run time: 39686 ms

----- Round 2, with runtime_filter_mode=off -----
q1	6574	6578	6544	6544
q2	322	241	236	236
q3	2887	2743	2822	2743
q4	2060	1806	1771	1771
q5	5757	5721	5755	5721
q6	212	129	131	129
q7	2174	1849	1824	1824
q8	3356	3598	3530	3530
q9	8933	8740	8948	8740
q10	3551	3487	3517	3487
q11	584	482	490	482
q12	803	577	637	577
q13	8877	3137	3126	3126
q14	310	288	265	265
q15	503	458	465	458
q16	497	431	447	431
q17	1851	1629	1634	1629
q18	8360	7717	7699	7699
q19	1698	1654	1551	1551
q20	2148	1896	1822	1822
q21	4951	5036	5036	5036
q22	1143	1020	1029	1020
Total cold run time: 67551 ms
Total hot run time: 58821 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 196617 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 4c64e58e6d4263c9527c610764ab8e0ac0facadc, data reload: false

query1	1305	911	900	900
query2	6338	1884	1892	1884
query3	10786	4318	4365	4318
query4	61350	29049	23707	23707
query5	5203	452	449	449
query6	390	179	179	179
query7	5513	312	315	312
query8	323	241	241	241
query9	8657	2621	2622	2621
query10	467	281	262	262
query11	17985	15212	15704	15212
query12	158	105	111	105
query13	1447	443	429	429
query14	10901	7657	6698	6698
query15	209	193	177	177
query16	7199	485	501	485
query17	1152	619	567	567
query18	1846	315	312	312
query19	218	170	164	164
query20	118	107	106	106
query21	210	101	102	101
query22	4712	4367	4840	4367
query23	34832	34032	34776	34032
query24	6211	3002	2958	2958
query25	554	466	433	433
query26	666	172	170	170
query27	1819	367	363	363
query28	3980	2179	2184	2179
query29	699	472	467	467
query30	232	159	157	157
query31	998	794	849	794
query32	66	56	60	56
query33	424	330	291	291
query34	925	502	537	502
query35	873	740	749	740
query36	1104	958	981	958
query37	115	70	74	70
query38	4120	3965	3973	3965
query39	1519	1462	1464	1462
query40	203	99	102	99
query41	47	49	47	47
query42	119	106	116	106
query43	539	493	498	493
query44	1223	823	831	823
query45	186	164	170	164
query46	1142	727	740	727
query47	2002	1914	1919	1914
query48	445	343	351	343
query49	735	394	399	394
query50	854	449	442	442
query51	7333	7222	7183	7183
query52	98	96	92	92
query53	276	191	187	187
query54	578	466	466	466
query55	76	79	81	79
query56	280	254	275	254
query57	1314	1214	1192	1192
query58	225	213	209	209
query59	3191	3127	2992	2992
query60	288	269	257	257
query61	112	109	107	107
query62	774	656	694	656
query63	216	185	183	183
query64	1396	654	642	642
query65	3264	3175	3192	3175
query66	721	295	302	295
query67	16008	15498	15424	15424
query68	4333	598	583	583
query69	467	269	261	261
query70	1158	1141	1148	1141
query71	354	265	255	255
query72	6099	3996	4027	3996
query73	753	358	346	346
query74	10625	8924	9344	8924
query75	3358	2674	2674	2674
query76	1895	1003	1099	1003
query77	527	279	278	278
query78	10636	9654	9635	9635
query79	1781	592	604	592
query80	1329	443	433	433
query81	503	214	221	214
query82	945	86	85	85
query83	169	148	142	142
query84	287	78	75	75
query85	982	309	288	288
query86	380	300	292	292
query87	4423	4223	4333	4223
query88	3933	2403	2377	2377
query89	421	291	296	291
query90	1955	189	188	188
query91	141	106	107	106
query92	69	50	49	49
query93	2364	569	569	569
query94	767	304	289	289
query95	365	262	256	256
query96	614	285	281	281
query97	3301	3149	3200	3149
query98	213	196	204	196
query99	1992	1288	1290	1288
Total cold run time: 316408 ms
Total hot run time: 196617 ms

@doris-robot
Copy link

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

query1	0.04	0.04	0.03
query2	0.09	0.04	0.05
query3	0.23	0.05	0.06
query4	1.65	0.08	0.09
query5	0.52	0.52	0.50
query6	1.13	0.73	0.74
query7	0.02	0.02	0.02
query8	0.05	0.05	0.05
query9	0.56	0.49	0.50
query10	0.56	0.57	0.55
query11	0.16	0.13	0.13
query12	0.16	0.12	0.13
query13	0.61	0.60	0.60
query14	0.79	0.81	0.82
query15	0.85	0.84	0.83
query16	0.38	0.39	0.37
query17	1.01	1.02	1.05
query18	0.21	0.19	0.20
query19	1.98	1.84	1.88
query20	0.02	0.01	0.01
query21	15.42	0.68	0.66
query22	3.74	7.01	2.38
query23	18.30	1.38	1.32
query24	2.20	0.23	0.22
query25	0.16	0.08	0.09
query26	0.28	0.18	0.18
query27	0.08	0.07	0.07
query28	13.30	0.60	0.57
query29	12.66	3.36	3.34
query30	0.25	0.06	0.05
query31	2.86	0.40	0.40
query32	3.24	0.48	0.48
query33	2.98	3.03	3.06
query34	17.08	4.49	4.51
query35	4.63	4.56	4.54
query36	0.66	0.47	0.48
query37	0.20	0.16	0.16
query38	0.16	0.15	0.16
query39	0.05	0.04	0.04
query40	0.16	0.14	0.13
query41	0.10	0.05	0.06
query42	0.07	0.05	0.05
query43	0.04	0.04	0.04
Total cold run time: 109.64 s
Total hot run time: 31.36 s

@suxiaogang223 suxiaogang223 force-pushed the orc_push_down_3.1 branch 2 times, most recently from 305cd6b to 0056293 Compare June 25, 2025 07:16
@suxiaogang223 suxiaogang223 changed the title branch-3.1: [enhance](orc) Optimize ORC Predicate Pushdown for OR-connected Predicate (#43255 #44615 #45104 #47625 #49088 #49927) branch-3.1: [enhance](orc) Optimize ORC Predicate Pushdown for OR-connected Predicate (#43255 #44615 #45104 #47506 #47625 #49088 #49927) Jun 25, 2025
@suxiaogang223
Copy link
Contributor Author

run buildall

@hello-stephen
Copy link
Contributor

Cloud UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 83.25% (1123/1349)
Line Coverage 66.80% (19347/28962)
Region Coverage 66.48% (9575/14402)
Branch Coverage 56.54% (5207/9210)

@suxiaogang223
Copy link
Contributor Author

run buildall

@doris-robot
Copy link

Cloud UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 83.25% (1123/1349)
Line Coverage 66.77% (19337/28962)
Region Coverage 66.53% (9581/14402)
Branch Coverage 56.49% (5203/9210)

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17575	7009	6782	6782
q2	3115	194	162	162
q3	11941	1184	1192	1184
q4	10971	826	779	779
q5	8123	3001	2836	2836
q6	226	137	137	137
q7	1007	635	633	633
q8	9379	2034	2057	2034
q9	6698	6420	6458	6420
q10	7007	2277	2267	2267
q11	455	274	267	267
q12	406	213	209	209
q13	17766	3008	3010	3008
q14	229	203	203	203
q15	517	469	475	469
q16	446	388	377	377
q17	978	611	534	534
q18	7422	6697	6607	6607
q19	1318	1091	1003	1003
q20	506	204	199	199
q21	4055	3345	3340	3340
q22	1075	993	980	980
Total cold run time: 111215 ms
Total hot run time: 40430 ms

----- Round 2, with runtime_filter_mode=off -----
q1	6683	6680	6660	6660
q2	324	233	225	225
q3	3004	3018	3113	3018
q4	2119	1823	1789	1789
q5	5790	5713	5776	5713
q6	210	135	133	133
q7	2203	1808	1817	1808
q8	3447	3544	3536	3536
q9	8866	8942	8923	8923
q10	3599	3593	3603	3593
q11	606	486	506	486
q12	818	578	617	578
q13	6129	3173	3252	3173
q14	299	270	273	270
q15	495	468	464	464
q16	482	463	435	435
q17	1859	1637	1618	1618
q18	8135	7693	7823	7693
q19	1742	1591	1526	1526
q20	2112	1862	1900	1862
q21	5332	5222	5011	5011
q22	1064	982	973	973
Total cold run time: 65318 ms
Total hot run time: 59487 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 190375 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 46b97e81b4211a42e1062ecc5c19ce1cff0a822e, data reload: false

query1	985	374	364	364
query2	6510	1871	1865	1865
query3	6708	221	225	221
query4	34576	23570	23526	23526
query5	4274	458	446	446
query6	286	167	184	167
query7	4626	309	312	309
query8	274	227	228	227
query9	9674	2620	2601	2601
query10	481	266	279	266
query11	18602	15165	15499	15165
query12	157	99	111	99
query13	1656	425	426	425
query14	9692	7224	7552	7224
query15	260	174	194	174
query16	8183	476	489	476
query17	1686	583	566	566
query18	2134	321	320	320
query19	382	146	145	145
query20	116	104	105	104
query21	208	100	98	98
query22	4308	4148	4095	4095
query23	34380	33410	33060	33060
query24	11302	2843	2858	2843
query25	682	404	394	394
query26	1391	164	164	164
query27	2857	343	342	342
query28	7728	2104	2104	2104
query29	906	422	421	421
query30	313	157	157	157
query31	1027	801	801	801
query32	93	56	60	56
query33	801	295	304	295
query34	928	491	524	491
query35	919	721	724	721
query36	1130	943	969	943
query37	123	69	64	64
query38	3953	3796	3784	3784
query39	1490	1419	1414	1414
query40	282	101	101	101
query41	51	50	47	47
query42	115	104	102	102
query43	528	471	472	471
query44	1324	801	791	791
query45	187	169	168	168
query46	1148	752	731	731
query47	1884	1814	1828	1814
query48	434	345	338	338
query49	1149	384	391	384
query50	823	415	411	411
query51	7322	7022	7084	7022
query52	98	94	91	91
query53	256	182	186	182
query54	1440	477	479	477
query55	85	84	83	83
query56	268	257	247	247
query57	1292	1184	1156	1156
query58	244	215	218	215
query59	3069	2951	2814	2814
query60	284	269	267	267
query61	175	137	133	133
query62	856	683	703	683
query63	227	194	215	194
query64	5463	727	730	727
query65	3300	3174	3217	3174
query66	1476	326	338	326
query67	15770	15362	15618	15362
query68	4424	593	578	578
query69	451	277	271	271
query70	1160	1157	1096	1096
query71	360	272	263	263
query72	6590	4119	4208	4119
query73	775	348	361	348
query74	9910	9285	9268	9268
query75	3378	2645	2629	2629
query76	3035	1100	1093	1093
query77	433	283	291	283
query78	10477	9608	9604	9604
query79	1126	600	594	594
query80	771	437	426	426
query81	504	219	216	216
query82	1308	89	88	88
query83	267	153	145	145
query84	237	78	86	78
query85	1164	316	301	301
query86	327	291	296	291
query87	4364	4240	4230	4230
query88	3459	2393	2361	2361
query89	413	293	297	293
query90	2088	189	189	189
query91	136	106	107	106
query92	62	51	51	51
query93	1054	550	550	550
query94	822	285	293	285
query95	355	250	259	250
query96	614	289	283	283
query97	3315	3166	3132	3132
query98	210	202	197	197
query99	1738	1331	1309	1309
Total cold run time: 300678 ms
Total hot run time: 190375 ms

@doris-robot
Copy link

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

query1	0.03	0.03	0.03
query2	0.07	0.03	0.02
query3	0.24	0.07	0.06
query4	1.63	0.11	0.11
query5	0.51	0.52	0.51
query6	1.13	0.73	0.72
query7	0.02	0.01	0.04
query8	0.04	0.03	0.03
query9	0.54	0.51	0.51
query10	0.55	0.55	0.55
query11	0.14	0.10	0.10
query12	0.13	0.11	0.12
query13	0.60	0.60	0.60
query14	0.78	0.78	0.82
query15	0.85	0.82	0.82
query16	0.39	0.38	0.37
query17	1.07	1.06	0.97
query18	0.24	0.22	0.22
query19	1.94	1.78	1.77
query20	0.01	0.01	0.01
query21	15.41	0.59	0.57
query22	2.31	1.88	2.01
query23	16.99	1.12	0.79
query24	3.03	0.98	1.97
query25	0.28	0.20	0.04
query26	0.44	0.14	0.13
query27	0.05	0.05	0.05
query28	9.63	0.48	0.47
query29	12.58	3.26	3.25
query30	0.26	0.06	0.06
query31	2.85	0.39	0.40
query32	3.22	0.46	0.47
query33	3.00	3.00	3.02
query34	16.83	4.49	4.49
query35	4.47	4.49	4.50
query36	0.66	0.48	0.48
query37	0.09	0.06	0.06
query38	0.05	0.03	0.04
query39	0.03	0.03	0.02
query40	0.16	0.13	0.12
query41	0.08	0.02	0.02
query42	0.03	0.02	0.02
query43	0.04	0.03	0.02
Total cold run time: 103.4 s
Total hot run time: 30.12 s

@morningman
Copy link
Contributor

run buildall

@doris-robot
Copy link

Cloud UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 83.25% (1123/1349)
Line Coverage 66.88% (19371/28962)
Region Coverage 66.56% (9586/14402)
Branch Coverage 56.58% (5211/9210)

@suxiaogang223
Copy link
Contributor Author

run external

2 similar comments
@suxiaogang223
Copy link
Contributor Author

run external

@suxiaogang223
Copy link
Contributor Author

run external

@suxiaogang223
Copy link
Contributor Author

run buildall

@suxiaogang223 suxiaogang223 changed the title branch-3.1: [enhance](orc) Optimize ORC Predicate Pushdown for OR-connected Predicate (#43255 #44615 #45104 #47506 #47625 #49088 #49927) branch-3.1: [enhance](orc) Optimize ORC Predicate Pushdown for OR-connected Predicate (#43255 #44615 #45104 #47506 #47625 #49088 #49835 #49927) Jun 26, 2025
@hello-stephen
Copy link
Contributor

Cloud UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 83.43% (1128/1352)
Line Coverage 67.17% (19619/29207)
Region Coverage 66.92% (9684/14470)
Branch Coverage 56.90% (5269/9260)

@suxiaogang223
Copy link
Contributor Author

run fe-ut

@suxiaogang223
Copy link
Contributor Author

run be-ut

suxiaogang223 and others added 16 commits June 27, 2025 02:55
…cate (apache#43255)

Problem Summary:
This issue addresses a limitation in Apache Doris where only predicates
joined by AND are pushed down to the ORC reader, leaving OR-connected
predicates unoptimized. By extending pushdown functionality to handle
these OR conditions, the aim is to better leverage ORC’s predicate
pushdown capabilities, reducing data reads and improving query
performance.
…4615)

In the old logic, the `check_expr_can_push_down` function does not check
whether the `orc::Literal` are constructed successfully, but only checks
during `build_search_argument`. However, if it is found that the
`orc::Literal` fails to be constructed after `builder->startNot`, it
will fail because the builder cannot end `startNot`.
Therefore, we advance the behavior of constructing `orc::Literal` to the
`check_expr_can_push_down` function and save the result to the map, so
that it will never fail in the `build_search_argument` phase.

Related PR: apache#43255
Related PR: apache#43255

Problem Summary:
Example:
```sql
CREATE TABLE table_a (
    id INT,
    age INT
) STORED AS ORC;

INSERT INTO table_a VALUES
(1, null),
(2, 18),
(3, null),
(4, 25);

CREATE TABLE table_b (
    id INT,
    age INT
) STORED AS ORC;

INSERT INTO table_b VALUES
(1, null),
(2, null),
(3, 1000000),
(4, 100);
```
run sql
```
select * from table_a inner join table_b on table_a.age <=> table_b.age and table_b.id in (1,3);
```
When executing this SQL, the backend generates a runtime filter on the
table_a side during the join operation, resulting in a condition like
WHERE table_a.age IN (NULL, 1000000). It’s important to note that since
<=> is a null-aware comparison operator, the IN predicate must also be
null-aware. However, the ORC predicate pushdown API does not support
null-aware IN predicates. As a result, our current approach ignores null
values, leading to an empty result set for this query.

To fix this bug, we’ve adjusted the logic so that predicates with
null-aware comparisons are not pushed down, ensuring the correct result
as follows:
```text
+------+------+------+------+
| id   | age  | id   | age  |
+------+------+------+------+
|    1 | NULL |    1 | NULL |
|    3 | NULL |    1 | NULL |
+------+------+------+------+
```
…ins (apache#45104)

Related PR: apache#43255

Problem Summary:
Should ignore null values when the literals of in_predicate contains
null value, like `in (1, null)`
For example, init table in hive:
```sql
CREATE TABLE sample_orc_table (
    id INT,
    name STRING,
    age INT
)
STORED AS ORC;
INSERT INTO TABLE sample_orc_table VALUES
    (1, 'Alice', 25),
    (2, NULL, NULL);
```
select result in Doris should be:
```sql
mysql> select * from sample_orc_table where age in (null,25);
+------+-------+------+
| id   | name  | age  |
+------+-------+------+
|    1 | Alice |   25 |
+------+-------+------+
1 row in set (0.30 sec)

mysql> select * from sample_orc_table where age in (25);
+------+-------+------+
| id   | name  | age  |
+------+-------+------+
|    1 | Alice |   25 |
+------+-------+------+
1 row in set (0.27 sec)

mysql> select * from sample_orc_table where age in (null);
Empty set (0.01 sec)

mysql> select * from sample_orc_table where age is null;
+------+------+------+
| id   | name | age  |
+------+------+------+
|    2 | NULL | NULL |
+------+------+------+
1 row in set (0.11 sec)
```
relate pr: apache#43255

Improved ACID table column handling
- Added support for ACID column prefix in ORC column initialization
- Fixed column name handling for ACID tables
- Improved type mapping for ACID table columns
remove unnecessary fields of orc_reader:
- remove `_col_name_to_file_col_name_low_case` by storing original field
name in `type_map`
- add comment to describe the the functionality of these mappings
This reverts commit 0056293.
…with pushdown. (apache#49835)

Problem Summary:
The current orc pushdown and delayed materialization conditions are
connected together. The conditions that can be pushed down must be used
for delayed materialization conditions. This is unreasonable. The two
should be orthogonal.
- Fix orc lazy materialization should not be bundled with pushdown.
- Fix materialization for hive acid table.
@suxiaogang223
Copy link
Contributor Author

run buildall

@hello-stephen
Copy link
Contributor

Cloud UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 83.43% (1128/1352)
Line Coverage 67.21% (19630/29207)
Region Coverage 66.88% (9678/14470)
Branch Coverage 56.86% (5265/9260)

@morrySnow morrySnow merged commit 0306f2b into apache:branch-3.1 Jun 27, 2025
19 of 22 checks passed
@suxiaogang223 suxiaogang223 deleted the orc_push_down_3.1 branch June 27, 2025 07:57
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.

6 participants