Skip to content

Commit bf5fb93

Browse files
authored
fix: DH-20464: cherry-pick of bugfix introduced in deephaven#7317 (deephaven#7383)
Partial cherry-pick of deephaven#7379
1 parent 624b141 commit bf5fb93

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

engine/table/src/main/java/io/deephaven/engine/table/impl/filter/ExtractFilterWithoutBarriers.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public WhereFilter visitWhereFilter(final WhereFilter filter) {
2727

2828
@Override
2929
public WhereFilter visitWhereFilter(final WhereFilterInvertedImpl filter) {
30-
return filter; // do not unwrap
30+
return WhereFilterInvertedImpl.of(of(filter.getWrappedFilter())); // must unwrap, then re-wrap inverted
3131
}
3232

3333
@Override

extensions/parquet/table/src/test/java/io/deephaven/parquet/table/ParquetTableFilterTest.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,7 @@
1313
import io.deephaven.engine.table.impl.PushdownFilterContext;
1414
import io.deephaven.engine.table.impl.indexer.DataIndexer;
1515
import io.deephaven.engine.table.impl.locations.impl.StandaloneTableKey;
16-
import io.deephaven.engine.table.impl.select.DoubleRangeFilter;
17-
import io.deephaven.engine.table.impl.select.FloatRangeFilter;
18-
import io.deephaven.engine.table.impl.select.MatchFilter;
19-
import io.deephaven.engine.table.impl.select.WhereFilter;
16+
import io.deephaven.engine.table.impl.select.*;
2017
import io.deephaven.engine.table.impl.util.ColumnHolder;
2118
import io.deephaven.engine.table.impl.util.ImmediateJobScheduler;
2219
import io.deephaven.engine.testutil.filters.ParallelizedRowSetCapturingFilter;
@@ -1653,5 +1650,15 @@ public void testLocationDataIndexWithFilterBarriers() {
16531650

16541651
assertEquals(23435, result.size());
16551652
allFilters.forEach(RowSetCapturingFilter::reset);
1653+
1654+
// Inverted - Barrier to force B then A
1655+
result = diskTable.where(Filter.and(
1656+
WhereFilterInvertedImpl.of(filterB.withDeclaredBarriers("b1")),
1657+
WhereFilterInvertedImpl.of(filterA.withRespectedBarriers("b1"))));
1658+
assertEquals(97, filterA.numRowsProcessed()); // only indexA rows
1659+
assertEquals(100_000, filterB.numRowsProcessed());
1660+
1661+
assertEquals(26430, result.size());
1662+
allFilters.forEach(RowSetCapturingFilter::reset);
16561663
}
16571664
}

0 commit comments

Comments
 (0)