mirror of https://github.com/apache/druid.git
DimFilterUtils: Exit filterShards early when filter is null. (#16774)
When the filter is null, there is no need to run the converter on all the input objects.
This commit is contained in:
parent
b645d09c5d
commit
8b8ca0d7fc
|
@ -20,6 +20,7 @@
|
||||||
package org.apache.druid.query.filter;
|
package org.apache.druid.query.filter;
|
||||||
|
|
||||||
import com.google.common.base.Function;
|
import com.google.common.base.Function;
|
||||||
|
import com.google.common.collect.ImmutableSet;
|
||||||
import com.google.common.collect.RangeSet;
|
import com.google.common.collect.RangeSet;
|
||||||
import org.apache.druid.query.planning.DataSourceAnalysis;
|
import org.apache.druid.query.planning.DataSourceAnalysis;
|
||||||
import org.apache.druid.timeline.partition.ShardSpec;
|
import org.apache.druid.timeline.partition.ShardSpec;
|
||||||
|
@ -116,13 +117,19 @@ public class DimFilterUtils
|
||||||
final Map<String, Optional<RangeSet<String>>> dimensionRangeCache
|
final Map<String, Optional<RangeSet<String>>> dimensionRangeCache
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
if (dimFilter == null) {
|
||||||
|
// ImmutableSet retains order from "input".
|
||||||
|
return ImmutableSet.copyOf(input);
|
||||||
|
}
|
||||||
|
|
||||||
|
// LinkedHashSet retains order from "input".
|
||||||
Set<T> retSet = new LinkedHashSet<>();
|
Set<T> retSet = new LinkedHashSet<>();
|
||||||
|
|
||||||
for (T obj : input) {
|
for (T obj : input) {
|
||||||
ShardSpec shard = converter.apply(obj);
|
ShardSpec shard = converter.apply(obj);
|
||||||
boolean include = true;
|
boolean include = true;
|
||||||
|
|
||||||
if (dimFilter != null && shard != null) {
|
if (shard != null) {
|
||||||
Map<String, RangeSet<String>> filterDomain = new HashMap<>();
|
Map<String, RangeSet<String>> filterDomain = new HashMap<>();
|
||||||
List<String> dimensions = shard.getDomainDimensions();
|
List<String> dimensions = shard.getDomainDimensions();
|
||||||
for (String dimension : dimensions) {
|
for (String dimension : dimensions) {
|
||||||
|
|
Loading…
Reference in New Issue