Github user manishgupta88 commented on a diff in the pull request: https://github.com/apache/carbondata/pull/2820#discussion_r226974056 --- Diff: core/src/main/java/org/apache/carbondata/core/scan/scanner/impl/BlockletFilterScanner.java --- @@ -98,7 +98,11 @@ public BlockletFilterScanner(BlockExecutionInfo blockExecutionInfo, @Override public BlockletScannedResult scanBlocklet(RawBlockletColumnChunks rawBlockletColumnChunks) throws IOException, FilterUnsupportedException { - return executeFilter(rawBlockletColumnChunks); + if (blockExecutionInfo.isDirectVectorFill()) { + return executeFilterForPages(rawBlockletColumnChunks); + } else { + return executeFilter(rawBlockletColumnChunks); --- End diff -- As per the design I think we should follow the below hierarchy `prune block -> prune blocklet -> prune pages -> prune rows (if row filtering is enabled)` With current implementation we have 2 branches after `prune blocklet -> prune pages and prune rows` in parallel based on directVectorFill configuration. The effort to correct the design will be more so I think we can raise a jira to track the issue and correct it in near future
---