This is an automated email from the ASF dual-hosted git repository.

jackie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git


The following commit(s) were added to refs/heads/master by this push:
     new 42588248d4 Clean up the Block APIs (#10358)
42588248d4 is described below

commit 42588248d4d1cedc51e438db87b1485659b98ffb
Author: Xiaotian (Jackie) Jiang <[email protected]>
AuthorDate: Wed Mar 1 13:04:18 2023 -0800

    Clean up the Block APIs (#10358)
---
 .../java/org/apache/pinot/core/common/Block.java   | 37 +----------
 .../apache/pinot/core/common/BlockDocIdSet.java    | 53 ++++++++++++++-
 .../pinot/core/common/BlockDocIdValueIterator.java | 33 ----------
 .../pinot/core/common/BlockDocIdValueSet.java      | 24 -------
 .../apache/pinot/core/common/BlockMetadata.java    | 42 ------------
 .../pinot/core/operator/DocIdSetOperator.java      | 15 ++---
 .../pinot/core/operator/ProjectionOperator.java    |  3 +-
 .../pinot/core/operator/blocks/DocIdSetBlock.java  | 49 ++++----------
 .../pinot/core/operator/blocks/FilterBlock.java    | 41 ++++--------
 .../operator/blocks/InstanceResponseBlock.java     | 24 -------
 .../core/operator/blocks/ProjectionBlock.java      | 23 -------
 .../pinot/core/operator/blocks/TransformBlock.java | 23 -------
 .../operator/blocks/results/BaseResultsBlock.java  | 24 -------
 .../dociditerators/ArrayBasedDocIdIterator.java    | 53 ---------------
 .../pinot/core/operator/docidsets/AndDocIdSet.java | 15 +++--
 .../operator/docidsets/ArrayBasedDocIdSet.java     | 38 -----------
 .../core/operator/docidsets/BitmapDocIdSet.java    |  3 +-
 .../core/operator/docidsets/EmptyDocIdSet.java     |  5 +-
 ...FilterDocIdSet.java => ExpressionDocIdSet.java} |  5 +-
 .../operator/docidsets/FilterBlockDocIdSet.java    | 75 ----------------------
 .../core/operator/docidsets/MVScanDocIdSet.java    |  3 +-
 .../core/operator/docidsets/MatchAllDocIdSet.java  |  3 +-
 .../pinot/core/operator/docidsets/NotDocIdSet.java |  7 +-
 .../pinot/core/operator/docidsets/OrDocIdSet.java  | 13 ++--
 .../docidsets/RangelessBitmapDocIdSet.java         |  3 +-
 .../core/operator/docidsets/SVScanDocIdSet.java    |  3 +-
 .../core/operator/docidsets/SortedDocIdSet.java    |  3 +-
 .../core/operator/filter/AndFilterOperator.java    |  9 ++-
 .../operator/filter/CombinedFilterOperator.java    |  6 +-
 .../operator/filter/ExpressionFilterOperator.java  |  5 +-
 .../core/operator/filter/OrFilterOperator.java     | 11 ++--
 .../filter/RangeIndexBasedFilterOperator.java      |  4 +-
 .../core/operator/filter/TestFilterOperator.java   |  4 +-
 .../apache/pinot/core/plan/FilterPlanNodeTest.java |  4 +-
 .../pinot/core/startree/v2/BaseStarTreeV2Test.java |  9 ++-
 .../query/runtime/blocks/TransferableBlock.java    | 24 -------
 36 files changed, 146 insertions(+), 550 deletions(-)

diff --git a/pinot-core/src/main/java/org/apache/pinot/core/common/Block.java 
b/pinot-core/src/main/java/org/apache/pinot/core/common/Block.java
index 03397a5948..2ee6585ecf 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/common/Block.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/common/Block.java
@@ -19,41 +19,8 @@
 package org.apache.pinot.core.common;
 
 /**
- *
- * A block represents a set of rows.A segment will contain one or more blocks
- * Currently, it assumes only one column per block. We might change this in
- * future
+ * A {@code Block} represents the data block returned by the {@link Operator}. 
Each operator can return multiple blocks.
+ * It can contain document ids, column values or result rows depending on the 
operator.
  */
 public interface Block {
-
-  /**
-   * Returns valset that allows one to iterate over the docId. If no predicate
-   * is provided, this will consists of all docIds within the block
-   *
-   * @return {@link BlockDocIdSet}
-   */
-
-  BlockDocIdSet getBlockDocIdSet();
-
-  /**
-   * Returns valset that allows one to iterate over the values
-   *
-   * @return {@link BlockValSet}
-   */
-  BlockValSet getBlockValueSet();
-
-  /**
-   * Allows one to iterate over the DocId And Value in parallel
-   *
-   * @return
-   */
-  BlockDocIdValueSet getBlockDocIdValueSet();
-
-  /**
-   * For future optimizations. The metadata can consists of bloom filter,
-   * min/max, sum, count etc that can be used in filtering, aggregation
-   *
-   * @return
-   */
-  BlockMetadata getMetadata();
 }
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/common/BlockDocIdSet.java 
b/pinot-core/src/main/java/org/apache/pinot/core/common/BlockDocIdSet.java
index bedff54d83..dec522db9a 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/common/BlockDocIdSet.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/common/BlockDocIdSet.java
@@ -18,9 +18,21 @@
  */
 package org.apache.pinot.core.common;
 
+import org.apache.pinot.core.operator.blocks.FilterBlock;
+import org.apache.pinot.core.operator.dociditerators.AndDocIdIterator;
+import org.apache.pinot.core.operator.dociditerators.BitmapDocIdIterator;
+import org.apache.pinot.core.operator.dociditerators.OrDocIdIterator;
+import 
org.apache.pinot.core.operator.dociditerators.RangelessBitmapDocIdIterator;
+import org.apache.pinot.core.operator.dociditerators.ScanBasedDocIdIterator;
+import org.apache.pinot.core.operator.docidsets.BitmapDocIdSet;
+import org.apache.pinot.core.operator.docidsets.RangelessBitmapDocIdSet;
+import org.apache.pinot.segment.spi.Constants;
+import org.roaringbitmap.RoaringBitmapWriter;
+import org.roaringbitmap.buffer.MutableRoaringBitmap;
+
+
 /**
- * The interface {@code BlockDocIdSet} represents all the matching document 
ids for a predicate.
- * TODO: Redesign the filtering to skip the BlockDocIdSet and directly use 
BlockDocIdIterator
+ * The {@code BlockDocIdSet} contains the matching document ids returned by 
the {@link FilterBlock}.
  */
 public interface BlockDocIdSet {
 
@@ -29,4 +41,41 @@ public interface BlockDocIdSet {
    * ascending order.
    */
   BlockDocIdIterator iterator();
+
+  /**
+   * Returns the number of entries (SV value contains one entry, MV value 
contains multiple entries) scanned in the
+   * filtering phase. This method should be called after the filtering is done.
+   */
+  long getNumEntriesScannedInFilter();
+
+  /**
+   * For scan-based FilterBlockDocIdSet, pre-scans the documents and returns a 
non-scan-based FilterBlockDocIdSet.
+   */
+  default BlockDocIdSet toNonScanDocIdSet() {
+    BlockDocIdIterator docIdIterator = iterator();
+
+    // NOTE: AND and OR DocIdIterator might contain scan-based DocIdIterator
+    // TODO: This scan is not counted in the execution stats
+    if (docIdIterator instanceof ScanBasedDocIdIterator || docIdIterator 
instanceof AndDocIdIterator
+        || docIdIterator instanceof OrDocIdIterator) {
+      RoaringBitmapWriter<MutableRoaringBitmap> bitmapWriter =
+          RoaringBitmapWriter.bufferWriter().runCompress(false).get();
+      int docId;
+      while ((docId = docIdIterator.next()) != Constants.EOF) {
+        bitmapWriter.add(docId);
+      }
+      return new RangelessBitmapDocIdSet(bitmapWriter.get());
+    }
+
+    // NOTE: AND and OR DocIdSet might return BitmapBasedDocIdIterator after 
processing the iterators. Create a new
+    //       DocIdSet to prevent processing the iterators again
+    if (docIdIterator instanceof RangelessBitmapDocIdIterator) {
+      return new RangelessBitmapDocIdSet((RangelessBitmapDocIdIterator) 
docIdIterator);
+    }
+    if (docIdIterator instanceof BitmapDocIdIterator) {
+      return new BitmapDocIdSet((BitmapDocIdIterator) docIdIterator);
+    }
+
+    return this;
+  }
 }
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/common/BlockDocIdValueIterator.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/common/BlockDocIdValueIterator.java
deleted file mode 100644
index 350ef0afcb..0000000000
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/common/BlockDocIdValueIterator.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.pinot.core.common;
-
-/**
- *
- * Not used for now, since most of the predicates make use of inverted index.
- * Revisit when we push predicate evaluation up into the operator
- */
-public interface BlockDocIdValueIterator {
-
-  boolean advance();
-
-  int currentDocId();
-
-  int currentVal();
-}
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/common/BlockDocIdValueSet.java 
b/pinot-core/src/main/java/org/apache/pinot/core/common/BlockDocIdValueSet.java
deleted file mode 100644
index f917df22c3..0000000000
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/common/BlockDocIdValueSet.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.pinot.core.common;
-
-public interface BlockDocIdValueSet {
-
-  public BlockDocIdValueIterator iterator();
-}
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/common/BlockMetadata.java 
b/pinot-core/src/main/java/org/apache/pinot/core/common/BlockMetadata.java
deleted file mode 100644
index 041ea219de..0000000000
--- a/pinot-core/src/main/java/org/apache/pinot/core/common/BlockMetadata.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.pinot.core.common;
-
-import org.apache.pinot.segment.spi.index.reader.Dictionary;
-import org.apache.pinot.spi.data.FieldSpec;
-
-
-public interface BlockMetadata {
-
-  int getLength();
-
-  int getStartDocId();
-
-  int getEndDocId();
-
-  FieldSpec.DataType getDataType();
-
-  boolean isSingleValue();
-
-  int getMaxNumberOfMultiValues();
-
-  boolean hasDictionary();
-
-  Dictionary getDictionary();
-}
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/DocIdSetOperator.java 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/DocIdSetOperator.java
index 6ee1314459..2d6e9acc67 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/DocIdSetOperator.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/DocIdSetOperator.java
@@ -22,9 +22,9 @@ import com.google.common.base.Preconditions;
 import java.util.Collections;
 import java.util.List;
 import org.apache.pinot.core.common.BlockDocIdIterator;
+import org.apache.pinot.core.common.BlockDocIdSet;
 import org.apache.pinot.core.common.Operator;
 import org.apache.pinot.core.operator.blocks.DocIdSetBlock;
-import org.apache.pinot.core.operator.docidsets.FilterBlockDocIdSet;
 import org.apache.pinot.core.operator.filter.BaseFilterOperator;
 import org.apache.pinot.core.plan.DocIdSetPlanNode;
 import org.apache.pinot.segment.spi.Constants;
@@ -45,7 +45,7 @@ public class DocIdSetOperator extends 
BaseOperator<DocIdSetBlock> {
   private final BaseFilterOperator _filterOperator;
   private final int _maxSizeOfDocIdSet;
 
-  private FilterBlockDocIdSet _filterBlockDocIdSet;
+  private BlockDocIdSet _blockDocIdSet;
   private BlockDocIdIterator _blockDocIdIterator;
   private int _currentDocId = 0;
 
@@ -61,11 +61,10 @@ public class DocIdSetOperator extends 
BaseOperator<DocIdSetBlock> {
       return null;
     }
 
-
     // Initialize filter block document Id set
-    if (_filterBlockDocIdSet == null) {
-      _filterBlockDocIdSet = _filterOperator.nextBlock().getBlockDocIdSet();
-      _blockDocIdIterator = _filterBlockDocIdSet.iterator();
+    if (_blockDocIdSet == null) {
+      _blockDocIdSet = _filterOperator.nextBlock().getBlockDocIdSet();
+      _blockDocIdIterator = _blockDocIdSet.iterator();
     }
 
     Tracing.ThreadAccountantOps.sample();
@@ -86,7 +85,6 @@ public class DocIdSetOperator extends 
BaseOperator<DocIdSetBlock> {
     }
   }
 
-
   @Override
   public String toExplainString() {
     return EXPLAIN_NAME;
@@ -99,8 +97,7 @@ public class DocIdSetOperator extends 
BaseOperator<DocIdSetBlock> {
 
   @Override
   public ExecutionStatistics getExecutionStatistics() {
-    long numEntriesScannedInFilter =
-        _filterBlockDocIdSet != null ? 
_filterBlockDocIdSet.getNumEntriesScannedInFilter() : 0;
+    long numEntriesScannedInFilter = _blockDocIdSet != null ? 
_blockDocIdSet.getNumEntriesScannedInFilter() : 0;
     return new ExecutionStatistics(0, numEntriesScannedInFilter, 0, 0);
   }
 }
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/ProjectionOperator.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/ProjectionOperator.java
index fb3c26df75..e0062b00d5 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/ProjectionOperator.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/ProjectionOperator.java
@@ -64,12 +64,11 @@ public class ProjectionOperator extends 
BaseOperator<ProjectionBlock> {
       return null;
     } else {
       Tracing.activeRecording().setNumChildren(_dataSourceMap.size());
-      _dataBlockCache.initNewBlock(docIdSetBlock.getDocIdSet(), 
docIdSetBlock.getSearchableLength());
+      _dataBlockCache.initNewBlock(docIdSetBlock.getDocIds(), 
docIdSetBlock.getLength());
       return new ProjectionBlock(_dataSourceMap, _dataBlockCache);
     }
   }
 
-
   @Override
   public List<Operator> getChildOperators() {
     return Collections.singletonList(_docIdSetOperator);
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/DocIdSetBlock.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/DocIdSetBlock.java
index bf2528bbb8..d4bb156276 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/DocIdSetBlock.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/DocIdSetBlock.java
@@ -19,48 +19,27 @@
 package org.apache.pinot.core.operator.blocks;
 
 import org.apache.pinot.core.common.Block;
-import org.apache.pinot.core.common.BlockDocIdSet;
-import org.apache.pinot.core.common.BlockDocIdValueSet;
-import org.apache.pinot.core.common.BlockMetadata;
-import org.apache.pinot.core.common.BlockValSet;
-import org.apache.pinot.core.operator.docidsets.ArrayBasedDocIdSet;
+import org.apache.pinot.core.operator.DocIdSetOperator;
 
 
+/**
+ * The {@code DocIdSetBlock} contains a block of document ids (sorted), and is 
returned from {@link DocIdSetOperator}.
+ * Each {@code DocIdSetOperator} can return multiple {@code DocIdSetBlock}s.
+ */
 public class DocIdSetBlock implements Block {
+  private final int[] _docIds;
+  private final int _length;
 
-  private final int[] _docIdArray;
-  private final int _searchableLength;
-
-  public DocIdSetBlock(int[] docIdSet, int searchableLength) {
-    _docIdArray = docIdSet;
-    _searchableLength = searchableLength;
-  }
-
-  public int[] getDocIdSet() {
-    return _docIdArray;
-  }
-
-  public int getSearchableLength() {
-    return _searchableLength;
-  }
-
-  @Override
-  public BlockValSet getBlockValueSet() {
-    throw new UnsupportedOperationException();
-  }
-
-  @Override
-  public BlockDocIdValueSet getBlockDocIdValueSet() {
-    throw new UnsupportedOperationException();
+  public DocIdSetBlock(int[] docIds, int length) {
+    _docIds = docIds;
+    _length = length;
   }
 
-  @Override
-  public BlockDocIdSet getBlockDocIdSet() {
-    return new ArrayBasedDocIdSet(_docIdArray, _searchableLength);
+  public int[] getDocIds() {
+    return _docIds;
   }
 
-  @Override
-  public BlockMetadata getMetadata() {
-    throw new UnsupportedOperationException();
+  public int getLength() {
+    return _length;
   }
 }
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/FilterBlock.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/FilterBlock.java
index 8afdd8cd3d..185939283b 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/FilterBlock.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/FilterBlock.java
@@ -19,50 +19,31 @@
 package org.apache.pinot.core.operator.blocks;
 
 import org.apache.pinot.core.common.Block;
-import org.apache.pinot.core.common.BlockDocIdValueSet;
-import org.apache.pinot.core.common.BlockMetadata;
-import org.apache.pinot.core.common.BlockValSet;
-import org.apache.pinot.core.operator.docidsets.FilterBlockDocIdSet;
+import org.apache.pinot.core.common.BlockDocIdSet;
 
 
 /**
  * The {@code FilterBlock} class is the block holding the document Ids 
returned from the filter operator.
  */
 public class FilterBlock implements Block {
-  private final FilterBlockDocIdSet _filterBlockDocIdSet;
-  private FilterBlockDocIdSet _nonScanFilterBlockDocIdSet;
+  private final BlockDocIdSet _blockDocIdSet;
+  private BlockDocIdSet _nonScanBlockDocIdSet;
 
-  public FilterBlock(FilterBlockDocIdSet filterBlockDocIdSet) {
-    _filterBlockDocIdSet = filterBlockDocIdSet;
+  public FilterBlock(BlockDocIdSet blockDocIdSet) {
+    _blockDocIdSet = blockDocIdSet;
   }
 
   /**
    * Pre-scans the documents if needed, and returns a non-scan-based 
FilterBlockDocIdSet.
    */
-  public FilterBlockDocIdSet getNonScanFilterBLockDocIdSet() {
-    if (_nonScanFilterBlockDocIdSet == null) {
-      _nonScanFilterBlockDocIdSet = _filterBlockDocIdSet.toNonScanDocIdSet();
+  public BlockDocIdSet getNonScanFilterBLockDocIdSet() {
+    if (_nonScanBlockDocIdSet == null) {
+      _nonScanBlockDocIdSet = _blockDocIdSet.toNonScanDocIdSet();
     }
-    return _nonScanFilterBlockDocIdSet;
+    return _nonScanBlockDocIdSet;
   }
 
-  @Override
-  public FilterBlockDocIdSet getBlockDocIdSet() {
-    return _nonScanFilterBlockDocIdSet != null ? _nonScanFilterBlockDocIdSet : 
_filterBlockDocIdSet;
-  }
-
-  @Override
-  public BlockValSet getBlockValueSet() {
-    throw new UnsupportedOperationException();
-  }
-
-  @Override
-  public BlockDocIdValueSet getBlockDocIdValueSet() {
-    throw new UnsupportedOperationException();
-  }
-
-  @Override
-  public BlockMetadata getMetadata() {
-    throw new UnsupportedOperationException();
+  public BlockDocIdSet getBlockDocIdSet() {
+    return _nonScanBlockDocIdSet != null ? _nonScanBlockDocIdSet : 
_blockDocIdSet;
   }
 }
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/InstanceResponseBlock.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/InstanceResponseBlock.java
index 4708d5cf83..9c923ecfc7 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/InstanceResponseBlock.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/InstanceResponseBlock.java
@@ -28,10 +28,6 @@ import org.apache.pinot.common.datatable.DataTable;
 import org.apache.pinot.common.response.ProcessingException;
 import org.apache.pinot.common.utils.DataSchema;
 import org.apache.pinot.core.common.Block;
-import org.apache.pinot.core.common.BlockDocIdSet;
-import org.apache.pinot.core.common.BlockDocIdValueSet;
-import org.apache.pinot.core.common.BlockMetadata;
-import org.apache.pinot.core.common.BlockValSet;
 import org.apache.pinot.core.common.datatable.DataTableBuilderFactory;
 import org.apache.pinot.core.operator.blocks.results.BaseResultsBlock;
 import org.apache.pinot.core.query.request.context.QueryContext;
@@ -145,24 +141,4 @@ public class InstanceResponseBlock implements Block {
     }
     dataTable.getMetadata().putAll(_metadata);
   }
-
-  @Override
-  public BlockValSet getBlockValueSet() {
-    throw new UnsupportedOperationException();
-  }
-
-  @Override
-  public BlockDocIdValueSet getBlockDocIdValueSet() {
-    throw new UnsupportedOperationException();
-  }
-
-  @Override
-  public BlockDocIdSet getBlockDocIdSet() {
-    throw new UnsupportedOperationException();
-  }
-
-  @Override
-  public BlockMetadata getMetadata() {
-    throw new UnsupportedOperationException();
-  }
 }
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/ProjectionBlock.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/ProjectionBlock.java
index 066d27b350..ee1983d8e4 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/ProjectionBlock.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/ProjectionBlock.java
@@ -21,9 +21,6 @@ package org.apache.pinot.core.operator.blocks;
 import java.math.BigDecimal;
 import java.util.Map;
 import org.apache.pinot.core.common.Block;
-import org.apache.pinot.core.common.BlockDocIdSet;
-import org.apache.pinot.core.common.BlockDocIdValueSet;
-import org.apache.pinot.core.common.BlockMetadata;
 import org.apache.pinot.core.common.BlockValSet;
 import org.apache.pinot.core.common.DataBlockCache;
 import org.apache.pinot.core.operator.docvalsets.ProjectionBlockValSet;
@@ -56,26 +53,6 @@ public class ProjectionBlock implements Block {
     return new ProjectionBlockValSet(_dataBlockCache, column, 
_dataSourceMap.get(column));
   }
 
-  @Override
-  public BlockDocIdSet getBlockDocIdSet() {
-    throw new UnsupportedOperationException();
-  }
-
-  @Override
-  public BlockValSet getBlockValueSet() {
-    throw new UnsupportedOperationException();
-  }
-
-  @Override
-  public BlockDocIdValueSet getBlockDocIdValueSet() {
-    throw new UnsupportedOperationException();
-  }
-
-  @Override
-  public BlockMetadata getMetadata() {
-    throw new UnsupportedOperationException();
-  }
-
   /**
    * Pushes a {@see TransformEvaluator} which will produce an int value down
    * to be evaluated against the column. This is an unstable API.
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/TransformBlock.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/TransformBlock.java
index 5625a5704d..b0b5ae9e0f 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/TransformBlock.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/TransformBlock.java
@@ -21,9 +21,6 @@ package org.apache.pinot.core.operator.blocks;
 import java.util.Map;
 import org.apache.pinot.common.request.context.ExpressionContext;
 import org.apache.pinot.core.common.Block;
-import org.apache.pinot.core.common.BlockDocIdSet;
-import org.apache.pinot.core.common.BlockDocIdValueSet;
-import org.apache.pinot.core.common.BlockMetadata;
 import org.apache.pinot.core.common.BlockValSet;
 import org.apache.pinot.core.operator.docvalsets.TransformBlockValSet;
 import org.apache.pinot.core.operator.transform.function.TransformFunction;
@@ -62,24 +59,4 @@ public class TransformBlock implements Block {
   public BlockValSet getBlockValueSet(String column) {
     return _projectionBlock.getBlockValueSet(column);
   }
-
-  @Override
-  public BlockDocIdSet getBlockDocIdSet() {
-    throw new UnsupportedOperationException();
-  }
-
-  @Override
-  public BlockValSet getBlockValueSet() {
-    throw new UnsupportedOperationException();
-  }
-
-  @Override
-  public BlockDocIdValueSet getBlockDocIdValueSet() {
-    throw new UnsupportedOperationException();
-  }
-
-  @Override
-  public BlockMetadata getMetadata() {
-    throw new UnsupportedOperationException();
-  }
 }
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/results/BaseResultsBlock.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/results/BaseResultsBlock.java
index 7c17a7abb6..9d119afce7 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/results/BaseResultsBlock.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/results/BaseResultsBlock.java
@@ -31,10 +31,6 @@ import 
org.apache.pinot.common.datatable.DataTable.MetadataKey;
 import org.apache.pinot.common.response.ProcessingException;
 import org.apache.pinot.common.utils.DataSchema;
 import org.apache.pinot.core.common.Block;
-import org.apache.pinot.core.common.BlockDocIdSet;
-import org.apache.pinot.core.common.BlockDocIdValueSet;
-import org.apache.pinot.core.common.BlockMetadata;
-import org.apache.pinot.core.common.BlockValSet;
 import org.apache.pinot.core.query.request.context.QueryContext;
 
 
@@ -199,24 +195,4 @@ public abstract class BaseResultsBlock implements Block {
     metadata.put(MetadataKey.NUM_CONSUMING_SEGMENTS_MATCHED.getName(), 
Integer.toString(_numConsumingSegmentsMatched));
     return metadata;
   }
-
-  @Override
-  public BlockDocIdSet getBlockDocIdSet() {
-    throw new UnsupportedOperationException();
-  }
-
-  @Override
-  public BlockValSet getBlockValueSet() {
-    throw new UnsupportedOperationException();
-  }
-
-  @Override
-  public BlockDocIdValueSet getBlockDocIdValueSet() {
-    throw new UnsupportedOperationException();
-  }
-
-  @Override
-  public BlockMetadata getMetadata() {
-    throw new UnsupportedOperationException();
-  }
 }
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/dociditerators/ArrayBasedDocIdIterator.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/dociditerators/ArrayBasedDocIdIterator.java
deleted file mode 100644
index 3b8591bfed..0000000000
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/dociditerators/ArrayBasedDocIdIterator.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.pinot.core.operator.dociditerators;
-
-import org.apache.pinot.core.common.BlockDocIdIterator;
-import org.apache.pinot.segment.spi.Constants;
-
-
-/**
- * The {@code ArrayBasedDocIdIterator} is the iterator for ArrayBasedDocIdSet. 
It iterates on an array of matching
- * document ids.
- */
-public final class ArrayBasedDocIdIterator implements BlockDocIdIterator {
-  private final int[] _docIds;
-  private final int _searchableLength;
-
-  private int _nextIndex = 0;
-
-  public ArrayBasedDocIdIterator(int[] docIds, int searchableLength) {
-    _docIds = docIds;
-    _searchableLength = searchableLength;
-  }
-
-  @Override
-  public int next() {
-    if (_nextIndex < _searchableLength) {
-      return _docIds[_nextIndex++];
-    } else {
-      return Constants.EOF;
-    }
-  }
-
-  @Override
-  public int advance(int targetDocId) {
-    throw new UnsupportedOperationException();
-  }
-}
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/AndDocIdSet.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/AndDocIdSet.java
index 8b43b7d340..29f267c4a1 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/AndDocIdSet.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/AndDocIdSet.java
@@ -25,6 +25,7 @@ import java.util.Map;
 import org.apache.commons.collections.MapUtils;
 import org.apache.pinot.common.utils.config.QueryOptionsUtils;
 import org.apache.pinot.core.common.BlockDocIdIterator;
+import org.apache.pinot.core.common.BlockDocIdSet;
 import org.apache.pinot.core.operator.dociditerators.AndDocIdIterator;
 import org.apache.pinot.core.operator.dociditerators.BitmapBasedDocIdIterator;
 import 
org.apache.pinot.core.operator.dociditerators.RangelessBitmapDocIdIterator;
@@ -37,9 +38,9 @@ import org.roaringbitmap.buffer.MutableRoaringBitmap;
 
 
 /**
- * The FilterBlockDocIdSet to perform AND on all child FilterBlockDocIdSets.
+ * The BlockDocIdSet to perform AND on all child BlockDocIdSets.
  * <p>The AndBlockDocIdSet will construct the BlockDocIdIterator based on the 
BlockDocIdIterators from the child
- * FilterBlockDocIdSets:
+ * BlockDocIdSets:
  * <ul>
  *   <li>
  *     When there are at least one index-base BlockDocIdIterator 
(SortedDocIdIterator or BitmapBasedDocIdIterator) and
@@ -53,11 +54,11 @@ import org.roaringbitmap.buffer.MutableRoaringBitmap;
  *   </li>
  * </ul>
  */
-public final class AndDocIdSet implements FilterBlockDocIdSet {
-  private final List<FilterBlockDocIdSet> _docIdSets;
+public final class AndDocIdSet implements BlockDocIdSet {
+  private final List<BlockDocIdSet> _docIdSets;
   private final boolean _cardinalityBasedRankingForScan;
 
-  public AndDocIdSet(List<FilterBlockDocIdSet> docIdSets, Map<String, String> 
queryOptions) {
+  public AndDocIdSet(List<BlockDocIdSet> docIdSets, Map<String, String> 
queryOptions) {
     _docIdSets = docIdSets;
     _cardinalityBasedRankingForScan =
         !MapUtils.isEmpty(queryOptions) && 
QueryOptionsUtils.isAndScanReorderingEnabled(queryOptions);
@@ -66,7 +67,7 @@ public final class AndDocIdSet implements FilterBlockDocIdSet 
{
   @Override
   public BlockDocIdIterator iterator() {
     int numDocIdSets = _docIdSets.size();
-    // NOTE: Keep the order of FilterBlockDocIdSets to preserve the order 
decided within FilterOperatorUtils.
+    // NOTE: Keep the order of BlockDocIdSets to preserve the order decided 
within FilterOperatorUtils.
     // TODO: Consider deciding the order based on the stats of 
BlockDocIdIterators
     BlockDocIdIterator[] allDocIdIterators = new 
BlockDocIdIterator[numDocIdSets];
     List<SortedDocIdIterator> sortedDocIdIterators = new ArrayList<>();
@@ -170,7 +171,7 @@ public final class AndDocIdSet implements 
FilterBlockDocIdSet {
   @Override
   public long getNumEntriesScannedInFilter() {
     long numEntriesScannedInFilter = 0L;
-    for (FilterBlockDocIdSet child : _docIdSets) {
+    for (BlockDocIdSet child : _docIdSets) {
       numEntriesScannedInFilter += child.getNumEntriesScannedInFilter();
     }
     return numEntriesScannedInFilter;
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/ArrayBasedDocIdSet.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/ArrayBasedDocIdSet.java
deleted file mode 100644
index 4275586d2b..0000000000
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/ArrayBasedDocIdSet.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.pinot.core.operator.docidsets;
-
-import org.apache.pinot.core.common.BlockDocIdSet;
-import org.apache.pinot.core.operator.dociditerators.ArrayBasedDocIdIterator;
-
-
-public final class ArrayBasedDocIdSet implements BlockDocIdSet {
-  private final int[] _docIds;
-  private final int _searchableLength;
-
-  public ArrayBasedDocIdSet(int[] docIds, int searchableLength) {
-    _docIds = docIds;
-    _searchableLength = searchableLength;
-  }
-
-  @Override
-  public ArrayBasedDocIdIterator iterator() {
-    return new ArrayBasedDocIdIterator(_docIds, _searchableLength);
-  }
-}
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/BitmapDocIdSet.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/BitmapDocIdSet.java
index a69ac0066a..6abf65545b 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/BitmapDocIdSet.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/BitmapDocIdSet.java
@@ -18,11 +18,12 @@
  */
 package org.apache.pinot.core.operator.docidsets;
 
+import org.apache.pinot.core.common.BlockDocIdSet;
 import org.apache.pinot.core.operator.dociditerators.BitmapDocIdIterator;
 import org.roaringbitmap.buffer.ImmutableRoaringBitmap;
 
 
-public class BitmapDocIdSet implements FilterBlockDocIdSet {
+public class BitmapDocIdSet implements BlockDocIdSet {
   private final BitmapDocIdIterator _iterator;
 
   public BitmapDocIdSet(ImmutableRoaringBitmap docIds, int numDocs) {
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/EmptyDocIdSet.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/EmptyDocIdSet.java
index fc78df51a3..1db64ff557 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/EmptyDocIdSet.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/EmptyDocIdSet.java
@@ -18,13 +18,14 @@
  */
 package org.apache.pinot.core.operator.docidsets;
 
+import org.apache.pinot.core.common.BlockDocIdSet;
 import org.apache.pinot.core.operator.dociditerators.EmptyDocIdIterator;
 
 
 /**
- * Singleton class which extends {@link FilterBlockDocIdSet} that is empty, 
i.e. does not contain any document.
+ * Singleton class which extends {@link BlockDocIdSet} that is empty, i.e. 
does not contain any document.
  */
-public final class EmptyDocIdSet implements FilterBlockDocIdSet {
+public final class EmptyDocIdSet implements BlockDocIdSet {
   private EmptyDocIdSet() {
   }
 
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/ExpressionFilterDocIdSet.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/ExpressionDocIdSet.java
similarity index 88%
rename from 
pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/ExpressionFilterDocIdSet.java
rename to 
pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/ExpressionDocIdSet.java
index 3fbdf47523..70322ac525 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/ExpressionFilterDocIdSet.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/ExpressionDocIdSet.java
@@ -19,16 +19,17 @@
 package org.apache.pinot.core.operator.docidsets;
 
 import java.util.Map;
+import org.apache.pinot.core.common.BlockDocIdSet;
 import 
org.apache.pinot.core.operator.dociditerators.ExpressionScanDocIdIterator;
 import org.apache.pinot.core.operator.filter.predicate.PredicateEvaluator;
 import org.apache.pinot.core.operator.transform.function.TransformFunction;
 import org.apache.pinot.segment.spi.datasource.DataSource;
 
 
-public final class ExpressionFilterDocIdSet implements FilterBlockDocIdSet {
+public final class ExpressionDocIdSet implements BlockDocIdSet {
   private final ExpressionScanDocIdIterator _docIdIterator;
 
-  public ExpressionFilterDocIdSet(TransformFunction transformFunction, 
PredicateEvaluator predicateEvaluator,
+  public ExpressionDocIdSet(TransformFunction transformFunction, 
PredicateEvaluator predicateEvaluator,
       Map<String, DataSource> dataSourceMap, int numDocs) {
     _docIdIterator = new ExpressionScanDocIdIterator(transformFunction, 
predicateEvaluator, dataSourceMap, numDocs);
   }
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/FilterBlockDocIdSet.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/FilterBlockDocIdSet.java
deleted file mode 100644
index 18dab2b21c..0000000000
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/FilterBlockDocIdSet.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.pinot.core.operator.docidsets;
-
-import org.apache.pinot.core.common.BlockDocIdIterator;
-import org.apache.pinot.core.common.BlockDocIdSet;
-import org.apache.pinot.core.operator.dociditerators.AndDocIdIterator;
-import org.apache.pinot.core.operator.dociditerators.BitmapDocIdIterator;
-import org.apache.pinot.core.operator.dociditerators.OrDocIdIterator;
-import 
org.apache.pinot.core.operator.dociditerators.RangelessBitmapDocIdIterator;
-import org.apache.pinot.core.operator.dociditerators.ScanBasedDocIdIterator;
-import org.apache.pinot.segment.spi.Constants;
-import org.roaringbitmap.RoaringBitmapWriter;
-import org.roaringbitmap.buffer.MutableRoaringBitmap;
-
-
-/**
- * The <code>FilterBlockDocIdSet</code> interface represents the 
<code>BlockDocIdSet</code> returned by the
- * <code>BaseFilterBlock</code>.
- */
-public interface FilterBlockDocIdSet extends BlockDocIdSet {
-
-  /**
-   * Returns the number of entries (SV value contains one entry, MV value 
contains multiple entries) scanned in the
-   * filtering phase. This method should be called after the filtering is done.
-   */
-  long getNumEntriesScannedInFilter();
-
-  /**
-   * For scan-based FilterBlockDocIdSet, pre-scans the documents and returns a 
non-scan-based FilterBlockDocIdSet.
-   */
-  default FilterBlockDocIdSet toNonScanDocIdSet() {
-    BlockDocIdIterator docIdIterator = iterator();
-
-    // NOTE: AND and OR DocIdIterator might contain scan-based DocIdIterator
-    // TODO: This scan is not counted in the execution stats
-    if (docIdIterator instanceof ScanBasedDocIdIterator || docIdIterator 
instanceof AndDocIdIterator
-        || docIdIterator instanceof OrDocIdIterator) {
-      RoaringBitmapWriter<MutableRoaringBitmap> bitmapWriter =
-          RoaringBitmapWriter.bufferWriter().runCompress(false).get();
-      int docId;
-      while ((docId = docIdIterator.next()) != Constants.EOF) {
-        bitmapWriter.add(docId);
-      }
-      return new RangelessBitmapDocIdSet(bitmapWriter.get());
-    }
-
-    // NOTE: AND and OR DocIdSet might return BitmapBasedDocIdIterator after 
processing the iterators. Create a new
-    //       DocIdSet to prevent processing the iterators again
-    if (docIdIterator instanceof RangelessBitmapDocIdIterator) {
-      return new RangelessBitmapDocIdSet((RangelessBitmapDocIdIterator) 
docIdIterator);
-    }
-    if (docIdIterator instanceof BitmapDocIdIterator) {
-      return new BitmapDocIdSet((BitmapDocIdIterator) docIdIterator);
-    }
-
-    return this;
-  }
-}
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/MVScanDocIdSet.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/MVScanDocIdSet.java
index 6f85c2b946..dc9361e0d8 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/MVScanDocIdSet.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/MVScanDocIdSet.java
@@ -18,12 +18,13 @@
  */
 package org.apache.pinot.core.operator.docidsets;
 
+import org.apache.pinot.core.common.BlockDocIdSet;
 import org.apache.pinot.core.operator.dociditerators.MVScanDocIdIterator;
 import org.apache.pinot.core.operator.filter.predicate.PredicateEvaluator;
 import org.apache.pinot.segment.spi.datasource.DataSource;
 
 
-public final class MVScanDocIdSet implements FilterBlockDocIdSet {
+public final class MVScanDocIdSet implements BlockDocIdSet {
   private final MVScanDocIdIterator _docIdIterator;
 
   public MVScanDocIdSet(PredicateEvaluator predicateEvaluator, DataSource 
dataSource, int numDocs) {
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/MatchAllDocIdSet.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/MatchAllDocIdSet.java
index 8e6b1bdccb..497be02bd4 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/MatchAllDocIdSet.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/MatchAllDocIdSet.java
@@ -18,10 +18,11 @@
  */
 package org.apache.pinot.core.operator.docidsets;
 
+import org.apache.pinot.core.common.BlockDocIdSet;
 import org.apache.pinot.core.operator.dociditerators.MatchAllDocIdIterator;
 
 
-public final class MatchAllDocIdSet implements FilterBlockDocIdSet {
+public final class MatchAllDocIdSet implements BlockDocIdSet {
   private final int _numDocs;
 
   public MatchAllDocIdSet(int numDocs) {
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/NotDocIdSet.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/NotDocIdSet.java
index 1fe6462b68..c874722e43 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/NotDocIdSet.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/NotDocIdSet.java
@@ -19,14 +19,15 @@
 package org.apache.pinot.core.operator.docidsets;
 
 import org.apache.pinot.core.common.BlockDocIdIterator;
+import org.apache.pinot.core.common.BlockDocIdSet;
 import org.apache.pinot.core.operator.dociditerators.NotDocIdIterator;
 
 
-public class NotDocIdSet implements FilterBlockDocIdSet {
-  private final FilterBlockDocIdSet _childDocIdSet;
+public class NotDocIdSet implements BlockDocIdSet {
+  private final BlockDocIdSet _childDocIdSet;
   private final int _numDocs;
 
-  public NotDocIdSet(FilterBlockDocIdSet childDocIdSet, int numDocs) {
+  public NotDocIdSet(BlockDocIdSet childDocIdSet, int numDocs) {
     _childDocIdSet = childDocIdSet;
     _numDocs = numDocs;
   }
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/OrDocIdSet.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/OrDocIdSet.java
index 6ead802acf..9464d541bb 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/OrDocIdSet.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/OrDocIdSet.java
@@ -21,6 +21,7 @@ package org.apache.pinot.core.operator.docidsets;
 import java.util.ArrayList;
 import java.util.List;
 import org.apache.pinot.core.common.BlockDocIdIterator;
+import org.apache.pinot.core.common.BlockDocIdSet;
 import org.apache.pinot.core.operator.dociditerators.BitmapBasedDocIdIterator;
 import org.apache.pinot.core.operator.dociditerators.BitmapDocIdIterator;
 import org.apache.pinot.core.operator.dociditerators.OrDocIdIterator;
@@ -30,9 +31,9 @@ import org.roaringbitmap.buffer.MutableRoaringBitmap;
 
 
 /**
- * The FilterBlockDocIdSet to perform OR on all child FilterBlockDocIdSets.
+ * The BlockDocIdSet to perform OR on all child BlockDocIdSets.
  * <p>The OrBlockDocIdSet will construct the BlockDocIdIterator based on the 
BlockDocIdIterators from the child
- * FilterBlockDocIdSets:
+ * BlockDocIdSets:
  * <ul>
  *   <li>
  *     When there are more than one index-base BlockDocIdIterator 
(SortedDocIdIterator or BitmapBasedDocIdIterator),
@@ -45,11 +46,11 @@ import org.roaringbitmap.buffer.MutableRoaringBitmap;
  *   </li>
  * </ul>
  */
-public final class OrDocIdSet implements FilterBlockDocIdSet {
-  private final List<FilterBlockDocIdSet> _docIdSets;
+public final class OrDocIdSet implements BlockDocIdSet {
+  private final List<BlockDocIdSet> _docIdSets;
   private final int _numDocs;
 
-  public OrDocIdSet(List<FilterBlockDocIdSet> docIdSets, int numDocs) {
+  public OrDocIdSet(List<BlockDocIdSet> docIdSets, int numDocs) {
     _docIdSets = docIdSets;
     _numDocs = numDocs;
   }
@@ -112,7 +113,7 @@ public final class OrDocIdSet implements 
FilterBlockDocIdSet {
   @Override
   public long getNumEntriesScannedInFilter() {
     long numEntriesScannedInFilter = 0L;
-    for (FilterBlockDocIdSet docIdSet : _docIdSets) {
+    for (BlockDocIdSet docIdSet : _docIdSets) {
       numEntriesScannedInFilter += docIdSet.getNumEntriesScannedInFilter();
     }
     return numEntriesScannedInFilter;
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/RangelessBitmapDocIdSet.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/RangelessBitmapDocIdSet.java
index 463a2df84a..20fb0af6f5 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/RangelessBitmapDocIdSet.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/RangelessBitmapDocIdSet.java
@@ -18,11 +18,12 @@
  */
 package org.apache.pinot.core.operator.docidsets;
 
+import org.apache.pinot.core.common.BlockDocIdSet;
 import 
org.apache.pinot.core.operator.dociditerators.RangelessBitmapDocIdIterator;
 import org.roaringbitmap.buffer.ImmutableRoaringBitmap;
 
 
-public class RangelessBitmapDocIdSet implements FilterBlockDocIdSet {
+public class RangelessBitmapDocIdSet implements BlockDocIdSet {
   private final RangelessBitmapDocIdIterator _iterator;
 
   public RangelessBitmapDocIdSet(ImmutableRoaringBitmap docIds) {
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/SVScanDocIdSet.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/SVScanDocIdSet.java
index 9167304561..85ca55bacc 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/SVScanDocIdSet.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/SVScanDocIdSet.java
@@ -18,13 +18,14 @@
  */
 package org.apache.pinot.core.operator.docidsets;
 
+import org.apache.pinot.core.common.BlockDocIdSet;
 import org.apache.pinot.core.operator.dociditerators.SVScanDocIdIterator;
 import org.apache.pinot.core.operator.filter.predicate.PredicateEvaluator;
 import org.apache.pinot.segment.spi.datasource.DataSource;
 import org.apache.pinot.segment.spi.index.reader.NullValueVectorReader;
 
 
-public final class SVScanDocIdSet implements FilterBlockDocIdSet {
+public final class SVScanDocIdSet implements BlockDocIdSet {
   private final SVScanDocIdIterator _docIdIterator;
 
   public SVScanDocIdSet(PredicateEvaluator predicateEvaluator, DataSource 
dataSource, int numDocs,
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/SortedDocIdSet.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/SortedDocIdSet.java
index 2c57caf235..280f9daeb9 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/SortedDocIdSet.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/docidsets/SortedDocIdSet.java
@@ -19,11 +19,12 @@
 package org.apache.pinot.core.operator.docidsets;
 
 import java.util.List;
+import org.apache.pinot.core.common.BlockDocIdSet;
 import org.apache.pinot.core.operator.dociditerators.SortedDocIdIterator;
 import org.apache.pinot.spi.utils.Pairs.IntPair;
 
 
-public final class SortedDocIdSet implements FilterBlockDocIdSet {
+public final class SortedDocIdSet implements BlockDocIdSet {
   private final List<IntPair> _docIdRanges;
 
   // NOTE: No need to track numDocs because sorted index can only apply to 
ImmutableSegment, so the document ids are
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/filter/AndFilterOperator.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/filter/AndFilterOperator.java
index de2062fd6c..38da261c52 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/filter/AndFilterOperator.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/filter/AndFilterOperator.java
@@ -21,10 +21,10 @@ package org.apache.pinot.core.operator.filter;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import org.apache.pinot.core.common.BlockDocIdSet;
 import org.apache.pinot.core.common.Operator;
 import org.apache.pinot.core.operator.blocks.FilterBlock;
 import org.apache.pinot.core.operator.docidsets.AndDocIdSet;
-import org.apache.pinot.core.operator.docidsets.FilterBlockDocIdSet;
 import org.apache.pinot.spi.trace.Tracing;
 import org.roaringbitmap.buffer.BufferFastAggregation;
 import org.roaringbitmap.buffer.ImmutableRoaringBitmap;
@@ -48,11 +48,11 @@ public class AndFilterOperator extends BaseFilterOperator {
   @Override
   protected FilterBlock getNextBlock() {
     Tracing.activeRecording().setNumChildren(_filterOperators.size());
-    List<FilterBlockDocIdSet> filterBlockDocIdSets = new 
ArrayList<>(_filterOperators.size());
+    List<BlockDocIdSet> blockDocIdSets = new 
ArrayList<>(_filterOperators.size());
     for (BaseFilterOperator filterOperator : _filterOperators) {
-      filterBlockDocIdSets.add(filterOperator.nextBlock().getBlockDocIdSet());
+      blockDocIdSets.add(filterOperator.nextBlock().getBlockDocIdSet());
     }
-    return new FilterBlock(new AndDocIdSet(filterBlockDocIdSets, 
_queryOptions));
+    return new FilterBlock(new AndDocIdSet(blockDocIdSets, _queryOptions));
   }
 
   @Override
@@ -77,7 +77,6 @@ public class AndFilterOperator extends BaseFilterOperator {
     return BufferFastAggregation.andCardinality(bitmaps);
   }
 
-
   @Override
   public List<Operator> getChildOperators() {
     return new ArrayList<>(_filterOperators);
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/filter/CombinedFilterOperator.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/filter/CombinedFilterOperator.java
index 89b856d9b6..c0fa2fa04f 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/filter/CombinedFilterOperator.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/filter/CombinedFilterOperator.java
@@ -21,10 +21,10 @@ package org.apache.pinot.core.operator.filter;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
+import org.apache.pinot.core.common.BlockDocIdSet;
 import org.apache.pinot.core.common.Operator;
 import org.apache.pinot.core.operator.blocks.FilterBlock;
 import org.apache.pinot.core.operator.docidsets.AndDocIdSet;
-import org.apache.pinot.core.operator.docidsets.FilterBlockDocIdSet;
 import org.apache.pinot.spi.trace.Tracing;
 
 
@@ -59,8 +59,8 @@ public class CombinedFilterOperator extends 
BaseFilterOperator {
   @Override
   protected FilterBlock getNextBlock() {
     Tracing.activeRecording().setNumChildren(2);
-    FilterBlockDocIdSet mainFilterDocIdSet = 
_mainFilterOperator.nextBlock().getNonScanFilterBLockDocIdSet();
-    FilterBlockDocIdSet subFilterDocIdSet = 
_subFilterOperator.nextBlock().getBlockDocIdSet();
+    BlockDocIdSet mainFilterDocIdSet = 
_mainFilterOperator.nextBlock().getNonScanFilterBLockDocIdSet();
+    BlockDocIdSet subFilterDocIdSet = 
_subFilterOperator.nextBlock().getBlockDocIdSet();
     return new FilterBlock(new AndDocIdSet(Arrays.asList(mainFilterDocIdSet, 
subFilterDocIdSet), _queryOptions));
   }
 }
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/filter/ExpressionFilterOperator.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/filter/ExpressionFilterOperator.java
index 5d3390fc46..50e8ebb7e7 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/filter/ExpressionFilterOperator.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/filter/ExpressionFilterOperator.java
@@ -28,7 +28,7 @@ import 
org.apache.pinot.common.request.context.ExpressionContext;
 import org.apache.pinot.common.request.context.predicate.Predicate;
 import org.apache.pinot.core.common.Operator;
 import org.apache.pinot.core.operator.blocks.FilterBlock;
-import org.apache.pinot.core.operator.docidsets.ExpressionFilterDocIdSet;
+import org.apache.pinot.core.operator.docidsets.ExpressionDocIdSet;
 import org.apache.pinot.core.operator.filter.predicate.PredicateEvaluator;
 import 
org.apache.pinot.core.operator.filter.predicate.PredicateEvaluatorProvider;
 import org.apache.pinot.core.operator.transform.function.TransformFunction;
@@ -65,8 +65,7 @@ public class ExpressionFilterOperator extends 
BaseFilterOperator {
 
   @Override
   protected FilterBlock getNextBlock() {
-    return new FilterBlock(
-        new ExpressionFilterDocIdSet(_transformFunction, _predicateEvaluator, 
_dataSourceMap, _numDocs));
+    return new FilterBlock(new ExpressionDocIdSet(_transformFunction, 
_predicateEvaluator, _dataSourceMap, _numDocs));
   }
 
   @Override
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/filter/OrFilterOperator.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/filter/OrFilterOperator.java
index 3d262d5f01..114703ec06 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/filter/OrFilterOperator.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/filter/OrFilterOperator.java
@@ -20,9 +20,9 @@ package org.apache.pinot.core.operator.filter;
 
 import java.util.ArrayList;
 import java.util.List;
+import org.apache.pinot.core.common.BlockDocIdSet;
 import org.apache.pinot.core.common.Operator;
 import org.apache.pinot.core.operator.blocks.FilterBlock;
-import org.apache.pinot.core.operator.docidsets.FilterBlockDocIdSet;
 import org.apache.pinot.core.operator.docidsets.OrDocIdSet;
 import org.apache.pinot.spi.trace.Tracing;
 import org.roaringbitmap.buffer.BufferFastAggregation;
@@ -30,8 +30,8 @@ import org.roaringbitmap.buffer.ImmutableRoaringBitmap;
 
 
 public class OrFilterOperator extends BaseFilterOperator {
-
   private static final String EXPLAIN_NAME = "FILTER_OR";
+
   private final List<BaseFilterOperator> _filterOperators;
   private final int _numDocs;
 
@@ -43,14 +43,13 @@ public class OrFilterOperator extends BaseFilterOperator {
   @Override
   protected FilterBlock getNextBlock() {
     Tracing.activeRecording().setNumChildren(_filterOperators.size());
-    List<FilterBlockDocIdSet> filterBlockDocIdSets = new 
ArrayList<>(_filterOperators.size());
+    List<BlockDocIdSet> blockDocIdSets = new 
ArrayList<>(_filterOperators.size());
     for (BaseFilterOperator filterOperator : _filterOperators) {
-      filterBlockDocIdSets.add(filterOperator.nextBlock().getBlockDocIdSet());
+      blockDocIdSets.add(filterOperator.nextBlock().getBlockDocIdSet());
     }
-    return new FilterBlock(new OrDocIdSet(filterBlockDocIdSets, _numDocs));
+    return new FilterBlock(new OrDocIdSet(blockDocIdSets, _numDocs));
   }
 
-
   @Override
   public String toExplainString() {
     return EXPLAIN_NAME;
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/filter/RangeIndexBasedFilterOperator.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/filter/RangeIndexBasedFilterOperator.java
index 277fa4429f..244718998c 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/filter/RangeIndexBasedFilterOperator.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/filter/RangeIndexBasedFilterOperator.java
@@ -21,11 +21,11 @@ package org.apache.pinot.core.operator.filter;
 import java.util.Collections;
 import java.util.List;
 import org.apache.pinot.common.request.context.predicate.Predicate;
+import org.apache.pinot.core.common.BlockDocIdSet;
 import org.apache.pinot.core.common.Operator;
 import org.apache.pinot.core.operator.blocks.FilterBlock;
 import org.apache.pinot.core.operator.dociditerators.ScanBasedDocIdIterator;
 import org.apache.pinot.core.operator.docidsets.BitmapDocIdSet;
-import org.apache.pinot.core.operator.docidsets.FilterBlockDocIdSet;
 import org.apache.pinot.core.operator.filter.predicate.PredicateEvaluator;
 import org.apache.pinot.core.operator.filter.predicate.traits.DoubleRange;
 import org.apache.pinot.core.operator.filter.predicate.traits.DoubleValue;
@@ -95,7 +95,7 @@ public class RangeIndexBasedFilterOperator extends 
BaseFilterOperator {
     // Need to scan the first and last range as they might be partially matched
     ScanBasedFilterOperator scanBasedFilterOperator =
         new ScanBasedFilterOperator(_predicateEvaluator, _dataSource, 
_numDocs, false);
-    FilterBlockDocIdSet scanBasedDocIdSet = 
scanBasedFilterOperator.getNextBlock().getBlockDocIdSet();
+    BlockDocIdSet scanBasedDocIdSet = 
scanBasedFilterOperator.getNextBlock().getBlockDocIdSet();
     MutableRoaringBitmap docIds = ((ScanBasedDocIdIterator) 
scanBasedDocIdSet.iterator()).applyAnd(partialMatches);
     if (matches != null) {
       docIds.or(matches);
diff --git 
a/pinot-core/src/test/java/org/apache/pinot/core/operator/filter/TestFilterOperator.java
 
b/pinot-core/src/test/java/org/apache/pinot/core/operator/filter/TestFilterOperator.java
index 4bcc938118..94526dfc51 100644
--- 
a/pinot-core/src/test/java/org/apache/pinot/core/operator/filter/TestFilterOperator.java
+++ 
b/pinot-core/src/test/java/org/apache/pinot/core/operator/filter/TestFilterOperator.java
@@ -21,9 +21,9 @@ package org.apache.pinot.core.operator.filter;
 import java.util.Collections;
 import java.util.List;
 import org.apache.pinot.core.common.BlockDocIdIterator;
+import org.apache.pinot.core.common.BlockDocIdSet;
 import org.apache.pinot.core.common.Operator;
 import org.apache.pinot.core.operator.blocks.FilterBlock;
-import org.apache.pinot.core.operator.docidsets.FilterBlockDocIdSet;
 import org.apache.pinot.segment.spi.Constants;
 
 
@@ -38,7 +38,7 @@ public class TestFilterOperator extends BaseFilterOperator {
 
   @Override
   protected FilterBlock getNextBlock() {
-    return new FilterBlock(new FilterBlockDocIdSet() {
+    return new FilterBlock(new BlockDocIdSet() {
       @Override
       public BlockDocIdIterator iterator() {
         return new BlockDocIdIterator() {
diff --git 
a/pinot-core/src/test/java/org/apache/pinot/core/plan/FilterPlanNodeTest.java 
b/pinot-core/src/test/java/org/apache/pinot/core/plan/FilterPlanNodeTest.java
index 8a44e83075..b123f2a807 100644
--- 
a/pinot-core/src/test/java/org/apache/pinot/core/plan/FilterPlanNodeTest.java
+++ 
b/pinot-core/src/test/java/org/apache/pinot/core/plan/FilterPlanNodeTest.java
@@ -20,8 +20,8 @@ package org.apache.pinot.core.plan;
 
 import java.util.concurrent.atomic.AtomicInteger;
 import org.apache.pinot.core.common.BlockDocIdIterator;
+import org.apache.pinot.core.common.BlockDocIdSet;
 import org.apache.pinot.core.operator.blocks.FilterBlock;
-import org.apache.pinot.core.operator.docidsets.FilterBlockDocIdSet;
 import org.apache.pinot.core.operator.filter.BaseFilterOperator;
 import org.apache.pinot.core.query.request.context.QueryContext;
 import org.apache.pinot.segment.spi.Constants;
@@ -80,7 +80,7 @@ public class FilterPlanNodeTest {
     BaseFilterOperator op = node.run();
     int numDocsFiltered = 0;
     FilterBlock block = op.nextBlock();
-    FilterBlockDocIdSet blockIds = block.getBlockDocIdSet();
+    BlockDocIdSet blockIds = block.getBlockDocIdSet();
     BlockDocIdIterator it = blockIds.iterator();
     while (it.next() != Constants.EOF) {
       numDocsFiltered++;
diff --git 
a/pinot-core/src/test/java/org/apache/pinot/core/startree/v2/BaseStarTreeV2Test.java
 
b/pinot-core/src/test/java/org/apache/pinot/core/startree/v2/BaseStarTreeV2Test.java
index efe2196bb0..f9bb00980c 100644
--- 
a/pinot-core/src/test/java/org/apache/pinot/core/startree/v2/BaseStarTreeV2Test.java
+++ 
b/pinot-core/src/test/java/org/apache/pinot/core/startree/v2/BaseStarTreeV2Test.java
@@ -33,7 +33,6 @@ import org.apache.commons.io.FileUtils;
 import org.apache.pinot.common.request.context.ExpressionContext;
 import org.apache.pinot.core.common.BlockDocIdIterator;
 import org.apache.pinot.core.plan.FilterPlanNode;
-import org.apache.pinot.core.plan.PlanNode;
 import org.apache.pinot.core.query.aggregation.function.AggregationFunction;
 import org.apache.pinot.core.query.request.context.QueryContext;
 import 
org.apache.pinot.core.query.request.context.utils.QueryContextConverterUtils;
@@ -256,7 +255,7 @@ abstract class BaseStarTreeV2Test<R, A> {
     assertNotNull(predicateEvaluatorsMap);
 
     // Extract values with star-tree
-    PlanNode starTreeFilterPlanNode =
+    StarTreeFilterPlanNode starTreeFilterPlanNode =
         new StarTreeFilterPlanNode(queryContext, _starTreeV2, 
predicateEvaluatorsMap, groupByColumnSet);
     List<ForwardIndexReader> starTreeAggregationColumnReaders = new 
ArrayList<>(numAggregations);
     for (AggregationFunctionColumnPair aggregationFunctionColumnPair : 
aggregationFunctionColumnPairs) {
@@ -271,7 +270,7 @@ abstract class BaseStarTreeV2Test<R, A> {
         computeStarTreeResult(starTreeFilterPlanNode, 
starTreeAggregationColumnReaders, starTreeGroupByColumnReaders);
 
     // Extract values without star-tree
-    PlanNode nonStarTreeFilterPlanNode = new FilterPlanNode(_indexSegment, 
queryContext);
+    FilterPlanNode nonStarTreeFilterPlanNode = new 
FilterPlanNode(_indexSegment, queryContext);
     List<ForwardIndexReader> nonStarTreeAggregationColumnReaders = new 
ArrayList<>(numAggregations);
     List<Dictionary> nonStarTreeAggregationColumnDictionaries = new 
ArrayList<>(numAggregations);
     for (AggregationFunctionColumnPair aggregationFunctionColumnPair : 
aggregationFunctionColumnPairs) {
@@ -305,7 +304,7 @@ abstract class BaseStarTreeV2Test<R, A> {
     }
   }
 
-  private Map<List<Integer>, List<Object>> computeStarTreeResult(PlanNode 
starTreeFilterPlanNode,
+  private Map<List<Integer>, List<Object>> 
computeStarTreeResult(StarTreeFilterPlanNode starTreeFilterPlanNode,
       List<ForwardIndexReader> aggregationColumnReaders, 
List<ForwardIndexReader> groupByColumnReaders)
       throws IOException {
     Map<List<Integer>, List<Object>> result = new HashMap<>();
@@ -372,7 +371,7 @@ abstract class BaseStarTreeV2Test<R, A> {
     }
   }
 
-  private Map<List<Integer>, List<Object>> computeNonStarTreeResult(PlanNode 
nonStarTreeFilterPlanNode,
+  private Map<List<Integer>, List<Object>> 
computeNonStarTreeResult(FilterPlanNode nonStarTreeFilterPlanNode,
       List<ForwardIndexReader> aggregationColumnReaders, List<Dictionary> 
aggregationColumnDictionaries,
       List<ForwardIndexReader> groupByColumnReaders)
       throws IOException {
diff --git 
a/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/blocks/TransferableBlock.java
 
b/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/blocks/TransferableBlock.java
index 99be9e9105..64e4dc31ae 100644
--- 
a/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/blocks/TransferableBlock.java
+++ 
b/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/blocks/TransferableBlock.java
@@ -29,10 +29,6 @@ import org.apache.pinot.common.datablock.MetadataBlock;
 import org.apache.pinot.common.datablock.RowDataBlock;
 import org.apache.pinot.common.utils.DataSchema;
 import org.apache.pinot.core.common.Block;
-import org.apache.pinot.core.common.BlockDocIdSet;
-import org.apache.pinot.core.common.BlockDocIdValueSet;
-import org.apache.pinot.core.common.BlockMetadata;
-import org.apache.pinot.core.common.BlockValSet;
 import org.apache.pinot.core.common.ObjectSerDeUtils;
 import org.apache.pinot.core.common.datablock.DataBlockBuilder;
 import org.apache.pinot.query.runtime.operator.OperatorStats;
@@ -192,24 +188,4 @@ public class TransferableBlock implements Block {
     MetadataBlock metadata = (MetadataBlock) _dataBlock;
     return metadata.getType() == type;
   }
-
-  @Override
-  public BlockValSet getBlockValueSet() {
-    throw new UnsupportedOperationException();
-  }
-
-  @Override
-  public BlockDocIdValueSet getBlockDocIdValueSet() {
-    throw new UnsupportedOperationException();
-  }
-
-  @Override
-  public BlockDocIdSet getBlockDocIdSet() {
-    throw new UnsupportedOperationException();
-  }
-
-  @Override
-  public BlockMetadata getMetadata() {
-    throw new UnsupportedOperationException();
-  }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to