This is an automated email from the ASF dual-hosted git repository.
zhangstar333 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 5c502fc0828 [fix](regression) Pin Paimon Rust runtime filter test
settings (#69721)
5c502fc0828 is described below
commit 5c502fc08289c57ce8b8a9c521714196752473a9
Author: Gabriel <[email protected]>
AuthorDate: Wed Oct 28 21:29:31 2026 +0800
[fix](regression) Pin Paimon Rust runtime filter test settings (#69721)
### What problem does this PR solve?
`external_table_p0/paimon/test_paimon_rust_reader_eq_for_null.groovy`
can fail under session-variable fuzzing even when the Rust
runtime-filter converter works correctly. The suite forces IN runtime
filters and waits for their arrival, but it does not set an IN-filter
capacity until the later oversized-filter section.
When fuzzing sets `runtime_filter_max_in_num=0`, the positive integer
join builds a filter with two values. The filter is disabled with `reach
max in num`, and `RustRuntimeFiltersApplied` remains zero, failing the
assertion that the positive control reaches Rust. Waiting longer cannot
activate a filter that was disabled by its capacity limit.
Set a sufficient capacity and disable selectivity-based runtime-filter
pruning before the reader/profile checks. Keep the separate 70000-value
capacity for the oversized-filter boundary tests and use the existing
`finally` block to restore both inherited settings. The positive,
residual, reader-routing, and oversized-filter assertions remain intact.
---
.../paimon/test_paimon_rust_reader_eq_for_null.groovy | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git
a/regression-test/suites/external_table_p0/paimon/test_paimon_rust_reader_eq_for_null.groovy
b/regression-test/suites/external_table_p0/paimon/test_paimon_rust_reader_eq_for_null.groovy
index 0619b7e9a57..1638926391c 100644
---
a/regression-test/suites/external_table_p0/paimon/test_paimon_rust_reader_eq_for_null.groovy
+++
b/regression-test/suites/external_table_p0/paimon/test_paimon_rust_reader_eq_for_null.groovy
@@ -226,6 +226,9 @@ suite("test_paimon_rust_reader_eq_for_null",
"p0,external,paimon") {
sql """set runtime_filter_wait_infinitely=true"""
// TRuntimeFilterType.IN == 1: force the IN runtime-filter shape.
sql """set runtime_filter_type=1"""
+ // Fuzzing can disable the positive IN control or prune it before Rust
sees it.
+ sql "set runtime_filter_max_in_num=1024"
+ sql "set enable_runtime_filter_prune=false"
// Reuse the framework's profile readiness polling and configured HTTP
credentials.
def profileAction = new ProfileAction(context)
@@ -489,8 +492,6 @@ suite("test_paimon_rust_reader_eq_for_null",
"p0,external,paimon") {
sql """INSERT INTO t_large_runtime_filter
SELECT cast(number as int) FROM numbers('number'='65537')"""
sql "set runtime_filter_max_in_num=70000"
- // Preserve the large filter even when statistics predict low
selectivity.
- sql "set enable_runtime_filter_prune=false"
// The probe child plus these distinct literals crosses the 16-bit
expression
// boundary. Pushing only the wrapped prefix would lose almost all
matching rows.
[65535, 65536, 65537].each { keyCount ->
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]