Skip to content

[fix](runtime-filter) Preserve query semantics during partition pruning#65857

Merged
BiteTheDDDDt merged 1 commit into
apache:masterfrom
BiteTheDDDDt:codex/fix-rf-partition-prune-expr-error
Jul 22, 2026
Merged

[fix](runtime-filter) Preserve query semantics during partition pruning#65857
BiteTheDDDDt merged 1 commit into
apache:masterfrom
BiteTheDDDDt:codex/fix-rf-partition-prune-expr-error

Conversation

@BiteTheDDDDt

@BiteTheDDDDt BiteTheDDDDt commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

What problem does this PR solve?

Issue Number: None

Related PR: None

Problem Summary:

With runtime filter partition pruning enabled, a join target expression was eligible for partition pruning even when it contained a non-movable function such as assert_true. The pruning path then evaluated assert_true against LIST partition boundary values before normal row predicates ran. A boundary belonging only to filtered-out rows could therefore introduce an INVALID_ARGUMENT error, while the same query returned 1 with partition pruning disabled.

The FE runtime-filter partition-prune classifier now rejects target expressions containing NoneMovableFunction. This prevents speculative partition-boundary evaluation of assert_true; both partition-pruning modes preserve normal query semantics and return 1.

Release note

Fix runtime filter partition pruning to preserve query behavior for non-movable target expressions.

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

Tested with:

  • RuntimeFilterPartitionPruneClassifierTest: 6 tests passed

  • query_p0/runtime_filter/rf_partition_pruning: 1 suite passed

  • Manual comparison on FE port 9333: both enable_runtime_filter_partition_prune=false and true return 1

  • Behavior changed:

    • No.
    • Yes. Target expressions containing non-movable functions no longer participate in runtime filter partition pruning.
  • 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
Copy Markdown
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?

@BiteTheDDDDt

Copy link
Copy Markdown
Contributor Author

run buildall

@BiteTheDDDDt

Copy link
Copy Markdown
Contributor Author

/review

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Automated review result: changes requested — one P1 correctness issue is attached inline.

Goal and data correctness: the FE NoneMovableFunction gate correctly prevents the new FE from sending partition-pruning metadata for assert_true, and the BE fallback correctly handles that function's INVALID_ARGUMENT for older-FE plans. The overall semantic goal is not complete, however: eligible deterministic targets can reject speculative LIST boundaries with other data-domain codes such as OUT_OF_BOUND, which still propagates and can turn a successful filtered query into an error.

Scope and design: the patch is small and focused. The grouped and single runtime-filter translator paths both use the classifier, late non-identity casts remain conservatively excluded, and ordinary runtime-filter generation is preserved.

Concurrency and lifecycle: the projection cache is fragment/operator-local, mutex-protected, and fed immutable boundaries/descriptor metadata. First-writer empty publication is conservative; cloned contexts, MIN/MAX wrappers, initial/late runtime-filter arrival, and conjunct/cache lock ordering did not reveal a correctness or deadlock issue. No new static initialization or ownership hazard was found.

Compatibility and parallel paths: new-FE/old-BE behavior is conservative for the marker-gated target, and new-BE/old-FE behavior is addressed for INVALID_ARGUMENT. The inline issue covers the remaining mixed-version/data-domain gap. CTE, set-operation, project-alias, grouped-filter, and single-filter paths were checked.

Tests and validation: the FE unit test, synthetic BE unit test, and regression test cover the marker gate and intended INVALID_ARGUMENT case, but do not cover another expression-domain status; a from_days(INT_MAX) regression would expose the remaining bug. Per the runner's review contract, no local build or test was run, and thirdparty/installed/bin/protoc is absent. Live Clang Formatter and CheckStyle pass; FE/BE/compile jobs were still pending at submission time. The macOS BE UT job failed before compilation because the runner exposed JDK 25 instead of required JDK 17.

Other checkpoints: no configuration, persistence/EditLog, data-write transaction, storage-format, FE-BE protocol-field, or observability change is introduced. The added type-bit lookup and one-time projection status check do not create a material performance concern.

User focus: no additional focus was provided; the full PR was reviewed.

Review completion: the main scan plus FE/planner, BE/tests, and risk-focused reviewers converged in round 2 with no unresolved candidates beyond the single inline issue.

Comment thread be/src/exec/runtime_filter/runtime_filter_partition_pruner.cpp Outdated
@hello-stephen

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

------ Round 1 ----------------------------------
============================================
q1	17669	4085	4266	4085
q2	2009	326	196	196
q3	10289	1430	824	824
q4	4700	464	334	334
q5	7562	844	544	544
q6	195	167	133	133
q7	756	835	597	597
q8	9942	1675	1550	1550
q9	5773	4307	4266	4266
q10	6799	1709	1461	1461
q11	494	339	322	322
q12	742	572	456	456
q13	18112	3281	2722	2722
q14	267	264	243	243
q15	q16	773	767	698	698
q17	1022	956	1010	956
q18	6839	5802	5529	5529
q19	1405	1343	1034	1034
q20	778	722	632	632
q21	5785	2537	2289	2289
q22	415	350	290	290
Total cold run time: 102326 ms
Total hot run time: 29161 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4428	4301	4264	4264
q2	288	311	209	209
q3	4592	4945	4456	4456
q4	2056	2167	1388	1388
q5	4471	4337	4320	4320
q6	227	173	134	134
q7	1776	1956	1667	1667
q8	2462	2133	2076	2076
q9	7680	7770	7667	7667
q10	4650	4688	4148	4148
q11	542	407	370	370
q12	739	748	532	532
q13	3345	3589	2993	2993
q14	307	300	289	289
q15	q16	740	747	674	674
q17	1350	1321	1320	1320
q18	8006	7222	7076	7076
q19	1108	1088	1108	1088
q20	2204	2199	1929	1929
q21	5167	4475	4332	4332
q22	503	436	403	403
Total cold run time: 56641 ms
Total hot run time: 51335 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 176884 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 87ef50b4d22096aa8f42128a3842b149fa62cdaa, data reload: false

query5	4305	639	491	491
query6	478	263	259	259
query7	4846	621	340	340
query8	352	188	170	170
query9	8804	3984	4092	3984
query10	481	365	304	304
query11	5879	2326	2163	2163
query12	159	103	99	99
query13	1264	609	426	426
query14	6132	5225	4880	4880
query14_1	4246	4233	4243	4233
query15	214	205	178	178
query16	1033	474	458	458
query17	1122	712	574	574
query18	2438	469	345	345
query19	217	197	155	155
query20	110	108	104	104
query21	231	157	134	134
query22	13531	13561	13351	13351
query23	17269	16490	16134	16134
query23_1	16210	16171	16218	16171
query24	7634	1751	1284	1284
query24_1	1307	1290	1276	1276
query25	573	451	391	391
query26	1357	346	211	211
query27	2634	580	361	361
query28	4448	1949	1969	1949
query29	1077	659	492	492
query30	337	266	229	229
query31	1123	1092	975	975
query32	114	63	61	61
query33	530	317	258	258
query34	1194	1143	660	660
query35	784	798	666	666
query36	1177	1201	1080	1080
query37	155	105	99	99
query38	1862	1701	1637	1637
query39	890	865	891	865
query39_1	867	850	822	822
query40	258	162	136	136
query41	63	61	61	61
query42	91	89	91	89
query43	338	328	273	273
query44	1408	773	734	734
query45	194	179	169	169
query46	1040	1195	728	728
query47	2151	2090	2036	2036
query48	393	399	274	274
query49	576	416	300	300
query50	1040	426	338	338
query51	10555	10664	10312	10312
query52	83	88	78	78
query53	254	276	196	196
query54	298	226	219	219
query55	73	69	67	67
query56	315	296	279	279
query57	1302	1273	1165	1165
query58	290	251	262	251
query59	1547	1638	1452	1452
query60	310	268	255	255
query61	150	151	148	148
query62	536	499	437	437
query63	235	195	204	195
query64	2829	1026	883	883
query65	4713	4628	4624	4624
query66	1814	503	388	388
query67	29182	29225	28962	28962
query68	3078	1615	951	951
query69	409	291	263	263
query70	1063	961	953	953
query71	372	329	316	316
query72	3066	2659	2336	2336
query73	824	745	441	441
query74	5051	4884	4699	4699
query75	2498	2477	2123	2123
query76	2336	1139	762	762
query77	355	375	280	280
query78	11831	11862	11293	11293
query79	1355	1180	778	778
query80	1293	550	460	460
query81	509	328	295	295
query82	576	153	133	133
query83	364	321	293	293
query84	276	164	132	132
query85	968	616	549	549
query86	395	299	271	271
query87	1818	1825	1766	1766
query88	3660	2776	2782	2776
query89	437	381	329	329
query90	1970	198	190	190
query91	200	200	164	164
query92	59	58	57	57
query93	1619	1557	1038	1038
query94	703	349	316	316
query95	778	513	543	513
query96	1022	792	325	325
query97	2632	2635	2463	2463
query98	213	209	201	201
query99	1070	1121	971	971
Total cold run time: 262435 ms
Total hot run time: 176884 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
ClickBench: Total hot run time: 24.92 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit 87ef50b4d22096aa8f42128a3842b149fa62cdaa, data reload: false

query1	0.01	0.01	0.00
query2	0.13	0.05	0.05
query3	0.26	0.13	0.13
query4	1.61	0.14	0.14
query5	0.23	0.21	0.23
query6	1.21	1.02	1.05
query7	0.04	0.01	0.00
query8	0.05	0.03	0.03
query9	0.38	0.33	0.32
query10	0.55	0.58	0.54
query11	0.19	0.13	0.14
query12	0.17	0.14	0.14
query13	0.46	0.46	0.49
query14	1.00	1.02	0.99
query15	0.61	0.60	0.60
query16	0.31	0.32	0.33
query17	1.14	1.11	1.11
query18	0.22	0.21	0.20
query19	2.07	1.95	1.86
query20	0.02	0.01	0.01
query21	15.45	0.22	0.12
query22	4.88	0.06	0.05
query23	16.14	0.30	0.12
query24	2.98	0.41	0.34
query25	0.11	0.05	0.04
query26	0.72	0.20	0.14
query27	0.04	0.03	0.03
query28	3.54	0.92	0.52
query29	12.49	4.13	3.30
query30	0.27	0.15	0.15
query31	2.77	0.60	0.31
query32	3.23	0.59	0.49
query33	3.15	3.24	3.26
query34	15.81	4.27	3.49
query35	3.53	3.52	3.54
query36	0.56	0.43	0.42
query37	0.09	0.07	0.07
query38	0.05	0.04	0.04
query39	0.04	0.03	0.03
query40	0.17	0.16	0.15
query41	0.09	0.03	0.03
query42	0.04	0.03	0.03
query43	0.04	0.03	0.04
Total cold run time: 96.85 s
Total hot run time: 24.92 s

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 90.00% (18/20) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 75.07% (30561/40708)
Line Coverage 59.20% (336944/569143)
Region Coverage 55.91% (282572/505437)
Branch Coverage 57.20% (125425/219276)

### What problem does this PR solve?

Issue Number: None

Related PR: None

Problem Summary: With runtime filter partition pruning enabled, a join target expression was eligible for partition pruning even when it contained a non-movable function such as assert_true. The pruning path then evaluated assert_true against LIST partition boundary values before normal row predicates ran, so a boundary belonging only to filtered-out rows could introduce an INVALID_ARGUMENT error. Without partition pruning, the same query returned 1. Reject target expressions containing NoneMovableFunction in the FE classifier so both modes preserve normal execution semantics and return 1.

### Release note

Fix runtime filter partition pruning to preserve query behavior for non-movable target expressions.

### Check List (For Author)

- Test: Regression test / Unit Test / Manual test
    - RuntimeFilterPartitionPruneClassifierTest
    - query_p0/runtime_filter/rf_partition_pruning
    - Manual ON/OFF verification on port 9333
- Behavior changed: Yes. Target expressions containing non-movable functions no longer participate in runtime filter partition pruning.
- Does this need documentation: No
@BiteTheDDDDt
BiteTheDDDDt force-pushed the codex/fix-rf-partition-prune-expr-error branch from 87ef50b to 4598414 Compare July 22, 2026 06:48
@BiteTheDDDDt

Copy link
Copy Markdown
Contributor Author

run buildall

@hello-stephen

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

------ Round 1 ----------------------------------
============================================
q1	17625	4059	4038	4038
q2	2033	319	200	200
q3	10297	1421	842	842
q4	4685	472	344	344
q5	7534	1025	568	568
q6	185	174	140	140
q7	756	822	601	601
q8	9368	1581	1646	1581
q9	5543	4340	4308	4308
q10	6723	1728	1487	1487
q11	507	368	325	325
q12	751	569	452	452
q13	18109	3409	2801	2801
q14	277	258	248	248
q15	q16	795	778	708	708
q17	944	972	934	934
q18	6850	5793	5645	5645
q19	1364	1318	1106	1106
q20	834	666	582	582
q21	5880	2662	2480	2480
q22	422	351	293	293
Total cold run time: 101482 ms
Total hot run time: 29683 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4348	4285	4282	4282
q2	282	319	233	233
q3	4617	4940	4427	4427
q4	2066	2168	1362	1362
q5	4402	4281	4268	4268
q6	233	173	127	127
q7	1715	1905	1826	1826
q8	2544	2163	2217	2163
q9	8017	8105	7781	7781
q10	4691	4646	4169	4169
q11	560	420	386	386
q12	758	775	551	551
q13	3191	3534	2916	2916
q14	324	301	274	274
q15	q16	741	707	627	627
q17	1353	1317	1336	1317
q18	7872	7320	7350	7320
q19	1195	1150	1075	1075
q20	2202	2216	1934	1934
q21	5220	4565	4453	4453
q22	525	457	405	405
Total cold run time: 56856 ms
Total hot run time: 51896 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 177699 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 4598414c42350023f819852ed053fa9be1f326a9, data reload: false

query5	4340	626	475	475
query6	493	231	210	210
query7	4859	622	350	350
query8	361	194	171	171
query9	8811	4096	4117	4096
query10	481	361	306	306
query11	5976	2359	2144	2144
query12	163	102	103	102
query13	1269	609	418	418
query14	6284	5212	4880	4880
query14_1	4257	4254	4234	4234
query15	225	206	182	182
query16	1010	487	467	467
query17	949	731	588	588
query18	2452	478	359	359
query19	209	189	153	153
query20	113	108	111	108
query21	251	158	133	133
query22	13589	13512	13291	13291
query23	17426	16575	16105	16105
query23_1	16186	16326	16259	16259
query24	7523	1720	1270	1270
query24_1	1293	1301	1292	1292
query25	543	436	363	363
query26	1366	321	209	209
query27	2626	612	372	372
query28	4453	1992	1970	1970
query29	1057	621	462	462
query30	345	266	225	225
query31	1113	1088	978	978
query32	113	60	58	58
query33	524	317	245	245
query34	1164	1171	623	623
query35	765	780	672	672
query36	1177	1155	1021	1021
query37	146	107	93	93
query38	1877	1698	1644	1644
query39	871	869	883	869
query39_1	822	832	831	831
query40	244	158	147	147
query41	70	67	64	64
query42	94	93	91	91
query43	328	326	282	282
query44	1419	775	760	760
query45	198	183	173	173
query46	1064	1212	720	720
query47	2166	2127	2083	2083
query48	406	400	293	293
query49	576	417	304	304
query50	1118	427	335	335
query51	10657	10744	10686	10686
query52	85	87	78	78
query53	266	291	200	200
query54	278	229	215	215
query55	78	71	67	67
query56	305	303	307	303
query57	1300	1282	1180	1180
query58	295	269	244	244
query59	1577	1669	1450	1450
query60	315	271	253	253
query61	152	149	151	149
query62	543	491	437	437
query63	242	204	204	204
query64	2815	1025	844	844
query65	4727	4595	4685	4595
query66	1825	501	392	392
query67	29240	29212	29217	29212
query68	3088	1554	1002	1002
query69	417	291	268	268
query70	1065	972	956	956
query71	367	330	326	326
query72	3048	2696	2382	2382
query73	886	782	439	439
query74	5064	4912	4746	4746
query75	2539	2517	2121	2121
query76	2316	1178	781	781
query77	356	369	277	277
query78	11781	11747	11342	11342
query79	1391	1138	746	746
query80	642	564	461	461
query81	453	340	307	307
query82	603	155	118	118
query83	399	326	297	297
query84	328	168	126	126
query85	970	600	531	531
query86	360	287	286	286
query87	1824	1828	1727	1727
query88	3701	2786	2773	2773
query89	428	370	330	330
query90	1902	198	203	198
query91	201	194	156	156
query92	64	60	61	60
query93	1648	1532	963	963
query94	528	352	305	305
query95	764	594	480	480
query96	1034	843	350	350
query97	2614	2650	2504	2504
query98	213	208	200	200
query99	1093	1105	983	983
Total cold run time: 262352 ms
Total hot run time: 177699 ms

@morrySnow

Copy link
Copy Markdown
Contributor

add impl pr into related pr list

@hello-stephen

Copy link
Copy Markdown
Contributor
ClickBench: Total hot run time: 25.11 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit 4598414c42350023f819852ed053fa9be1f326a9, data reload: false

query1	0.00	0.00	0.01
query2	0.09	0.08	0.05
query3	0.25	0.14	0.14
query4	1.60	0.14	0.14
query5	0.27	0.23	0.21
query6	1.24	1.07	1.10
query7	0.04	0.01	0.00
query8	0.06	0.04	0.04
query9	0.39	0.31	0.32
query10	0.54	0.54	0.55
query11	0.21	0.14	0.14
query12	0.17	0.13	0.14
query13	0.47	0.47	0.47
query14	1.01	0.99	1.02
query15	0.62	0.58	0.60
query16	0.30	0.32	0.30
query17	1.15	1.09	1.11
query18	0.22	0.22	0.21
query19	2.07	1.99	1.99
query20	0.02	0.02	0.01
query21	15.45	0.21	0.14
query22	4.72	0.06	0.05
query23	16.15	0.31	0.12
query24	3.00	0.39	0.33
query25	0.11	0.06	0.04
query26	0.73	0.20	0.16
query27	0.05	0.05	0.03
query28	3.54	0.92	0.51
query29	12.47	4.11	3.27
query30	0.28	0.16	0.16
query31	2.78	0.58	0.31
query32	3.22	0.59	0.48
query33	3.14	3.25	3.20
query34	15.63	4.20	3.57
query35	3.53	3.61	3.52
query36	0.55	0.45	0.44
query37	0.09	0.07	0.06
query38	0.05	0.04	0.04
query39	0.04	0.04	0.03
query40	0.17	0.17	0.15
query41	0.08	0.03	0.04
query42	0.04	0.02	0.02
query43	0.05	0.04	0.04
Total cold run time: 96.59 s
Total hot run time: 25.11 s

@BiteTheDDDDt

Copy link
Copy Markdown
Contributor Author

/review

@github-actions github-actions Bot added the approved Indicates a PR has been approved by one committer. label Jul 22, 2026
@github-actions

Copy link
Copy Markdown
Contributor

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

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Automated review result: changes requested — one P1 side-effect issue is attached inline.

Goal and data correctness: the new FE gate correctly prevents assert_true from being evaluated speculatively on LIST partition boundaries, and the unit plus regression coverage demonstrates that intended fix. The safety contract is still incomplete, however: sleep(partition_key) is deterministic by the current traits and is not NoneMovableFunction, so the pruning path can execute an arbitrary sleep for a selected partition whose rows are removed before normal target evaluation. An optional pruning optimization must not introduce this observable side effect.

Scope and design: the production change is small and focused, and containsType correctly recognizes implemented interfaces. The problem is the negative eligibility rule: NoneMovableFunction currently identifies only assert_true, while speculative boundary execution requires a positive guarantee that the target is total and side-effect-free (or an explicit safe allow-list).

Parallel paths and compatibility: grouped and single runtime-filter translation both call the classifier with aligned Nereids/legacy expressions. Project/alias, set-operation, and CTE rewrites preserve the function tree, and late non-identity casts remain conservatively excluded. No new Thrift field or storage format is added; omitting the existing optional pruning metadata is wire-compatible across FE/BE versions. The existing outdated from_days thread concerns an escaping domain-error status and was not duplicated; the new inline issue returns OK and changes execution through a side effect.

Concurrency and lifecycle: this FE planning-time trait check adds no shared mutable state, locking, thread, ownership, static-initialization, or lifecycle hazard. No configuration, persistence/EditLog, transaction, data-write, visible-version, memory-accounting, or observability change is introduced. The cached trait-bit lookup has negligible cost; the accepted sleep path is itself an unbounded performance/correctness problem.

Tests and validation: the added classifier unit test isolates the new gate, the ON/OFF regression queries both deterministically return 1, the profile assertion proves partition-pruning metadata is suppressed, session state is restored, and the .out additions are correctly ordered. A filtered-out nonzero LIST-boundary sleep regression is still needed. Per the runner contract, no local build or test was run. Live CI shows COMPILE, FE UT, CheckStyle, and NonConcurrent Regression passing. check_coverage_fe is failed; its TeamCity details return HTTP 401 from this runner, so the cause could not be verified here.

User focus: no additional focus was provided; the full four-file PR was reviewed.

Review completion: the main risk scan, two normal full-review agents, and a separate risk-focused agent converged in Round 2 on this exact candidate, line anchor, body, live head, and existing-thread set. Every other suspicious point was dismissed with concrete code evidence, and no unresolved candidate remains beyond the inline issue.

@BiteTheDDDDt
BiteTheDDDDt merged commit f45e093 into apache:master Jul 22, 2026
31 of 32 checks passed
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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants