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

xvrl pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/druid.git


The following commit(s) were added to refs/heads/master by this push:
     new 50038d9  latest datasketches-java-3.1.0 (#12224)
50038d9 is described below

commit 50038d9344fb745bfe47c81a59bdc29ae3dcff1d
Author: Alexander Saydakov <[email protected]>
AuthorDate: Tue Mar 1 17:14:42 2022 -0800

    latest datasketches-java-3.1.0 (#12224)
    
    These changes are to use the latest datasketches-java-3.1.0 and also to 
restore support for quantile and HLL4 sketches to be able to grow larger than a 
given buffer in a buffer aggregator and move to heap in rare cases. This was 
discussed in #11544.
    
    Co-authored-by: AlexanderSaydakov 
<[email protected]>
---
 .../hll/HllSketchBuildBufferAggregatorHelper.java  |  6 ++-
 .../DoublesSketchBuildBufferAggregator.java        |  2 +-
 .../DoublesSketchBuildBufferAggregatorHelper.java  |  6 ++-
 .../DoublesSketchBuildVectorAggregator.java        | 24 ++++------
 .../quantiles/DoublesSketchMergeAggregator.java    | 12 ++---
 .../DoublesSketchMergeBufferAggregatorHelper.java  |  6 ++-
 .../DoublesSketchMergeVectorAggregator.java        | 28 +++++-------
 .../datasketches/quantiles/DoublesSketches.java    | 53 ----------------------
 .../quantiles/DoublesSketchAggregatorTest.java     | 42 +----------------
 .../sql/DoublesSketchSqlAggregatorTest.java        | 16 ++++---
 .../tuple/ArrayOfDoublesSketchAggregationTest.java |  2 +
 licenses.yaml                                      |  2 +-
 pom.xml                                            |  2 +-
 13 files changed, 57 insertions(+), 144 deletions(-)

diff --git 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchBuildBufferAggregatorHelper.java
 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchBuildBufferAggregatorHelper.java
index 8ad8dfe..f7e386a 100644
--- 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchBuildBufferAggregatorHelper.java
+++ 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchBuildBufferAggregatorHelper.java
@@ -23,6 +23,8 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
 import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
 import org.apache.datasketches.hll.HllSketch;
 import org.apache.datasketches.hll.TgtHllType;
+import org.apache.datasketches.memory.DefaultMemoryRequestServer;
+import org.apache.datasketches.memory.MemoryRequestServer;
 import org.apache.datasketches.memory.WritableMemory;
 
 import java.nio.ByteBuffer;
@@ -31,6 +33,7 @@ import java.util.IdentityHashMap;
 
 public class HllSketchBuildBufferAggregatorHelper
 {
+  private static final MemoryRequestServer MEM_REQ_SERVER = new 
DefaultMemoryRequestServer();
   private final int lgK;
   private final int size;
   private final IdentityHashMap<ByteBuffer, WritableMemory> memCache = new 
IdentityHashMap<>();
@@ -123,7 +126,8 @@ public class HllSketchBuildBufferAggregatorHelper
 
   private WritableMemory getMemory(final ByteBuffer buf)
   {
-    return memCache.computeIfAbsent(buf, b -> WritableMemory.writableWrap(b, 
ByteOrder.LITTLE_ENDIAN));
+    return memCache.computeIfAbsent(buf,
+        b -> WritableMemory.writableWrap(b, ByteOrder.LITTLE_ENDIAN, 
MEM_REQ_SERVER));
   }
 
   private void putSketchIntoCache(final ByteBuffer buf, final int position, 
final HllSketch sketch)
diff --git 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchBuildBufferAggregator.java
 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchBuildBufferAggregator.java
index c2529ac..74be19b 100644
--- 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchBuildBufferAggregator.java
+++ 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchBuildBufferAggregator.java
@@ -57,7 +57,7 @@ public class DoublesSketchBuildBufferAggregator implements 
BufferAggregator
     }
 
     final UpdateDoublesSketch sketch = helper.getSketchAtPosition(buffer, 
position);
-    DoublesSketches.handleMaxStreamLengthLimit(() -> 
sketch.update(selector.getDouble()));
+    sketch.update(selector.getDouble());
   }
 
   @Nullable
diff --git 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchBuildBufferAggregatorHelper.java
 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchBuildBufferAggregatorHelper.java
index 2acad90..dc7e2f1 100644
--- 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchBuildBufferAggregatorHelper.java
+++ 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchBuildBufferAggregatorHelper.java
@@ -21,6 +21,8 @@ package 
org.apache.druid.query.aggregation.datasketches.quantiles;
 
 import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
 import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
+import org.apache.datasketches.memory.DefaultMemoryRequestServer;
+import org.apache.datasketches.memory.MemoryRequestServer;
 import org.apache.datasketches.memory.WritableMemory;
 import org.apache.datasketches.quantiles.CompactDoublesSketch;
 import org.apache.datasketches.quantiles.DoublesSketch;
@@ -32,6 +34,7 @@ import java.util.IdentityHashMap;
 
 public class DoublesSketchBuildBufferAggregatorHelper
 {
+  private static final MemoryRequestServer MEM_REQ_SERVER = new 
DefaultMemoryRequestServer();
   private final int size;
   private final int maxIntermediateSize;
   private final IdentityHashMap<ByteBuffer, WritableMemory> memCache = new 
IdentityHashMap<>();
@@ -92,7 +95,8 @@ public class DoublesSketchBuildBufferAggregatorHelper
 
   private WritableMemory getMemory(final ByteBuffer buffer)
   {
-    return memCache.computeIfAbsent(buffer, buf -> 
WritableMemory.writableWrap(buf, ByteOrder.LITTLE_ENDIAN));
+    return memCache.computeIfAbsent(buffer,
+        buf -> WritableMemory.writableWrap(buf, ByteOrder.LITTLE_ENDIAN, 
MEM_REQ_SERVER));
   }
 
   private void putSketch(final ByteBuffer buffer, final int position, final 
UpdateDoublesSketch sketch)
diff --git 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchBuildVectorAggregator.java
 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchBuildVectorAggregator.java
index c1074f5..af29c5b 100644
--- 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchBuildVectorAggregator.java
+++ 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchBuildVectorAggregator.java
@@ -55,13 +55,11 @@ public class DoublesSketchBuildVectorAggregator implements 
VectorAggregator
 
     final UpdateDoublesSketch sketch = helper.getSketchAtPosition(buf, 
position);
 
-    DoublesSketches.handleMaxStreamLengthLimit(() -> {
-      for (int i = startRow; i < endRow; i++) {
-        if (nulls == null || !nulls[i]) {
-          sketch.update(doubles[i]);
-        }
+    for (int i = startRow; i < endRow; i++) {
+      if (nulls == null || !nulls[i]) {
+        sketch.update(doubles[i]);
       }
-    });
+    }
   }
 
   @Override
@@ -76,16 +74,14 @@ public class DoublesSketchBuildVectorAggregator implements 
VectorAggregator
     final double[] doubles = selector.getDoubleVector();
     final boolean[] nulls = selector.getNullVector();
 
-    DoublesSketches.handleMaxStreamLengthLimit(() -> {
-      for (int i = 0; i < numRows; i++) {
-        final int idx = rows != null ? rows[i] : i;
+    for (int i = 0; i < numRows; i++) {
+      final int idx = rows != null ? rows[i] : i;
 
-        if (nulls == null || !nulls[idx]) {
-          final int position = positions[i] + positionOffset;
-          helper.getSketchAtPosition(buf, position).update(doubles[idx]);
-        }
+      if (nulls == null || !nulls[idx]) {
+        final int position = positions[i] + positionOffset;
+        helper.getSketchAtPosition(buf, position).update(doubles[idx]);
       }
-    });
+    }
   }
 
   @Override
diff --git 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchMergeAggregator.java
 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchMergeAggregator.java
index a5f12d2..6693742 100644
--- 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchMergeAggregator.java
+++ 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchMergeAggregator.java
@@ -76,12 +76,10 @@ public class DoublesSketchMergeAggregator implements 
Aggregator
     if (object == null) {
       return;
     }
-    DoublesSketches.handleMaxStreamLengthLimit(() -> {
-      if (object instanceof DoublesSketch) {
-        union.update((DoublesSketch) object);
-      } else {
-        union.update(selector.getDouble());
-      }
-    });
+    if (object instanceof DoublesSketch) {
+      union.update((DoublesSketch) object);
+    } else {
+      union.update(selector.getDouble());
+    }
   }
 }
diff --git 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchMergeBufferAggregatorHelper.java
 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchMergeBufferAggregatorHelper.java
index d9f4bad..6cb0f3a 100644
--- 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchMergeBufferAggregatorHelper.java
+++ 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchMergeBufferAggregatorHelper.java
@@ -21,6 +21,8 @@ package 
org.apache.druid.query.aggregation.datasketches.quantiles;
 
 import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
 import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
+import org.apache.datasketches.memory.DefaultMemoryRequestServer;
+import org.apache.datasketches.memory.MemoryRequestServer;
 import org.apache.datasketches.memory.WritableMemory;
 import org.apache.datasketches.quantiles.DoublesUnion;
 
@@ -30,6 +32,7 @@ import java.util.IdentityHashMap;
 
 public class DoublesSketchMergeBufferAggregatorHelper
 {
+  private static final MemoryRequestServer MEM_REQ_SERVER = new 
DefaultMemoryRequestServer();
   private final int k;
   private final int maxIntermediateSize;
   private final IdentityHashMap<ByteBuffer, WritableMemory> memCache = new 
IdentityHashMap<>();
@@ -93,7 +96,8 @@ public class DoublesSketchMergeBufferAggregatorHelper
 
   private WritableMemory getMemory(final ByteBuffer buffer)
   {
-    return memCache.computeIfAbsent(buffer, buf -> 
WritableMemory.writableWrap(buf, ByteOrder.LITTLE_ENDIAN));
+    return memCache.computeIfAbsent(buffer,
+        buf -> WritableMemory.writableWrap(buf, ByteOrder.LITTLE_ENDIAN, 
MEM_REQ_SERVER));
   }
 
   private void putUnion(final ByteBuffer buffer, final int position, final 
DoublesUnion union)
diff --git 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchMergeVectorAggregator.java
 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchMergeVectorAggregator.java
index 92437d0..8a8e10b 100644
--- 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchMergeVectorAggregator.java
+++ 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchMergeVectorAggregator.java
@@ -55,14 +55,12 @@ public class DoublesSketchMergeVectorAggregator implements 
VectorAggregator
 
     final DoublesUnion union = helper.getSketchAtPosition(buf, position);
 
-    DoublesSketches.handleMaxStreamLengthLimit(() -> {
-      for (int i = startRow; i < endRow; i++) {
-        final DoublesSketch sketch = (DoublesSketch) vector[i];
-        if (sketch != null) {
-          union.update(sketch);
-        }
+    for (int i = startRow; i < endRow; i++) {
+      final DoublesSketch sketch = (DoublesSketch) vector[i];
+      if (sketch != null) {
+        union.update(sketch);
       }
-    });
+    }
   }
 
   @Override
@@ -76,17 +74,15 @@ public class DoublesSketchMergeVectorAggregator implements 
VectorAggregator
   {
     final Object[] vector = selector.getObjectVector();
 
-    DoublesSketches.handleMaxStreamLengthLimit(() -> {
-      for (int i = 0; i < numRows; i++) {
-        final DoublesSketch sketch = (DoublesSketch) vector[rows != null ? 
rows[i] : i];
+    for (int i = 0; i < numRows; i++) {
+      final DoublesSketch sketch = (DoublesSketch) vector[rows != null ? 
rows[i] : i];
 
-        if (sketch != null) {
-          final int position = positions[i] + positionOffset;
-          final DoublesUnion union = helper.getSketchAtPosition(buf, position);
-          union.update(sketch);
-        }
+      if (sketch != null) {
+        final int position = positions[i] + positionOffset;
+        final DoublesUnion union = helper.getSketchAtPosition(buf, position);
+        union.update(sketch);
       }
-    });
+    }
   }
 
   @Nullable
diff --git 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketches.java
 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketches.java
deleted file mode 100644
index d7fc420..0000000
--- 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketches.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.druid.query.aggregation.datasketches.quantiles;
-
-import org.apache.druid.java.util.common.ISE;
-
-public final class DoublesSketches
-{
-  /**
-   * Runs the given task that updates a Doubles sketch backed by a direct byte 
buffer. This method intentionally
-   * accepts the update task as a {@link Runnable} instead of accpeting 
parameters of a sketch and other values
-   * needed for the update. This is to avoid any potential performance impact 
especially when the sketch is updated
-   * in a tight loop. The update task can throw NullPointerException because 
of the known issue filed in
-   * https://github.com/apache/druid/issues/11544. This method catches NPE and 
converts it to a more user-friendly
-   * exception. This method should be removed once the known bug above is 
fixed.
-   */
-  public static void handleMaxStreamLengthLimit(Runnable updateSketchTask)
-  {
-    try {
-      updateSketchTask.run();
-    }
-    catch (NullPointerException e) {
-      throw new ISE(
-          e,
-          "NullPointerException was thrown while updating Doubles sketch. "
-          + "This exception could be potentially because of the known bug 
filed in https://github.com/apache/druid/issues/11544. "
-          + "You could try a higher maxStreamLength than current to work 
around this bug if that is the case. "
-          + "See 
https://druid.apache.org/docs/latest/development/extensions-core/datasketches-quantiles.html
 for more details."
-      );
-    }
-  }
-
-  private DoublesSketches()
-  {
-  }
-}
diff --git 
a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchAggregatorTest.java
 
b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchAggregatorTest.java
index d20f369..2c05509 100644
--- 
a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchAggregatorTest.java
+++ 
b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchAggregatorTest.java
@@ -33,13 +33,10 @@ import 
org.apache.druid.query.groupby.GroupByQueryRunnerTest;
 import org.apache.druid.query.groupby.ResultRow;
 import org.apache.druid.query.groupby.strategy.GroupByStrategySelector;
 import org.apache.druid.testing.InitializedNullHandlingTest;
-import org.hamcrest.BaseMatcher;
-import org.hamcrest.Description;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
-import org.junit.rules.ExpectedException;
 import org.junit.rules.TemporaryFolder;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -60,9 +57,6 @@ public class DoublesSketchAggregatorTest extends 
InitializedNullHandlingTest
   @Rule
   public final TemporaryFolder tempFolder = new TemporaryFolder();
 
-  @Rule
-  public final ExpectedException expectedException = ExpectedException.none();
-
   public DoublesSketchAggregatorTest(final GroupByQueryConfig config, final 
String vectorize)
   {
     this.config = config;
@@ -544,12 +538,9 @@ public class DoublesSketchAggregatorTest extends 
InitializedNullHandlingTest
   }
 
   @Test
-  public void testFailureWhenMaxStreamLengthHit() throws Exception
+  public void testSuccessWhenMaxStreamLengthHit() throws Exception
   {
     if 
(GroupByStrategySelector.STRATEGY_V1.equals(config.getDefaultStrategy())) {
-      expectedException.expect(new 
RecursiveExceptionMatcher(IllegalStateException.class));
-      expectedException.expectMessage("NullPointerException was thrown while 
updating Doubles sketch");
-
       helper.createIndexAndRunQueryOnSegment(
           new 
File(this.getClass().getClassLoader().getResource("quantiles/doubles_build_data.tsv").getFile()),
           String.join(
@@ -633,39 +624,8 @@ public class DoublesSketchAggregatorTest extends 
InitializedNullHandlingTest
               "}"
           )
       );
-
-      expectedException.expect(new 
RecursiveExceptionMatcher(IllegalStateException.class));
-      expectedException.expectMessage("NullPointerException was thrown while 
updating Doubles sketch");
       seq.toList();
     }
   }
 
-  private static class RecursiveExceptionMatcher extends BaseMatcher<Object>
-  {
-    private final Class<? extends Throwable> expected;
-
-    private RecursiveExceptionMatcher(Class<? extends Throwable> expected)
-    {
-      this.expected = expected;
-    }
-
-    @Override
-    public boolean matches(Object item)
-    {
-      if (expected.isInstance(item)) {
-        return true;
-      } else if (item instanceof Throwable) {
-        if (((Throwable) item).getCause() != null) {
-          return matches(((Throwable) item).getCause());
-        }
-      }
-      return false;
-    }
-
-    @Override
-    public void describeTo(Description description)
-    {
-      description.appendText("a recursive instance of 
").appendText(expected.getName());
-    }
-  }
 }
diff --git 
a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/quantiles/sql/DoublesSketchSqlAggregatorTest.java
 
b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/quantiles/sql/DoublesSketchSqlAggregatorTest.java
index 7522987..4959e4c 100644
--- 
a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/quantiles/sql/DoublesSketchSqlAggregatorTest.java
+++ 
b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/quantiles/sql/DoublesSketchSqlAggregatorTest.java
@@ -828,14 +828,14 @@ public class DoublesSketchSqlAggregatorTest extends 
BaseCalciteQueryTest
   }
 
   @Test
-  public void testFailWithSmallMaxStreamLength() throws Exception
+  public void testSuccessWithSmallMaxStreamLength() throws Exception
   {
     final Map<String, Object> context = new HashMap<>(QUERY_CONTEXT_DEFAULT);
     context.put(
         
DoublesSketchApproxQuantileSqlAggregator.CTX_APPROX_QUANTILE_DS_MAX_STREAM_LENGTH,
         1
     );
-    testQueryThrows(
+    testQuery(
         "SELECT\n"
         + "APPROX_QUANTILE_DS(m1, 0.01),\n"
         + "APPROX_QUANTILE_DS(cnt, 0.5)\n"
@@ -856,11 +856,13 @@ public class DoublesSketchSqlAggregatorTest extends 
BaseCalciteQueryTest
                   )
                   .context(context)
                   .build()
-        ),
-        expectedException -> {
-          expectedException.expect(IllegalStateException.class);
-          expectedException.expectMessage("NullPointerException was thrown 
while updating Doubles sketch");
-        }
+            ),
+            ImmutableList.of(
+                new Object[]{
+                    1.0,
+                    1.0
+                }
+            )
     );
   }
 
diff --git 
a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/tuple/ArrayOfDoublesSketchAggregationTest.java
 
b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/tuple/ArrayOfDoublesSketchAggregationTest.java
index 7c37097..badbf0a 100644
--- 
a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/tuple/ArrayOfDoublesSketchAggregationTest.java
+++ 
b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/tuple/ArrayOfDoublesSketchAggregationTest.java
@@ -242,6 +242,7 @@ public class ArrayOfDoublesSketchAggregationTest extends 
InitializedNullHandling
             "      \"name\": \"intersection\",",
             "      \"operation\": \"INTERSECT\",",
             "      \"nominalEntries\": 1024,",
+            "      \"numberOfValues\": 2,",
             "      \"fields\": [{\"type\": \"fieldAccess\", \"fieldName\": 
\"sketch\"}, {\"type\": \"fieldAccess\", \"fieldName\": \"sketch\"}]",
             "    }},",
             "    {\"type\": \"arrayOfDoublesSketchToEstimate\", \"name\": 
\"anotb\", \"field\": {",
@@ -249,6 +250,7 @@ public class ArrayOfDoublesSketchAggregationTest extends 
InitializedNullHandling
             "      \"name\": \"anotb\",",
             "      \"operation\": \"NOT\",",
             "      \"nominalEntries\": 1024,",
+            "      \"numberOfValues\": 2,",
             "      \"fields\": [{\"type\": \"fieldAccess\", \"fieldName\": 
\"sketch\"}, {\"type\": \"fieldAccess\", \"fieldName\": \"sketch\"}]",
             "    }},",
             "    {",
diff --git a/licenses.yaml b/licenses.yaml
index 93333e0..abf4200 100644
--- a/licenses.yaml
+++ b/licenses.yaml
@@ -3731,7 +3731,7 @@ name: DataSketches
 license_category: binary
 module: java-core
 license_name: Apache License version 2.0
-version: 3.0.0
+version: 3.1.0
 libraries:
   - org.apache.datasketches: datasketches-java
 
diff --git a/pom.xml b/pom.xml
index c4829cc..425de34 100644
--- a/pom.xml
+++ b/pom.xml
@@ -84,7 +84,7 @@
         <!-- sql/src/main/codegen/config.fmpp is based on a file from 
calcite-core, and needs to be
           updated when upgrading Calcite. Refer to the top-level comments in 
that file for details. -->
         <calcite.version>1.21.0</calcite.version>
-        <datasketches.version>3.0.0</datasketches.version>
+        <datasketches.version>3.1.0</datasketches.version>
         <datasketches.memory.version>2.0.0</datasketches.memory.version>
         <derby.version>10.14.2.0</derby.version>
         <dropwizard.metrics.version>4.0.0</dropwizard.metrics.version>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to