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

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


The following commit(s) were added to refs/heads/master by this push:
     new cdf9d70  [CALCITE-4960] Enable unit tests in Elasticsearch Adapter
cdf9d70 is described below

commit cdf9d700183d926780f4e5b57d6211a85a548506
Author: ILuffZhe <[email protected]>
AuthorDate: Fri Dec 24 23:17:14 2021 +0800

    [CALCITE-4960] Enable unit tests in Elasticsearch Adapter
    
    1. Increase SocketTimeout and ConnectionTimeout for RestClient to avoid
    CI failures.
    2. Disable/Skip test cases with appropriate JIRA references.
    
    Close apache/calcite#2659
---
 core/src/main/java/org/apache/calcite/util/Bug.java            | 10 ++++++++++
 .../apache/calcite/adapter/elasticsearch/AggregationTest.java  |  5 +++--
 .../apache/calcite/adapter/elasticsearch/BooleanLogicTest.java |  8 +++++---
 .../adapter/elasticsearch/ElasticSearchAdapterTest.java        |  9 +++++----
 .../adapter/elasticsearch/EmbeddedElasticsearchPolicy.java     |  6 +++++-
 .../org/apache/calcite/adapter/elasticsearch/MatchTest.java    |  3 ---
 .../apache/calcite/adapter/elasticsearch/ProjectionTest.java   |  2 --
 .../apache/calcite/adapter/elasticsearch/ScrollingTest.java    |  1 -
 8 files changed, 28 insertions(+), 16 deletions(-)

diff --git a/core/src/main/java/org/apache/calcite/util/Bug.java 
b/core/src/main/java/org/apache/calcite/util/Bug.java
index b9d44d8..b759341 100644
--- a/core/src/main/java/org/apache/calcite/util/Bug.java
+++ b/core/src/main/java/org/apache/calcite/util/Bug.java
@@ -200,6 +200,16 @@ public abstract class Bug {
    * Druid plans with small intervals should be chosen over full interval scan 
plus filter</a> is
    * fixed. */
   public static final boolean CALCITE_4213_FIXED = false;
+  /** Whether
+   * <a 
href="https://issues.apache.org/jira/browse/CALCITE-4645";>[CALCITE-4645]
+   * In Elasticsearch adapter, a range predicate should be translated to a 
range query</a> is
+   * fixed. */
+  public static final boolean CALCITE_4645_FIXED = false;
+  /** Whether
+   * <a 
href="https://issues.apache.org/jira/browse/CALCITE-4965";>[CALCITE-4965]
+   * IS NOT NULL failed in Elasticsearch Adapter</a> is
+   * fixed. */
+  public static final boolean CALCITE_4965_FIXED = false;
 
   /**
    * Use this to flag temporary code.
diff --git 
a/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/AggregationTest.java
 
b/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/AggregationTest.java
index 385ad26..fac8b7c 100644
--- 
a/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/AggregationTest.java
+++ 
b/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/AggregationTest.java
@@ -22,14 +22,15 @@ import org.apache.calcite.schema.impl.ViewTable;
 import org.apache.calcite.schema.impl.ViewTableMacro;
 import org.apache.calcite.test.CalciteAssert;
 import org.apache.calcite.test.ElasticsearchChecker;
+import org.apache.calcite.util.Bug;
 
 import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.google.common.collect.ImmutableMap;
 
+import org.junit.jupiter.api.Assumptions;
 import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.parallel.ResourceAccessMode;
 import org.junit.jupiter.api.parallel.ResourceLock;
@@ -120,8 +121,8 @@ class AggregationTest {
    * So disable this test case until the translation from Search in range
    * to rang Query in ES is implemented.
    */
-  @Disabled
   @Test void searchInRange() {
+    Assumptions.assumeTrue(Bug.CALCITE_4645_FIXED, "CALCITE-4645");
     CalciteAssert.that()
         .with(newConnectionFactory())
         .query("select count(*) from view where val1 >= 10 and val1 <=20")
diff --git 
a/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/BooleanLogicTest.java
 
b/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/BooleanLogicTest.java
index 5cc9081..26a009c 100644
--- 
a/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/BooleanLogicTest.java
+++ 
b/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/BooleanLogicTest.java
@@ -21,12 +21,12 @@ import org.apache.calcite.schema.SchemaPlus;
 import org.apache.calcite.schema.impl.ViewTable;
 import org.apache.calcite.schema.impl.ViewTableMacro;
 import org.apache.calcite.test.CalciteAssert;
+import org.apache.calcite.util.Bug;
 
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.google.common.collect.ImmutableMap;
 
 import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.parallel.ResourceAccessMode;
 import org.junit.jupiter.api.parallel.ResourceLock;
@@ -42,7 +42,6 @@ import java.util.Map;
 /**
  * Test of different boolean expressions (some more complex than others).
  */
-@Disabled("RestClient often timeout in PR CI")
 @ResourceLock(value = "elasticsearch-scrolls", mode = ResourceAccessMode.READ)
 class BooleanLogicTest {
 
@@ -120,7 +119,10 @@ class BooleanLogicTest {
     assertEmpty("select * from view where num > 42 and num < 42 and num = 42");
     assertEmpty("select * from view where num > 42 or num < 42 and num = 42");
     assertSingle("select * from view where num > 42 and num < 42 or num = 42");
-    assertSingle("select * from view where num > 42 or num < 42 or num = 42");
+    if (Bug.CALCITE_4965_FIXED) {
+      assertSingle("select * from view where num > 42 or num < 42 or num = 
42");
+      assertEmpty("select * from view where num is null");
+    }
     assertSingle("select * from view where num >= 42 and num <= 42 and num = 
42");
     assertEmpty("select * from view where num >= 42 and num <= 42 and num <> 
42");
     assertEmpty("select * from view where num < 42");
diff --git 
a/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/ElasticSearchAdapterTest.java
 
b/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/ElasticSearchAdapterTest.java
index f42faf3..7a7a4a3 100644
--- 
a/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/ElasticSearchAdapterTest.java
+++ 
b/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/ElasticSearchAdapterTest.java
@@ -23,6 +23,7 @@ import org.apache.calcite.schema.impl.ViewTable;
 import org.apache.calcite.schema.impl.ViewTableMacro;
 import org.apache.calcite.test.CalciteAssert;
 import org.apache.calcite.test.ElasticsearchChecker;
+import org.apache.calcite.util.Bug;
 import org.apache.calcite.util.TestUtil;
 
 import com.fasterxml.jackson.databind.node.ObjectNode;
@@ -30,8 +31,8 @@ import com.google.common.collect.ImmutableMap;
 import com.google.common.io.LineProcessor;
 import com.google.common.io.Resources;
 
+import org.junit.jupiter.api.Assumptions;
 import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.parallel.ResourceAccessMode;
 import org.junit.jupiter.api.parallel.ResourceLock;
@@ -55,7 +56,6 @@ import java.util.function.Consumer;
  * Set of tests for ES adapter. Uses real instance via {@link 
EmbeddedElasticsearchPolicy}. Document
  * source is local {@code zips-mini.json} file (located in test classpath).
  */
-@Disabled("RestClient often timeout in PR CI")
 @ResourceLock(value = "elasticsearch-scrolls", mode = ResourceAccessMode.READ)
 class ElasticSearchAdapterTest {
 
@@ -463,6 +463,7 @@ class ElasticSearchAdapterTest {
   }
 
   @Test void testFilterSortDesc() {
+    Assumptions.assumeTrue(Bug.CALCITE_4645_FIXED, "CALCITE-4645");
     final String sql = "select * from zips\n"
         + "where pop BETWEEN 95000 AND 100000\n"
         + "order by state desc, pop";
@@ -476,8 +477,8 @@ class ElasticSearchAdapterTest {
 
   @Test void testInPlan() {
     final String[] searches = {
-        "query: {'constant_score':{filter:{bool:{should:"
-            + "[{term:{pop:96074}},{term:{pop:99568}}]}}}}",
+        "query: {'constant_score':{filter:{terms:{pop:"
+            + "[96074, 99568]}}}}",
         "script_fields: {longitude:{script:'params._source.loc[0]'}, "
             +  "latitude:{script:'params._source.loc[1]'}, "
             +  "city:{script: 'params._source.city'}, "
diff --git 
a/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/EmbeddedElasticsearchPolicy.java
 
b/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/EmbeddedElasticsearchPolicy.java
index a3fa6f8..e89af6c 100644
--- 
a/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/EmbeddedElasticsearchPolicy.java
+++ 
b/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/EmbeddedElasticsearchPolicy.java
@@ -197,7 +197,11 @@ class EmbeddedElasticsearchPolicy {
       return client;
     }
 
-    final RestClient client = RestClient.builder(httpHost()).build();
+    final RestClient client = RestClient.builder(httpHost())
+        .setRequestConfigCallback(requestConfigBuilder -> requestConfigBuilder
+            .setConnectTimeout(60 * 1000)  // default 1000
+            .setSocketTimeout(3 * 60 * 1000))  // default 30000
+        .build();
     closer.add(client);
     this.client = client;
     return client;
diff --git 
a/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/MatchTest.java
 
b/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/MatchTest.java
index fbf126a..a0c7b2a 100644
--- 
a/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/MatchTest.java
+++ 
b/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/MatchTest.java
@@ -45,7 +45,6 @@ import com.google.common.io.LineProcessor;
 import com.google.common.io.Resources;
 
 import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.parallel.ResourceAccessMode;
 import org.junit.jupiter.api.parallel.ResourceLock;
@@ -71,7 +70,6 @@ import static org.hamcrest.MatcherAssert.assertThat;
 /**
  * Testing Elasticsearch match query.
  */
-@Disabled("RestClient often timeout in PR CI")
 @ResourceLock(value = "elasticsearch-scrolls", mode = ResourceAccessMode.READ)
 class MatchTest {
 
@@ -80,7 +78,6 @@ class MatchTest {
 
   /** Default index/type name. */
   private static final String ZIPS = "match-zips";
-  private static final int ZIPS_SIZE = 149;
 
   /**
    * Used to create {@code zips} index and insert zip data in bulk.
diff --git 
a/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/ProjectionTest.java
 
b/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/ProjectionTest.java
index 7cc22b2..b5f66a1 100644
--- 
a/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/ProjectionTest.java
+++ 
b/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/ProjectionTest.java
@@ -26,7 +26,6 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.google.common.collect.ImmutableMap;
 
 import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.parallel.ResourceAccessMode;
 import org.junit.jupiter.api.parallel.ResourceLock;
@@ -42,7 +41,6 @@ import java.util.Map;
 /**
  * Checks renaming of fields (also upper, lower cases) during projections.
  */
-@Disabled("RestClient often timeout in PR CI")
 @ResourceLock(value = "elasticsearch-scrolls", mode = ResourceAccessMode.READ)
 class ProjectionTest {
 
diff --git 
a/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/ScrollingTest.java
 
b/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/ScrollingTest.java
index 6afcb60..766ab8d 100644
--- 
a/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/ScrollingTest.java
+++ 
b/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/ScrollingTest.java
@@ -46,7 +46,6 @@ import java.util.stream.IntStream;
  * Tests usage of scrolling API like correct results and resource cleanup
  * (delete scroll after scan).
  */
-@Disabled("RestClient often timeout in PR CI")
 @ResourceLock("elasticsearch-scrolls")
 class ScrollingTest {
 

Reply via email to