walterddr commented on a change in pull request #7565:
URL: https://github.com/apache/pinot/pull/7565#discussion_r727277843
##########
File path:
pinot-core/src/main/java/org/apache/pinot/core/query/pruner/DataSchemaSegmentPruner.java
##########
@@ -35,7 +35,13 @@ public void init(PinotConfiguration config) {
@Override
public boolean prune(IndexSegment segment, QueryContext query) {
- return !segment.getColumnNames().containsAll(query.getColumns());
+ for (String column : query.getColumns()) {
+ if (segment.getColumnNames().contains(column)) {
+ return false;
+ }
+ }
+ // don't prune unless the segment has none of the relevant columns
+ return !query.getColumns().isEmpty();
Review comment:
i see. so for performance consideration we can probably use
`com.google.common.collect.Sets.intersection`. It creates a lazy view and will
immediately bail out if it finds intersection when `Sets.intersection(a,
b).isEmpty`.
the for loop also works just fine, the reason why I suggested this was that
it's easier to reason the 2 conditions.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]