cecemei commented on code in PR #20149:
URL: https://github.com/apache/druid/pull/20149#discussion_r3867546471
##########
processing/src/main/java/org/apache/druid/query/filter/FilterSegmentPruner.java:
##########
@@ -164,10 +201,37 @@ public String toString()
'}';
}
+ /**
+ * Adds the filter's {@link RangeSet} for {@code column} to {@code
filterDomain}, resolving through
+ * {@code domainVirtualColumns} to the query's equivalent virtual column if
{@code column} is virtual there.
+ */
+ private void addToFilterDomain(
+ String column,
+ VirtualColumns domainVirtualColumns,
+ Map<String, RangeSet<String>> filterDomain
+ )
+ {
+ final VirtualColumns.Node domainNode =
domainVirtualColumns.getNode(column);
+ if (domainNode != null) {
+ final VirtualColumn queryEquivalent = getQueryEquivalent(domainNode);
+ if (queryEquivalent != null &&
filterFields.contains(queryEquivalent.getOutputName())) {
Review Comment:
Do you mean that we should match virtual column for both and never match a
virtual column (either from clustering group or query) with a physical column?
I just added that check, also with test
`testPruneClusterGroupTuplesVirtualColumnNoQueryVirtualColumnNeverPrunes` and
`testPruneClusterGroupTuplesShadowedByQueryVirtualColumnNeverPrunes`
--
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]