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 {