rohangarg commented on code in PR #12225:
URL: https://github.com/apache/druid/pull/12225#discussion_r889723470
##########
processing/src/main/java/org/apache/druid/segment/join/JoinableFactoryWrapper.java:
##########
@@ -276,28 +272,31 @@ static Optional<Filter> convertJoinToFilter(
&& clause.getCondition().getEquiConditions().size() > 0) {
final List<Filter> filters = new ArrayList<>();
int numValues = maxNumFilterValues;
+ boolean dropClause = true;
for (final Equality condition :
clause.getCondition().getEquiConditions()) {
final String leftColumn =
condition.getLeftExpr().getBindingIfIdentifier();
if (leftColumn == null) {
- return Optional.empty();
+ return new NonnullPair<>(Optional.empty(), false);
}
- final Optional<Set<String>> columnValuesForFilter =
-
clause.getJoinable().getNonNullColumnValuesIfAllUnique(condition.getRightColumn(),
numValues);
+ Joinable.ColumnValuesWithUniqueFlag columnValuesWithUniqueFlag =
clause.getJoinable().getNonNullColumnValues(condition.getRightColumn(),
numValues);
+ if (columnValuesWithUniqueFlag.getColumnValues().isEmpty()) {
+ dropClause = false;
+ continue;
+ }
- if (columnValuesForFilter.isPresent()) {
- numValues -= columnValuesForFilter.get().size();
- filters.add(Filters.toFilter(new InDimFilter(leftColumn,
columnValuesForFilter.get())));
- } else {
- return Optional.empty();
+ numValues -= columnValuesWithUniqueFlag.getColumnValues().size();
+ filters.add(Filters.toFilter(new InDimFilter(leftColumn,
columnValuesWithUniqueFlag.getColumnValues())));
+ if (!columnValuesWithUniqueFlag.isAllUnique()) {
+ dropClause = false;
}
}
- return Optional.of(Filters.and(filters));
+ return new NonnullPair<>(filters.isEmpty() ? Optional.empty() :
Optional.of(Filters.and(filters)), dropClause);
Review Comment:
:+1: thanks for suggestion - added to the javadocs for holder class
--
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]