Skip to content

Conversation

@hubgeter
Copy link
Contributor

@hubgeter hubgeter commented Dec 15, 2025

What problem does this PR solve?

Problem Summary:
This pull request achieves better filtering by fetching the latest join runtime filter when creating the Parquet row group reader. Previously, the join runtime filter was fetched at the Parquet file level.

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

@Thearas
Copy link
Contributor

Thearas commented Dec 15, 2025

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?

@hubgeter
Copy link
Contributor Author

run buildall

@github-actions
Copy link
Contributor

Possible file(s) that should be tracked in LFS detected: 🚨

The following file(s) exceeds the file size limit: 1048576 bytes, as set in the .yml configuration files:

  • docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/parquet_table/runtime_filter_fact_big/fact_big.parquet

Consider using git-lfs to manage large files.

@github-actions github-actions bot added the lfs-detected! Warning Label for use when LFS is detected in the commits of a Pull Request label Dec 16, 2025
@hubgeter
Copy link
Contributor Author

run buildall

@github-actions github-actions bot removed the lfs-detected! Warning Label for use when LFS is detected in the commits of a Pull Request label Dec 16, 2025
@hubgeter hubgeter marked this pull request as ready for review December 16, 2025 07:47
@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17624	4275	4053	4053
q2	2029	361	242	242
q3	10162	1306	750	750
q4	10204	820	309	309
q5	7480	2141	1917	1917
q6	181	172	136	136
q7	1013	863	709	709
q8	9350	1430	1176	1176
q9	5055	4894	4704	4704
q10	6855	2399	1958	1958
q11	527	328	297	297
q12	652	727	597	597
q13	17775	3713	3032	3032
q14	285	301	270	270
q15	597	529	521	521
q16	684	668	631	631
q17	678	826	483	483
q18	6901	6515	6278	6278
q19	1106	946	592	592
q20	400	372	253	253
q21	3143	2511	2325	2325
q22	1062	1020	959	959
Total cold run time: 103763 ms
Total hot run time: 32192 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4095	3998	4012	3998
q2	323	411	314	314
q3	2160	2694	2272	2272
q4	1312	1745	1307	1307
q5	4217	4141	4257	4141
q6	210	168	125	125
q7	1903	2068	1941	1941
q8	2717	2578	2569	2569
q9	7667	7524	7529	7524
q10	3133	3231	2846	2846
q11	588	526	493	493
q12	702	746	632	632
q13	3554	3926	3374	3374
q14	295	311	268	268
q15	560	536	499	499
q16	652	720	630	630
q17	1272	1438	1436	1436
q18	7980	7664	7820	7664
q19	883	846	860	846
q20	2075	2018	2005	2005
q21	4937	4323	4118	4118
q22	1038	1039	960	960
Total cold run time: 52273 ms
Total hot run time: 49962 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 176509 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 71cefb9ff1c6addc831236aaa8eb0909f83e8b4f, data reload: false

query5	4373	595	435	435
query6	353	234	223	223
query7	4223	459	275	275
query8	304	258	248	248
query9	8787	2545	2522	2522
query10	505	369	342	342
query11	15575	14946	14659	14659
query12	164	112	112	112
query13	1248	491	393	393
query14	5443	2975	2760	2760
query14_1	2639	2655	2637	2637
query15	210	199	180	180
query16	894	460	435	435
query17	1038	728	616	616
query18	2431	444	353	353
query19	241	241	212	212
query20	121	119	112	112
query21	221	137	117	117
query22	3933	3993	3902	3902
query23	16627	16238	15815	15815
query23_1	16134	16128	16102	16102
query24	7352	1654	1249	1249
query24_1	1252	1244	1248	1244
query25	584	498	454	454
query26	1253	276	168	168
query27	2759	461	314	314
query28	4491	2165	2148	2148
query29	839	565	472	472
query30	319	244	223	223
query31	833	701	638	638
query32	83	73	72	72
query33	560	354	304	304
query34	932	920	564	564
query35	782	834	748	748
query36	876	904	826	826
query37	136	99	81	81
query38	2863	2854	2847	2847
query39	767	760	727	727
query39_1	796	715	714	714
query40	229	143	124	124
query41	71	68	67	67
query42	113	102	105	102
query43	433	443	404	404
query44	1366	753	753	753
query45	201	196	185	185
query46	945	979	618	618
query47	1660	1685	1596	1596
query48	331	338	254	254
query49	650	447	365	365
query50	676	315	229	229
query51	3856	3909	3796	3796
query52	110	118	103	103
query53	335	351	297	297
query54	296	276	303	276
query55	77	74	74	74
query56	287	299	287	287
query57	1148	1145	1087	1087
query58	269	246	256	246
query59	2425	2555	2386	2386
query60	303	300	278	278
query61	165	159	159	159
query62	709	685	622	622
query63	328	298	312	298
query64	5003	1278	973	973
query65	4011	3942	3944	3942
query66	1467	467	319	319
query67	15125	15067	14755	14755
query68	8355	1009	721	721
query69	505	342	311	311
query70	1129	967	1009	967
query71	398	311	275	275
query72	5766	3564	3546	3546
query73	765	713	315	315
query74	8825	8848	8639	8639
query75	3183	3089	2744	2744
query76	3930	1120	739	739
query77	653	400	289	289
query78	9442	9648	8799	8799
query79	1418	876	617	617
query80	683	660	561	561
query81	526	266	238	238
query82	207	139	104	104
query83	265	263	242	242
query84	293	118	104	104
query85	900	499	468	468
query86	388	306	270	270
query87	2998	3115	2973	2973
query88	3590	2281	2276	2276
query89	468	414	409	409
query90	2248	170	160	160
query91	179	164	143	143
query92	82	70	64	64
query93	1668	907	565	565
query94	478	307	266	266
query95	571	384	305	305
query96	599	490	206	206
query97	2269	2302	2220	2220
query98	216	198	194	194
query99	1294	1294	1236	1236
Total cold run time: 259884 ms
Total hot run time: 176509 ms

@doris-robot
Copy link

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

query1	0.05	0.05	0.05
query2	0.09	0.06	0.05
query3	0.25	0.09	0.09
query4	1.61	0.12	0.11
query5	0.26	0.25	0.26
query6	1.15	0.64	0.65
query7	0.02	0.02	0.02
query8	0.05	0.04	0.04
query9	0.56	0.50	0.51
query10	0.55	0.56	0.56
query11	0.16	0.11	0.11
query12	0.15	0.12	0.11
query13	0.62	0.60	0.60
query14	0.99	0.99	0.98
query15	0.81	0.80	0.81
query16	0.39	0.41	0.39
query17	1.00	1.00	1.03
query18	0.22	0.22	0.21
query19	1.88	1.85	1.81
query20	0.02	0.01	0.01
query21	15.43	0.28	0.14
query22	4.83	0.05	0.05
query23	16.05	0.28	0.10
query24	1.50	0.31	0.25
query25	0.05	0.05	0.06
query26	0.14	0.14	0.14
query27	0.06	0.08	0.06
query28	3.28	1.23	1.02
query29	12.61	4.09	3.22
query30	0.28	0.14	0.12
query31	2.81	0.64	0.40
query32	3.24	0.55	0.45
query33	3.00	2.97	3.00
query34	16.83	5.22	4.51
query35	4.58	4.55	4.51
query36	0.67	0.49	0.48
query37	0.11	0.06	0.07
query38	0.07	0.04	0.03
query39	0.04	0.03	0.03
query40	0.16	0.14	0.12
query41	0.09	0.04	0.03
query42	0.04	0.03	0.03
query43	0.04	0.04	0.04
Total cold run time: 96.74 s
Total hot run time: 27.14 s

@hello-stephen
Copy link
Contributor

BE UT Coverage Report

Increment line coverage 55.10% (27/49) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 53.42% (18837/35264)
Line Coverage 39.20% (174439/444979)
Region Coverage 33.78% (135048/399771)
Branch Coverage 34.68% (58149/167684)

@hello-stephen
Copy link
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100.00% (49/49) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 72.22% (24958/34557)
Line Coverage 58.99% (262127/444364)
Region Coverage 53.81% (217587/404398)
Branch Coverage 55.37% (93299/168495)

morningman
morningman previously approved these changes Dec 16, 2025
@github-actions github-actions bot added the approved Indicates a PR has been approved by one committer. label Dec 16, 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

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR enhances Parquet row group filtering by fetching the latest join runtime filters when creating each row group reader, rather than only at the file level. This allows for more efficient data filtering as runtime filters become available during query execution.

Key Changes:

  • Added runtime filter update mechanism that is called when creating new Parquet row group readers
  • Introduced test coverage to verify that runtime filters are applied across multiple row groups

Reviewed changes

Copilot reviewed 9 out of 11 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
regression-test/suites/external_table_p0/hive/test_parquet_join_runtime_filter.groovy Adds comprehensive test suite for verifying runtime filter application across Parquet row groups
docker/thirdparties/docker-compose/hive/scripts/create_preinstalled_scripts/run84.hql Creates test tables for runtime filter validation
be/src/vec/exec/scan/scanner.cpp Initializes total runtime filter count during scanner construction
be/src/vec/exec/scan/file_scanner.h Updates method signature to track runtime filter changes
be/src/vec/exec/scan/file_scanner.cpp Implements runtime filter update callback for Parquet readers
be/src/vec/exec/format/parquet/vparquet_reader.h Adds callback mechanism and lazy read context update method
be/src/vec/exec/format/parquet/vparquet_reader.cpp Implements runtime filter updates when creating row group readers
be/src/vec/exec/format/parquet/vparquet_group_reader.h Extends LazyReadContext to include partition and missing column information
be/src/runtime_filter/runtime_filter_consumer_helper.h Exposes runtime filter count accessor

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

_output_tuple_desc(_local_state->output_tuple_desc()),
_output_row_descriptor(_local_state->_parent->output_row_descriptor()),
_has_prepared(false) {
_total_rf_num = cast_set<int>(_local_state->_helper.runtime_filter_nums());
Copy link

Copilot AI Dec 16, 2025

Choose a reason for hiding this comment

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

The function name cast_set is ambiguous and doesn't clearly convey its purpose. Consider renaming to something more descriptive like set_int_value or using direct casting syntax like static_cast<int>.

Suggested change
_total_rf_num = cast_set<int>(_local_state->_helper.runtime_filter_nums());
_total_rf_num = static_cast<int>(_local_state->_helper.runtime_filter_nums());

Copilot uses AI. Check for mistakes.
Comment on lines +414 to +412
new_lazy_read_ctx.fill_partition_columns = std::move(_lazy_read_ctx.fill_partition_columns);
new_lazy_read_ctx.fill_missing_columns = std::move(_lazy_read_ctx.fill_missing_columns);
Copy link

Copilot AI Dec 16, 2025

Choose a reason for hiding this comment

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

Moving from _lazy_read_ctx and then assigning back to it on line 416 leaves the source in a moved-from state. Consider copying these values instead of moving, or restructure to avoid the circular dependency.

Suggested change
new_lazy_read_ctx.fill_partition_columns = std::move(_lazy_read_ctx.fill_partition_columns);
new_lazy_read_ctx.fill_missing_columns = std::move(_lazy_read_ctx.fill_missing_columns);
new_lazy_read_ctx.fill_partition_columns = _lazy_read_ctx.fill_partition_columns;
new_lazy_read_ctx.fill_missing_columns = _lazy_read_ctx.fill_missing_columns;

Copilot uses AI. Check for mistakes.
Comment on lines 356 to 361
// when create new row group reader, call this function to get lasted runtime filter conjuncts.
std::function<Status(bool*, VExprContextSPtrs&)> _call_late_rf_func = [](bool* changed,
VExprContextSPtrs&) {
*changed = false;
return Status::OK();
};
Copy link

Copilot AI Dec 16, 2025

Choose a reason for hiding this comment

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

The default lambda implementation always sets changed to false and returns OK. Consider documenting why this is the default behavior or making it more explicit with a named static function.

Suggested change
// when create new row group reader, call this function to get lasted runtime filter conjuncts.
std::function<Status(bool*, VExprContextSPtrs&)> _call_late_rf_func = [](bool* changed,
VExprContextSPtrs&) {
*changed = false;
return Status::OK();
};
// when creating a new row group reader, call this function to get the latest runtime filter conjuncts.
// The default implementation does nothing, sets 'changed' to false, and returns OK.
// This is used when no late runtime filter is required.
static Status default_late_rf_func(bool* changed, VExprContextSPtrs&) {
*changed = false;
return Status::OK();
}
std::function<Status(bool*, VExprContextSPtrs&)> _call_late_rf_func = default_late_rf_func;

Copilot uses AI. Check for mistakes.
@morningman
Copy link
Contributor

run buildall

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17651	4284	4089	4089
q2	2020	359	245	245
q3	10163	1345	778	778
q4	10255	910	319	319
q5	8201	2173	1909	1909
q6	241	167	136	136
q7	1003	872	730	730
q8	9364	1513	1188	1188
q9	5193	4895	4865	4865
q10	6882	2399	1944	1944
q11	528	326	302	302
q12	679	719	600	600
q13	17825	3689	3052	3052
q14	288	309	269	269
q15	599	519	512	512
q16	719	684	643	643
q17	689	833	504	504
q18	7483	6460	6254	6254
q19	1151	980	620	620
q20	400	373	250	250
q21	3141	2593	2596	2593
q22	1024	983	970	970
Total cold run time: 105499 ms
Total hot run time: 32772 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4141	4292	4067	4067
q2	327	418	326	326
q3	2164	2673	2281	2281
q4	1336	1781	1264	1264
q5	4262	4141	4182	4141
q6	211	169	128	128
q7	2426	2047	1827	1827
q8	2733	2496	2609	2496
q9	7567	7479	7554	7479
q10	3153	3218	2908	2908
q11	631	546	503	503
q12	665	761	615	615
q13	3609	4068	3450	3450
q14	288	289	303	289
q15	562	512	508	508
q16	643	665	662	662
q17	1299	1479	1423	1423
q18	7987	7734	7535	7535
q19	948	902	911	902
q20	2031	2079	1930	1930
q21	4945	4294	4141	4141
q22	1055	1004	947	947
Total cold run time: 52983 ms
Total hot run time: 49822 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 176928 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 44fa16dc2289d34007c8b5b4940ca65e134d70b2, data reload: false

query5	4533	601	445	445
query6	336	234	220	220
query7	4221	465	281	281
query8	310	250	226	226
query9	8769	2543	2551	2543
query10	520	400	335	335
query11	15262	14814	14598	14598
query12	190	122	118	118
query13	1253	495	385	385
query14	5799	3019	2825	2825
query14_1	2720	2641	2666	2641
query15	231	208	182	182
query16	878	475	453	453
query17	1160	731	615	615
query18	2446	455	406	406
query19	243	237	213	213
query20	127	117	115	115
query21	220	148	118	118
query22	3891	4101	3978	3978
query23	16652	16064	15991	15991
query23_1	15995	16111	15941	15941
query24	7381	1661	1243	1243
query24_1	1251	1238	1270	1238
query25	610	540	453	453
query26	1261	276	188	188
query27	2726	474	322	322
query28	4462	2178	2118	2118
query29	803	530	446	446
query30	315	244	218	218
query31	818	677	604	604
query32	82	70	74	70
query33	545	362	298	298
query34	925	895	538	538
query35	788	819	735	735
query36	877	889	801	801
query37	135	96	75	75
query38	2860	2899	2855	2855
query39	773	731	719	719
query39_1	706	714	704	704
query40	233	144	124	124
query41	71	64	64	64
query42	112	115	107	107
query43	424	452	408	408
query44	1355	753	748	748
query45	200	186	188	186
query46	891	977	627	627
query47	1666	1695	1618	1618
query48	325	350	258	258
query49	626	447	366	366
query50	670	307	228	228
query51	3806	3901	3792	3792
query52	107	119	105	105
query53	325	353	292	292
query54	334	272	256	256
query55	80	77	71	71
query56	314	309	298	298
query57	1142	1133	1072	1072
query58	286	274	254	254
query59	2401	2482	2362	2362
query60	317	311	300	300
query61	170	158	162	158
query62	693	686	624	624
query63	330	300	302	300
query64	5016	1292	1033	1033
query65	4039	3983	3946	3946
query66	1470	470	329	329
query67	15243	15051	14848	14848
query68	5963	1015	733	733
query69	518	347	311	311
query70	1104	989	981	981
query71	363	303	285	285
query72	6221	3562	3371	3371
query73	769	733	321	321
query74	8785	8908	8719	8719
query75	3117	3113	2747	2747
query76	3803	1155	729	729
query77	536	398	293	293
query78	9432	9636	8792	8792
query79	1035	884	634	634
query80	1174	660	576	576
query81	548	273	237	237
query82	415	138	111	111
query83	396	263	244	244
query84	252	129	108	108
query85	945	526	480	480
query86	382	299	280	280
query87	3008	3045	2949	2949
query88	3283	2285	2305	2285
query89	470	433	396	396
query90	2026	177	161	161
query91	182	169	146	146
query92	77	67	65	65
query93	1019	936	564	564
query94	527	303	284	284
query95	581	350	312	312
query96	599	493	211	211
query97	2287	2348	2223	2223
query98	208	200	196	196
query99	1295	1298	1215	1215
Total cold run time: 257274 ms
Total hot run time: 176928 ms

@doris-robot
Copy link

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

query1	0.06	0.04	0.04
query2	0.09	0.05	0.04
query3	0.26	0.09	0.09
query4	1.61	0.12	0.11
query5	0.27	0.27	0.25
query6	1.18	0.64	0.64
query7	0.04	0.03	0.02
query8	0.06	0.04	0.04
query9	0.57	0.50	0.51
query10	0.57	0.56	0.57
query11	0.16	0.12	0.11
query12	0.15	0.12	0.11
query13	0.61	0.62	0.60
query14	0.98	0.99	1.00
query15	0.81	0.79	0.82
query16	0.40	0.39	0.41
query17	1.02	1.00	1.03
query18	0.24	0.21	0.22
query19	1.92	1.80	1.79
query20	0.02	0.01	0.01
query21	15.44	0.31	0.14
query22	4.73	0.05	0.06
query23	16.18	0.29	0.10
query24	1.26	0.65	0.46
query25	0.11	0.06	0.14
query26	0.14	0.15	0.13
query27	0.08	0.05	0.05
query28	5.44	1.23	1.03
query29	12.58	4.04	3.23
query30	0.28	0.15	0.11
query31	2.82	0.62	0.40
query32	3.24	0.57	0.47
query33	3.12	3.00	3.03
query34	16.94	5.15	4.59
query35	4.64	4.55	4.53
query36	0.65	0.52	0.49
query37	0.10	0.06	0.07
query38	0.07	0.04	0.04
query39	0.04	0.04	0.04
query40	0.16	0.14	0.13
query41	0.09	0.04	0.03
query42	0.05	0.03	0.03
query43	0.04	0.03	0.03
Total cold run time: 99.22 s
Total hot run time: 27.49 s

@hello-stephen
Copy link
Contributor

BE UT Coverage Report

Increment line coverage 55.10% (27/49) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 53.43% (18843/35268)
Line Coverage 39.21% (174467/444968)
Region Coverage 33.77% (135012/399742)
Branch Coverage 34.68% (58152/167679)

@hubgeter
Copy link
Contributor Author

run buildall

@github-actions github-actions bot removed the approved Indicates a PR has been approved by one committer. label Dec 17, 2025
@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17609	4306	4123	4123
q2	2033	349	243	243
q3	10159	1344	742	742
q4	10222	876	323	323
q5	7507	2093	1960	1960
q6	183	172	134	134
q7	1033	853	706	706
q8	9350	1470	1079	1079
q9	4922	4864	4837	4837
q10	6837	2409	1968	1968
q11	517	332	288	288
q12	645	727	578	578
q13	17778	3656	3025	3025
q14	286	302	270	270
q15	594	506	512	506
q16	689	689	632	632
q17	697	808	518	518
q18	7617	6448	6206	6206
q19	1233	983	604	604
q20	383	368	256	256
q21	3110	2563	2332	2332
q22	1048	1005	935	935
Total cold run time: 104452 ms
Total hot run time: 32265 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4144	4112	4042	4042
q2	316	414	313	313
q3	2136	2627	2272	2272
q4	1327	1760	1288	1288
q5	4222	4151	4137	4137
q6	207	168	126	126
q7	1897	2273	1946	1946
q8	2678	2589	2609	2589
q9	7510	7550	7626	7550
q10	3084	3333	2813	2813
q11	600	506	481	481
q12	706	766	617	617
q13	3570	3988	3396	3396
q14	390	312	274	274
q15	566	516	518	516
q16	634	673	648	648
q17	1133	1509	1509	1509
q18	7780	7731	7684	7684
q19	915	873	873	873
q20	2003	2055	1976	1976
q21	5045	4297	4203	4203
q22	1105	1019	999	999
Total cold run time: 51968 ms
Total hot run time: 50252 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 177264 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 2937fe0360c77ad18b67d96a432330a0dd5acd38, data reload: false

query5	4520	581	433	433
query6	344	253	235	235
query7	4229	488	302	302
query8	305	263	243	243
query9	8791	2555	2547	2547
query10	519	392	328	328
query11	15177	14900	14624	14624
query12	182	118	115	115
query13	1269	502	384	384
query14	6063	3058	2817	2817
query14_1	2770	2681	2724	2681
query15	217	195	182	182
query16	860	473	444	444
query17	1131	724	614	614
query18	2462	446	357	357
query19	234	238	207	207
query20	122	119	113	113
query21	224	140	119	119
query22	4075	4148	4066	4066
query23	16509	16177	15861	15861
query23_1	16132	16158	16054	16054
query24	7356	1639	1225	1225
query24_1	1244	1264	1270	1264
query25	582	497	457	457
query26	1252	263	171	171
query27	2756	463	323	323
query28	4488	2143	2125	2125
query29	824	568	474	474
query30	320	247	220	220
query31	850	717	652	652
query32	82	75	74	74
query33	570	361	294	294
query34	899	902	550	550
query35	781	868	722	722
query36	864	929	839	839
query37	134	93	78	78
query38	2869	2872	2820	2820
query39	762	725	724	724
query39_1	711	702	706	702
query40	228	136	120	120
query41	66	64	62	62
query42	107	103	108	103
query43	439	438	410	410
query44	1332	730	749	730
query45	189	192	184	184
query46	890	980	615	615
query47	1661	1741	1609	1609
query48	331	329	260	260
query49	633	431	357	357
query50	659	287	225	225
query51	3848	3819	3766	3766
query52	103	110	98	98
query53	322	359	313	313
query54	313	265	254	254
query55	80	74	73	73
query56	297	299	296	296
query57	1150	1143	1123	1123
query58	277	258	259	258
query59	2406	2583	2356	2356
query60	312	307	299	299
query61	162	176	154	154
query62	707	671	619	619
query63	328	296	312	296
query64	4935	1306	997	997
query65	4077	3950	3921	3921
query66	1469	449	314	314
query67	15328	15039	14716	14716
query68	8449	993	737	737
query69	494	346	313	313
query70	1103	993	943	943
query71	371	315	277	277
query72	6050	3474	3629	3474
query73	770	785	316	316
query74	8720	8799	8702	8702
query75	3133	3131	2786	2786
query76	4003	1138	743	743
query77	571	395	299	299
query78	9535	9736	8928	8928
query79	1564	939	633	633
query80	757	654	557	557
query81	531	278	238	238
query82	408	133	102	102
query83	257	252	243	243
query84	256	133	108	108
query85	947	513	467	467
query86	424	308	294	294
query87	2998	3045	3002	3002
query88	3279	2308	2260	2260
query89	479	445	413	413
query90	2043	157	158	157
query91	174	174	150	150
query92	76	74	68	68
query93	1396	922	558	558
query94	507	305	278	278
query95	588	383	307	307
query96	591	465	218	218
query97	2318	2321	2242	2242
query98	216	197	205	197
query99	1260	1331	1251	1251
Total cold run time: 260120 ms
Total hot run time: 177264 ms

@doris-robot
Copy link

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

query1	0.05	0.05	0.06
query2	0.11	0.05	0.05
query3	0.26	0.08	0.08
query4	1.60	0.12	0.11
query5	0.28	0.25	0.25
query6	1.20	0.65	0.63
query7	0.04	0.03	0.03
query8	0.06	0.04	0.04
query9	0.57	0.53	0.50
query10	0.56	0.56	0.55
query11	0.15	0.11	0.11
query12	0.16	0.12	0.11
query13	0.62	0.60	0.60
query14	0.98	1.00	1.00
query15	0.81	0.81	0.81
query16	0.41	0.39	0.39
query17	1.00	1.02	0.98
query18	0.23	0.22	0.21
query19	1.95	1.83	1.84
query20	0.02	0.02	0.01
query21	15.44	0.28	0.14
query22	4.73	0.06	0.04
query23	16.11	0.28	0.10
query24	1.42	0.34	0.63
query25	0.12	0.09	0.08
query26	0.15	0.13	0.13
query27	0.08	0.06	0.05
query28	4.09	1.23	1.02
query29	12.59	4.01	3.19
query30	0.28	0.14	0.12
query31	2.83	0.60	0.40
query32	3.23	0.56	0.46
query33	2.97	3.01	3.02
query34	16.84	5.12	4.57
query35	4.58	4.59	4.57
query36	0.66	0.49	0.48
query37	0.11	0.06	0.06
query38	0.06	0.04	0.04
query39	0.05	0.03	0.03
query40	0.17	0.15	0.14
query41	0.09	0.04	0.03
query42	0.05	0.03	0.02
query43	0.04	0.04	0.03
Total cold run time: 97.75 s
Total hot run time: 27.39 s

@hello-stephen
Copy link
Contributor

BE UT Coverage Report

Increment line coverage 55.10% (27/49) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 53.38% (18824/35262)
Line Coverage 39.17% (174252/444856)
Region Coverage 33.74% (134859/399646)
Branch Coverage 34.64% (58083/167661)

@hello-stephen
Copy link
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100.00% (49/49) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 72.24% (24963/34555)
Line Coverage 58.98% (262003/444241)
Region Coverage 53.90% (217916/404273)
Branch Coverage 55.36% (93264/168472)

@hubgeter
Copy link
Contributor Author

run buildall

@hubgeter
Copy link
Contributor Author

run buildall

@doris-robot
Copy link

BE UT Coverage Report

Increment line coverage 54.17% (26/48) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 53.42% (18932/35439)
Line Coverage 39.31% (175515/446534)
Region Coverage 33.86% (135841/401160)
Branch Coverage 34.76% (58530/168386)

@hello-stephen
Copy link
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100.00% (48/48) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 72.20% (25010/34641)
Line Coverage 58.95% (262475/445257)
Region Coverage 53.81% (218131/405352)
Branch Coverage 55.29% (93425/168964)

Copy link
Contributor

@morningman morningman 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 Dec 28, 2025
@github-actions
Copy link
Contributor

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

@hello-stephen
Copy link
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100.00% (44/44) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 72.20% (25010/34641)
Line Coverage 58.95% (262475/445257)
Region Coverage 53.81% (218131/405352)
Branch Coverage 55.29% (93425/168964)

@morningman morningman merged commit 9c36839 into apache:master Dec 31, 2025
26 of 28 checks passed
morningman pushed a commit that referenced this pull request Jan 7, 2026
### What problem does this PR solve?
Problem Summary:
case from pr : #59053
hubgeter added a commit to hubgeter/doris that referenced this pull request Jan 9, 2026
…w group. (apache#59053)

Problem Summary:
This pull request achieves better filtering by fetching the latest join
runtime filter when creating the Parquet row group reader. Previously,
the join runtime filter was fetched at the Parquet file level.
hubgeter added a commit to hubgeter/doris that referenced this pull request Jan 9, 2026
### What problem does this PR solve?
Problem Summary:
case from pr : apache#59053
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. dev/4.0.x dev/4.0.x-conflict reviewed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants