From 6cd54a1c9e5c7a844281d7b8afb20777fb87db94 Mon Sep 17 00:00:00 2001 From: Jianhong Shi Date: Thu, 6 Aug 2026 03:55:20 -0500 Subject: [PATCH] fix incorrect results when probing multiple bloom filters --- src/operators/physical_probe_filter.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/operators/physical_probe_filter.cpp b/src/operators/physical_probe_filter.cpp index dd239ac..8357e9d 100644 --- a/src/operators/physical_probe_filter.cpp +++ b/src/operators/physical_probe_filter.cpp @@ -171,7 +171,8 @@ OperatorResultType PhysicalProbeFilter::ExecuteInternal(ExecutionContext &contex // } // lookup directly into selection vector - result_count = bf->LookupSel(input, sel, {bound_column_indices[i]}, state.bit_vector.data()); + SelectionVector newSel = SelectionVector(input.size()); + result_count = bf->LookupSel(input, newSel, {bound_column_indices[i]}, state.bit_vector.data()); // early exit if no rows passed if (result_count == 0) { @@ -185,7 +186,7 @@ OperatorResultType PhysicalProbeFilter::ExecuteInternal(ExecutionContext &contex // apply filter if we filtered rows if (result_count < row_num) { - input.Slice(sel, result_count); + input.Slice(newSel, result_count); row_num = result_count; } }