You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@druid.apache.org by fj...@apache.org on 2019/04/25 05:11:51 UTC

[incubator-druid] branch 0.14.1-incubating updated: Fix aggregatorFactory meta merge exception (#7504) (#7544)

This is an automated email from the ASF dual-hosted git repository.

fjy pushed a commit to branch 0.14.1-incubating
in repository https://gitbox.apache.org/repos/asf/incubator-druid.git


The following commit(s) were added to refs/heads/0.14.1-incubating by this push:
     new 58dcb23  Fix aggregatorFactory meta merge exception (#7504) (#7544)
58dcb23 is described below

commit 58dcb23603d6a83b095fca5a2f7d88785da7488e
Author: Clint Wylie <cj...@gmail.com>
AuthorDate: Wed Apr 24 22:11:41 2019 -0700

    Fix aggregatorFactory meta merge exception (#7504) (#7544)
---
 .../hll/HllSketchMergeAggregatorFactory.java          | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchMergeAggregatorFactory.java b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchMergeAggregatorFactory.java
index f1a0b1a..b82b35b 100644
--- a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchMergeAggregatorFactory.java
+++ b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchMergeAggregatorFactory.java
@@ -25,6 +25,8 @@ import com.yahoo.sketches.hll.HllSketch;
 import com.yahoo.sketches.hll.TgtHllType;
 import com.yahoo.sketches.hll.Union;
 import org.apache.druid.query.aggregation.Aggregator;
+import org.apache.druid.query.aggregation.AggregatorFactory;
+import org.apache.druid.query.aggregation.AggregatorFactoryNotMergeableException;
 import org.apache.druid.query.aggregation.AggregatorUtil;
 import org.apache.druid.query.aggregation.BufferAggregator;
 import org.apache.druid.segment.ColumnSelectorFactory;
@@ -52,6 +54,23 @@ public class HllSketchMergeAggregatorFactory extends HllSketchAggregatorFactory
   }
 
   @Override
+  public AggregatorFactory getMergingFactory(AggregatorFactory other) throws AggregatorFactoryNotMergeableException
+  {
+    if (other.getName().equals(this.getName()) && other instanceof HllSketchMergeAggregatorFactory) {
+      HllSketchMergeAggregatorFactory castedOther = (HllSketchMergeAggregatorFactory) other;
+
+      return new HllSketchMergeAggregatorFactory(
+              getName(),
+              getName(),
+              Math.max(getLgK(), castedOther.getLgK()),
+              getTgtHllType().compareTo(castedOther.getTgtHllType()) < 0 ? castedOther.getTgtHllType() : getTgtHllType()
+      );
+    } else {
+      throw new AggregatorFactoryNotMergeableException(this, other);
+    }
+  }
+
+  @Override
   public String getTypeName()
   {
     return HllSketchModule.MERGE_TYPE_NAME;


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@druid.apache.org
For additional commands, e-mail: commits-help@druid.apache.org