richardstartin commented on a change in pull request #7565:
URL: https://github.com/apache/pinot/pull/7565#discussion_r727215926
##########
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'm not sure I see the benefit, to be honest. It's also clear that the
small set is in the outer loop the way it's written, whereas using that code
literally, `Collections.disjoint` would iterate over potentially hundreds of
columns. Of course, you can swap the arguments, but writing a very simple loop
makes it obvious.
--
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]