From dd72973bbb997857add2aa0fa3d60ad14d826faf Mon Sep 17 00:00:00 2001 From: Mitchell Gale Date: Wed, 16 Aug 2023 17:13:54 -0700 Subject: [PATCH] Integration test spotless apply directory Signed-off-by: Mitchell Gale --- build.gradle | 3 +- .../sql/bwc/SQLBackwardsCompatibilityIT.java | 348 +++++++++--------- .../sql/correctness/TestConfig.java | 2 + .../tests/OpenSearchConnectionTest.java | 3 +- .../sql/correctness/testset/TestDataSet.java | 4 +- .../org/opensearch/sql/jdbc/CursorIT.java | 3 +- .../opensearch/sql/legacy/AggregationIT.java | 3 +- .../opensearch/sql/legacy/DateFormatIT.java | 6 +- .../sql/legacy/MetaDataQueriesIT.java | 2 + .../opensearch/sql/legacy/MethodQueryIT.java | 15 + .../sql/legacy/NestedFieldQueryIT.java | 2 + .../org/opensearch/sql/legacy/OrderIT.java | 3 +- .../sql/legacy/PrettyFormatResponseIT.java | 2 + .../sql/legacy/QueryFunctionsIT.java | 5 + .../org/opensearch/sql/legacy/QueryIT.java | 26 +- .../sql/legacy/RestIntegTestCase.java | 145 ++++---- .../sql/legacy/SQLIntegTestCase.java | 15 +- .../sql/legacy/TermQueryExplainIT.java | 6 +- .../org/opensearch/sql/legacy/TestUtils.java | 4 +- .../sql/ppl/DateTimeImplementationIT.java | 3 - .../sql/ppl/MatchPhrasePrefixIT.java | 6 +- .../sql/ppl/ObjectFieldOperateIT.java | 3 +- .../sql/sql/ConvertTZFunctionIT.java | 144 ++++---- .../sql/sql/DateTimeImplementationIT.java | 17 +- .../org/opensearch/sql/sql/ScoreQueryIT.java | 3 + .../opensearch/sql/sql/StringLiteralIT.java | 30 +- .../ExecuteOnCallerThreadQueryManager.java | 2 +- .../org/opensearch/sql/util/TestUtils.java | 4 +- 28 files changed, 404 insertions(+), 405 deletions(-) diff --git a/build.gradle b/build.gradle index 290a1e1786..ffd0153d04 100644 --- a/build.gradle +++ b/build.gradle @@ -89,7 +89,8 @@ spotless { 'prometheus/**/*.java', 'sql/**/*.java', 'common/**/*.java', - 'ppl/**/*.java' + 'ppl/**/*.java', + 'integ-test/**/*java' exclude '**/build/**', '**/build-*/**' } importOrder() diff --git a/integ-test/src/test/java/org/opensearch/sql/bwc/SQLBackwardsCompatibilityIT.java b/integ-test/src/test/java/org/opensearch/sql/bwc/SQLBackwardsCompatibilityIT.java index f5c903d434..dff9aa262e 100644 --- a/integ-test/src/test/java/org/opensearch/sql/bwc/SQLBackwardsCompatibilityIT.java +++ b/integ-test/src/test/java/org/opensearch/sql/bwc/SQLBackwardsCompatibilityIT.java @@ -35,177 +35,189 @@ public class SQLBackwardsCompatibilityIT extends SQLIntegTestCase { - private static final ClusterType CLUSTER_TYPE = ClusterType.parse(System.getProperty("tests.rest.bwcsuite")); - private static final String CLUSTER_NAME = System.getProperty("tests.clustername"); - - @Override - protected final boolean preserveIndicesUponCompletion() { - return true; + private static final ClusterType CLUSTER_TYPE = + ClusterType.parse(System.getProperty("tests.rest.bwcsuite")); + private static final String CLUSTER_NAME = System.getProperty("tests.clustername"); + + @Override + protected final boolean preserveIndicesUponCompletion() { + return true; + } + + @Override + protected final boolean preserveReposUponCompletion() { + return true; + } + + @Override + protected boolean preserveTemplatesUponCompletion() { + return true; + } + + @Override + protected final Settings restClientSettings() { + return Settings.builder() + .put(super.restClientSettings()) + // increase the timeout here to 90 seconds to handle long waits for a green + // cluster health. the waits for green need to be longer than a minute to + // account for delayed shards + .put(OpenSearchRestTestCase.CLIENT_SOCKET_TIMEOUT, "90s") + .build(); + } + + private enum ClusterType { + OLD, + MIXED, + UPGRADED; + + public static ClusterType parse(String value) { + switch (value) { + case "old_cluster": + return OLD; + case "mixed_cluster": + return MIXED; + case "upgraded_cluster": + return UPGRADED; + default: + throw new AssertionError("unknown cluster type: " + value); + } } - - @Override - protected final boolean preserveReposUponCompletion() { - return true; + } + + @SuppressWarnings("unchecked") + public void testBackwardsCompatibility() throws Exception { + String uri = getUri(); + Map> responseMap = + (Map>) getAsMap(uri).get("nodes"); + for (Map response : responseMap.values()) { + List> plugins = (List>) response.get("plugins"); + Set pluginNames = + plugins.stream().map(map -> map.get("name")).collect(Collectors.toSet()); + switch (CLUSTER_TYPE) { + case OLD: + Assert.assertTrue(pluginNames.contains("opensearch-sql")); + updateLegacySQLSettings(); + loadIndex(Index.ACCOUNT); + verifySQLQueries(LEGACY_QUERY_API_ENDPOINT); + break; + case MIXED: + Assert.assertTrue(pluginNames.contains("opensearch-sql")); + verifySQLSettings(); + verifySQLQueries(LEGACY_QUERY_API_ENDPOINT); + break; + case UPGRADED: + Assert.assertTrue(pluginNames.contains("opensearch-sql")); + verifySQLSettings(); + verifySQLQueries(QUERY_API_ENDPOINT); + break; + } + break; } - - @Override - protected boolean preserveTemplatesUponCompletion() { - return true; - } - - @Override - protected final Settings restClientSettings() { - return Settings - .builder() - .put(super.restClientSettings()) - // increase the timeout here to 90 seconds to handle long waits for a green - // cluster health. the waits for green need to be longer than a minute to - // account for delayed shards - .put(OpenSearchRestTestCase.CLIENT_SOCKET_TIMEOUT, "90s") - .build(); - } - - private enum ClusterType { - OLD, - MIXED, - UPGRADED; - - public static ClusterType parse(String value) { - switch (value) { - case "old_cluster": - return OLD; - case "mixed_cluster": - return MIXED; - case "upgraded_cluster": - return UPGRADED; - default: - throw new AssertionError("unknown cluster type: " + value); - } + } + + private String getUri() { + switch (CLUSTER_TYPE) { + case OLD: + return "_nodes/" + CLUSTER_NAME + "-0/plugins"; + case MIXED: + String round = System.getProperty("tests.rest.bwcsuite_round"); + if (round.equals("second")) { + return "_nodes/" + CLUSTER_NAME + "-1/plugins"; + } else if (round.equals("third")) { + return "_nodes/" + CLUSTER_NAME + "-2/plugins"; + } else { + return "_nodes/" + CLUSTER_NAME + "-0/plugins"; } + case UPGRADED: + return "_nodes/plugins"; + default: + throw new AssertionError("unknown cluster type: " + CLUSTER_TYPE); } - - @SuppressWarnings("unchecked") - public void testBackwardsCompatibility() throws Exception { - String uri = getUri(); - Map> responseMap = (Map>) getAsMap(uri).get("nodes"); - for (Map response : responseMap.values()) { - List> plugins = (List>) response.get("plugins"); - Set pluginNames = plugins.stream().map(map -> map.get("name")).collect(Collectors.toSet()); - switch (CLUSTER_TYPE) { - case OLD: - Assert.assertTrue(pluginNames.contains("opensearch-sql")); - updateLegacySQLSettings(); - loadIndex(Index.ACCOUNT); - verifySQLQueries(LEGACY_QUERY_API_ENDPOINT); - break; - case MIXED: - Assert.assertTrue(pluginNames.contains("opensearch-sql")); - verifySQLSettings(); - verifySQLQueries(LEGACY_QUERY_API_ENDPOINT); - break; - case UPGRADED: - Assert.assertTrue(pluginNames.contains("opensearch-sql")); - verifySQLSettings(); - verifySQLQueries(QUERY_API_ENDPOINT); - break; - } - break; - } + } + + private void updateLegacySQLSettings() throws IOException { + Request request = new Request("PUT", LEGACY_SQL_SETTINGS_API_ENDPOINT); + request.setJsonEntity( + String.format( + Locale.ROOT, + "{\n" + " \"persistent\" : {\n" + " \"%s\" : \"%s\"\n" + " }\n" + "}", + "opendistro.sql.cursor.keep_alive", + "7m")); + + RequestOptions.Builder restOptionsBuilder = RequestOptions.DEFAULT.toBuilder(); + restOptionsBuilder.addHeader("Content-Type", "application/json"); + request.setOptions(restOptionsBuilder); + + Response response = client().performRequest(request); + JSONObject jsonObject = new JSONObject(getResponseBody(response)); + Assert.assertTrue((boolean) jsonObject.get("acknowledged")); + } + + private void verifySQLSettings() throws IOException { + Request request = new Request("GET", "_cluster/settings?flat_settings"); + + RequestOptions.Builder restOptionsBuilder = RequestOptions.DEFAULT.toBuilder(); + restOptionsBuilder.addHeader("Content-Type", "application/json"); + request.setOptions(restOptionsBuilder); + + Response response = client().performRequest(request); + JSONObject jsonObject = new JSONObject(getResponseBody(response)); + Assert.assertEquals( + "{\"transient\":{},\"persistent\":{\"opendistro.sql.cursor.keep_alive\":\"7m\"}}", + jsonObject.toString()); + } + + private void verifySQLQueries(String endpoint) throws IOException { + JSONObject filterResponse = + executeSQLQuery( + endpoint, + "SELECT COUNT(*) FILTER(WHERE age > 35) FROM " + TestsConstants.TEST_INDEX_ACCOUNT); + verifySchema(filterResponse, schema("COUNT(*) FILTER(WHERE age > 35)", null, "integer")); + verifyDataRows(filterResponse, rows(238)); + + JSONObject aggResponse = + executeSQLQuery( + endpoint, "SELECT COUNT(DISTINCT age) FROM " + TestsConstants.TEST_INDEX_ACCOUNT); + verifySchema(aggResponse, schema("COUNT(DISTINCT age)", null, "integer")); + verifyDataRows(aggResponse, rows(21)); + + JSONObject groupByResponse = + executeSQLQuery( + endpoint, + "select a.gender from " + + TestsConstants.TEST_INDEX_ACCOUNT + + " a group by a.gender having count(*) > 0"); + verifySchema(groupByResponse, schema("gender", null, "text")); + Assert.assertEquals("[[\"F\"],[\"M\"]]", groupByResponse.getJSONArray("datarows").toString()); + } + + private JSONObject executeSQLQuery(String endpoint, String query) throws IOException { + Request request = new Request("POST", endpoint); + request.setJsonEntity(String.format(Locale.ROOT, "{" + " \"query\" : \"%s\"" + "}", query)); + + RequestOptions.Builder restOptionsBuilder = RequestOptions.DEFAULT.toBuilder(); + restOptionsBuilder.addHeader("Content-Type", "application/json"); + request.setOptions(restOptionsBuilder); + + Response response = client().performRequest(request); + return new JSONObject(getResponseBody(response)); + } + + @Override + public boolean shouldResetQuerySizeLimit() { + return false; + } + + @Override + protected synchronized void loadIndex(Index index) throws IOException { + String indexName = index.getName(); + String mapping = index.getMapping(); + // current directory becomes 'integ-test/build/testrun/sqlBwcCluster#' during bwc + String dataSet = "../../../" + index.getDataSet(); + + if (!isIndexExist(client(), indexName)) { + createIndexByRestClient(client(), indexName, mapping); + loadDataByRestClient(client(), indexName, dataSet); } - - private String getUri() { - switch (CLUSTER_TYPE) { - case OLD: - return "_nodes/" + CLUSTER_NAME + "-0/plugins"; - case MIXED: - String round = System.getProperty("tests.rest.bwcsuite_round"); - if (round.equals("second")) { - return "_nodes/" + CLUSTER_NAME + "-1/plugins"; - } else if (round.equals("third")) { - return "_nodes/" + CLUSTER_NAME + "-2/plugins"; - } else { - return "_nodes/" + CLUSTER_NAME + "-0/plugins"; - } - case UPGRADED: - return "_nodes/plugins"; - default: - throw new AssertionError("unknown cluster type: " + CLUSTER_TYPE); - } - } - - private void updateLegacySQLSettings() throws IOException { - Request request = new Request("PUT", LEGACY_SQL_SETTINGS_API_ENDPOINT); - request.setJsonEntity(String.format(Locale.ROOT, "{\n" + - " \"persistent\" : {\n" + - " \"%s\" : \"%s\"\n" + - " }\n" + - "}", "opendistro.sql.cursor.keep_alive", "7m")); - - RequestOptions.Builder restOptionsBuilder = RequestOptions.DEFAULT.toBuilder(); - restOptionsBuilder.addHeader("Content-Type", "application/json"); - request.setOptions(restOptionsBuilder); - - Response response = client().performRequest(request); - JSONObject jsonObject = new JSONObject(getResponseBody(response)); - Assert.assertTrue((boolean) jsonObject.get("acknowledged")); - } - - private void verifySQLSettings() throws IOException { - Request request = new Request("GET", "_cluster/settings?flat_settings"); - - RequestOptions.Builder restOptionsBuilder = RequestOptions.DEFAULT.toBuilder(); - restOptionsBuilder.addHeader("Content-Type", "application/json"); - request.setOptions(restOptionsBuilder); - - Response response = client().performRequest(request); - JSONObject jsonObject = new JSONObject(getResponseBody(response)); - Assert.assertEquals("{\"transient\":{},\"persistent\":{\"opendistro.sql.cursor.keep_alive\":\"7m\"}}", jsonObject.toString()); - } - - private void verifySQLQueries(String endpoint) throws IOException { - JSONObject filterResponse = executeSQLQuery(endpoint, "SELECT COUNT(*) FILTER(WHERE age > 35) FROM " + TestsConstants.TEST_INDEX_ACCOUNT); - verifySchema(filterResponse, schema("COUNT(*) FILTER(WHERE age > 35)", null, "integer")); - verifyDataRows(filterResponse, rows(238)); - - JSONObject aggResponse = executeSQLQuery(endpoint, "SELECT COUNT(DISTINCT age) FROM " + TestsConstants.TEST_INDEX_ACCOUNT); - verifySchema(aggResponse, schema("COUNT(DISTINCT age)", null, "integer")); - verifyDataRows(aggResponse, rows(21)); - - JSONObject groupByResponse = executeSQLQuery(endpoint, "select a.gender from " + TestsConstants.TEST_INDEX_ACCOUNT + " a group by a.gender having count(*) > 0"); - verifySchema(groupByResponse, schema("gender", null, "text")); - Assert.assertEquals("[[\"F\"],[\"M\"]]", groupByResponse.getJSONArray("datarows").toString()); - } - - private JSONObject executeSQLQuery(String endpoint, String query) throws IOException { - Request request = new Request("POST", endpoint); - request.setJsonEntity(String.format(Locale.ROOT, "{" + - " \"query\" : \"%s\"" + - "}", query)); - - RequestOptions.Builder restOptionsBuilder = RequestOptions.DEFAULT.toBuilder(); - restOptionsBuilder.addHeader("Content-Type", "application/json"); - request.setOptions(restOptionsBuilder); - - Response response = client().performRequest(request); - return new JSONObject(getResponseBody(response)); - } - - @Override - public boolean shouldResetQuerySizeLimit() { - return false; - } - - @Override - protected synchronized void loadIndex(Index index) throws IOException { - String indexName = index.getName(); - String mapping = index.getMapping(); - // current directory becomes 'integ-test/build/testrun/sqlBwcCluster#' during bwc - String dataSet = "../../../" + index.getDataSet(); - - if (!isIndexExist(client(), indexName)) { - createIndexByRestClient(client(), indexName, mapping); - loadDataByRestClient(client(), indexName, dataSet); - } - } - + } } diff --git a/integ-test/src/test/java/org/opensearch/sql/correctness/TestConfig.java b/integ-test/src/test/java/org/opensearch/sql/correctness/TestConfig.java index a498f15d63..16a172e384 100644 --- a/integ-test/src/test/java/org/opensearch/sql/correctness/TestConfig.java +++ b/integ-test/src/test/java/org/opensearch/sql/correctness/TestConfig.java @@ -18,6 +18,8 @@ import org.opensearch.sql.legacy.utils.StringUtils; /** + * + * *
  * Test configuration parse the following information from command line arguments:
  * 1) Test schema and data
diff --git a/integ-test/src/test/java/org/opensearch/sql/correctness/tests/OpenSearchConnectionTest.java b/integ-test/src/test/java/org/opensearch/sql/correctness/tests/OpenSearchConnectionTest.java
index e5130d8fc1..49d8f01651 100644
--- a/integ-test/src/test/java/org/opensearch/sql/correctness/tests/OpenSearchConnectionTest.java
+++ b/integ-test/src/test/java/org/opensearch/sql/correctness/tests/OpenSearchConnectionTest.java
@@ -81,8 +81,7 @@ public void testInsertNullData() throws IOException {
     assertEquals("POST", actual.getMethod());
     assertEquals("/test/_bulk?refresh=true", actual.getEndpoint());
     assertEquals(
-        "{\"index\":{}}\n{\"age\":30}\n{\"index\":{}}\n{\"name\":\"Hank\"}\n",
-        getBody(actual));
+        "{\"index\":{}}\n{\"age\":30}\n{\"index\":{}}\n{\"name\":\"Hank\"}\n", getBody(actual));
   }
 
   @Test
diff --git a/integ-test/src/test/java/org/opensearch/sql/correctness/testset/TestDataSet.java b/integ-test/src/test/java/org/opensearch/sql/correctness/testset/TestDataSet.java
index 25a3f907cf..3872834b26 100644
--- a/integ-test/src/test/java/org/opensearch/sql/correctness/testset/TestDataSet.java
+++ b/integ-test/src/test/java/org/opensearch/sql/correctness/testset/TestDataSet.java
@@ -130,7 +130,9 @@ private Object convertStringToObject(String type, String str) {
   @Override
   public String toString() {
     int total = dataRows.size();
-    return String.format("Test data set:\n Table name: %s\n Schema: %s\n Data rows (first 5 in %d):", tableName, schema, total)
+    return String.format(
+            "Test data set:\n Table name: %s\n Schema: %s\n Data rows (first 5 in %d):",
+            tableName, schema, total)
         + dataRows.stream().limit(5).map(Arrays::toString).collect(joining("\n ", "\n ", "\n"));
   }
 }
diff --git a/integ-test/src/test/java/org/opensearch/sql/jdbc/CursorIT.java b/integ-test/src/test/java/org/opensearch/sql/jdbc/CursorIT.java
index 81b2aad785..325c81107f 100644
--- a/integ-test/src/test/java/org/opensearch/sql/jdbc/CursorIT.java
+++ b/integ-test/src/test/java/org/opensearch/sql/jdbc/CursorIT.java
@@ -111,8 +111,7 @@ public void select_all_no_cursor() {
       var query = String.format("SELECT * FROM %s", table);
       ResultSet rs = stmt.executeQuery(query);
       int rows = 0;
-      while(rs.next())
-        rows++;
+      while (rs.next()) rows++;
 
       var restResponse = executeRestQuery(query, null);
       assertEquals(rows, restResponse.getInt("total"));
diff --git a/integ-test/src/test/java/org/opensearch/sql/legacy/AggregationIT.java b/integ-test/src/test/java/org/opensearch/sql/legacy/AggregationIT.java
index e053d3d7cf..490e9eb510 100644
--- a/integ-test/src/test/java/org/opensearch/sql/legacy/AggregationIT.java
+++ b/integ-test/src/test/java/org/opensearch/sql/legacy/AggregationIT.java
@@ -251,8 +251,7 @@ public void groupByHavingTest() throws Exception {
     JSONObject result =
         executeQuery(
             String.format(
-                "SELECT gender FROM %s GROUP BY gender HAVING COUNT(*) > 0",
-                TEST_INDEX_ACCOUNT));
+                "SELECT gender FROM %s GROUP BY gender HAVING COUNT(*) > 0", TEST_INDEX_ACCOUNT));
     assertResultForGroupByHavingTest(result);
   }
 
diff --git a/integ-test/src/test/java/org/opensearch/sql/legacy/DateFormatIT.java b/integ-test/src/test/java/org/opensearch/sql/legacy/DateFormatIT.java
index 63d37dbad1..388d900924 100644
--- a/integ-test/src/test/java/org/opensearch/sql/legacy/DateFormatIT.java
+++ b/integ-test/src/test/java/org/opensearch/sql/legacy/DateFormatIT.java
@@ -40,9 +40,9 @@ protected void init() throws Exception {
   }
 
   /**
-   * All the following tests use UTC as their date_format timezone as this is the same timezone
-   * of the data being queried. This is to prevent discrepancies in the OpenSearch query and the
-   * actual field data that is being checked for the integration tests.
+   * All the following tests use UTC as their date_format timezone as this is the same timezone of
+   * the data being queried. This is to prevent discrepancies in the OpenSearch query and the actual
+   * field data that is being checked for the integration tests.
    *
    * 

Large LIMIT values were given for some of these queries since the default result size of the * query is 200 and this ends up excluding some of the expected values causing the assertion to diff --git a/integ-test/src/test/java/org/opensearch/sql/legacy/MetaDataQueriesIT.java b/integ-test/src/test/java/org/opensearch/sql/legacy/MetaDataQueriesIT.java index ba4519f607..3accb2bb17 100644 --- a/integ-test/src/test/java/org/opensearch/sql/legacy/MetaDataQueriesIT.java +++ b/integ-test/src/test/java/org/opensearch/sql/legacy/MetaDataQueriesIT.java @@ -26,6 +26,8 @@ import org.opensearch.sql.legacy.utils.StringUtils; /** + * + * *

  * The following are tests for SHOW/DESCRIBE query support under Pretty Format Response protocol using JDBC format.
  * 

diff --git a/integ-test/src/test/java/org/opensearch/sql/legacy/MethodQueryIT.java b/integ-test/src/test/java/org/opensearch/sql/legacy/MethodQueryIT.java index 28c5886d68..7589304af0 100644 --- a/integ-test/src/test/java/org/opensearch/sql/legacy/MethodQueryIT.java +++ b/integ-test/src/test/java/org/opensearch/sql/legacy/MethodQueryIT.java @@ -27,6 +27,8 @@ protected void init() throws Exception { } /** + * + * *

    * query
    * "query" : {
@@ -35,6 +37,7 @@ protected void init() throws Exception {
    *   }
    * }
    * 
+ * * @throws IOException */ @Test @@ -50,6 +53,8 @@ public void queryTest() throws IOException { } /** + * + * *
    * matchQuery
    * "query" : {
@@ -61,6 +66,7 @@ public void queryTest() throws IOException {
    *   }
    * }
    * 
+ * * @throws IOException */ @Test @@ -77,6 +83,8 @@ public void matchQueryTest() throws IOException { } /** + * + * *
    * matchQuery
    * {
@@ -118,6 +126,7 @@ public void matchQueryTest() throws IOException {
    *   }
    * }
    * 
+ * * @throws IOException */ @Test @@ -174,6 +183,8 @@ public void negativeRegexpQueryTest() throws IOException { } /** + * + * *
    * wildcardQuery
    * l*e means leae ltae ...
@@ -183,6 +194,7 @@ public void negativeRegexpQueryTest() throws IOException {
    *   }
    * }
    * 
+ * * @throws IOException */ @Test @@ -198,6 +210,8 @@ public void wildcardQueryTest() throws IOException { } /** + * + * *
    * matchPhraseQuery
    * "address" : {
@@ -205,6 +219,7 @@ public void wildcardQueryTest() throws IOException {
    *   "type" : "phrase"
    * }
    * 
+ * * @throws IOException */ @Test diff --git a/integ-test/src/test/java/org/opensearch/sql/legacy/NestedFieldQueryIT.java b/integ-test/src/test/java/org/opensearch/sql/legacy/NestedFieldQueryIT.java index 48d053c6e1..2108bf6867 100644 --- a/integ-test/src/test/java/org/opensearch/sql/legacy/NestedFieldQueryIT.java +++ b/integ-test/src/test/java/org/opensearch/sql/legacy/NestedFieldQueryIT.java @@ -39,6 +39,8 @@ import org.opensearch.search.SearchHit; /** + * + * *
  * Integration test cases for both rewriting and projection logic.
  * 

diff --git a/integ-test/src/test/java/org/opensearch/sql/legacy/OrderIT.java b/integ-test/src/test/java/org/opensearch/sql/legacy/OrderIT.java index 01e989e9f0..20bed5d2ed 100644 --- a/integ-test/src/test/java/org/opensearch/sql/legacy/OrderIT.java +++ b/integ-test/src/test/java/org/opensearch/sql/legacy/OrderIT.java @@ -76,8 +76,7 @@ public void orderByIsNull() throws IOException { // Another equivalent syntax assertThat( - explainQuery( - "SELECT * FROM opensearch-sql_test_index_order ORDER BY id IS NULL, id DESC"), + explainQuery("SELECT * FROM opensearch-sql_test_index_order ORDER BY id IS NULL, id DESC"), equalTo( explainQuery( "SELECT * FROM opensearch-sql_test_index_order ORDER BY id IS NULL DESC"))); diff --git a/integ-test/src/test/java/org/opensearch/sql/legacy/PrettyFormatResponseIT.java b/integ-test/src/test/java/org/opensearch/sql/legacy/PrettyFormatResponseIT.java index 70f8a3c433..07883d92f4 100644 --- a/integ-test/src/test/java/org/opensearch/sql/legacy/PrettyFormatResponseIT.java +++ b/integ-test/src/test/java/org/opensearch/sql/legacy/PrettyFormatResponseIT.java @@ -29,6 +29,8 @@ import org.opensearch.client.Request; /** + * + * *

  * PrettyFormatResponseIT will likely be excluding some of the tests written in PrettyFormatResponseTest since
  * those tests were asserting on class objects directly. These updated tests will only be making assertions based
diff --git a/integ-test/src/test/java/org/opensearch/sql/legacy/QueryFunctionsIT.java b/integ-test/src/test/java/org/opensearch/sql/legacy/QueryFunctionsIT.java
index b36144ce5f..3cf45f7419 100644
--- a/integ-test/src/test/java/org/opensearch/sql/legacy/QueryFunctionsIT.java
+++ b/integ-test/src/test/java/org/opensearch/sql/legacy/QueryFunctionsIT.java
@@ -43,6 +43,8 @@ public class QueryFunctionsIT extends SQLIntegTestCase {
   private static final String FROM_PHRASE = "FROM " + TEST_INDEX_PHRASE;
 
   /**
+   *
+   *
    * 
    * TODO Looks like Math/Date Functions test all use the same query() and execute() functions
    * TODO execute/featureValueOf/hits functions are the same as used in NestedFieldQueryIT, should refactor into util
@@ -168,6 +170,8 @@ protected U featureValueOf(T actual) {
   }
 
   /**
+   *
+   *
    * 
    * Create Matchers for each field and its value
    * Only one of the Matchers need to match (per hit)
@@ -178,6 +182,7 @@ protected U featureValueOf(T actual) {
    * Then the value "Ayers" can be found in either the firstname or lastname field. Only one of these fields
    * need to satisfy the query value to be evaluated as correct expected output.
    * 
+ * * @param value The value to match for a field in the sourceMap * @param fields A list of fields to match */ diff --git a/integ-test/src/test/java/org/opensearch/sql/legacy/QueryIT.java b/integ-test/src/test/java/org/opensearch/sql/legacy/QueryIT.java index 3f684deaa9..71795b1fb7 100644 --- a/integ-test/src/test/java/org/opensearch/sql/legacy/QueryIT.java +++ b/integ-test/src/test/java/org/opensearch/sql/legacy/QueryIT.java @@ -43,6 +43,8 @@ public class QueryIT extends SQLIntegTestCase { /** + * + * *
    * Currently commenting out tests related to JoinType index since there is an issue with mapping.
    * 

@@ -113,8 +115,7 @@ public void multipleFromTest() throws IOException { public void selectAllWithFieldReturnsAll() throws IOException { JSONObject response = executeQuery( - StringUtils.format( - "SELECT *, age FROM %s LIMIT 5", TestsConstants.TEST_INDEX_BANK)); + StringUtils.format("SELECT *, age FROM %s LIMIT 5", TestsConstants.TEST_INDEX_BANK)); checkSelectAllAndFieldResponseSize(response); } @@ -123,8 +124,7 @@ public void selectAllWithFieldReturnsAll() throws IOException { public void selectAllWithFieldReverseOrder() throws IOException { JSONObject response = executeQuery( - StringUtils.format( - "SELECT *, age FROM %s LIMIT 5", TestsConstants.TEST_INDEX_BANK)); + StringUtils.format("SELECT *, age FROM %s LIMIT 5", TestsConstants.TEST_INDEX_BANK)); checkSelectAllAndFieldResponseSize(response); } @@ -134,8 +134,7 @@ public void selectAllWithMultipleFields() throws IOException { JSONObject response = executeQuery( StringUtils.format( - "SELECT *, age, address FROM %s LIMIT 5", - TestsConstants.TEST_INDEX_BANK)); + "SELECT *, age, address FROM %s LIMIT 5", TestsConstants.TEST_INDEX_BANK)); checkSelectAllAndFieldResponseSize(response); } @@ -145,8 +144,7 @@ public void selectAllWithFieldAndOrderBy() throws IOException { JSONObject response = executeQuery( StringUtils.format( - "SELECT *, age FROM %s ORDER BY age LIMIT 5", - TestsConstants.TEST_INDEX_BANK)); + "SELECT *, age FROM %s ORDER BY age LIMIT 5", TestsConstants.TEST_INDEX_BANK)); checkSelectAllAndFieldResponseSize(response); } @@ -156,8 +154,7 @@ public void selectAllWithFieldAndGroupBy() throws IOException { JSONObject response = executeQuery( StringUtils.format( - "SELECT *, age FROM %s GROUP BY age LIMIT 10", - TestsConstants.TEST_INDEX_BANK)); + "SELECT *, age FROM %s GROUP BY age LIMIT 10", TestsConstants.TEST_INDEX_BANK)); checkSelectAllAndFieldAggregationResponseSize(response, "age"); } @@ -167,8 +164,7 @@ public void selectAllWithFieldAndGroupByReverseOrder() throws IOException { JSONObject response = executeQuery( StringUtils.format( - "SELECT *, age FROM %s GROUP BY age LIMIT 10", - TestsConstants.TEST_INDEX_BANK)); + "SELECT *, age FROM %s GROUP BY age LIMIT 10", TestsConstants.TEST_INDEX_BANK)); checkSelectAllAndFieldAggregationResponseSize(response, "age"); } @@ -1105,8 +1101,7 @@ public void testWhereWithBoolEqualsTrue() throws IOException { JSONObject response = executeQuery( StringUtils.format( - "SELECT * FROM %s WHERE male = true LIMIT 5", - TestsConstants.TEST_INDEX_BANK)); + "SELECT * FROM %s WHERE male = true LIMIT 5", TestsConstants.TEST_INDEX_BANK)); checkResponseSize(response, BANK_INDEX_MALE_TRUE); } @@ -1164,8 +1159,7 @@ public void testWhereWithBoolEqualsFalse() throws IOException { JSONObject response = executeQuery( StringUtils.format( - "SELECT * FROM %s WHERE male = false LIMIT 5", - TestsConstants.TEST_INDEX_BANK)); + "SELECT * FROM %s WHERE male = false LIMIT 5", TestsConstants.TEST_INDEX_BANK)); checkResponseSize(response, BANK_INDEX_MALE_FALSE); } diff --git a/integ-test/src/test/java/org/opensearch/sql/legacy/RestIntegTestCase.java b/integ-test/src/test/java/org/opensearch/sql/legacy/RestIntegTestCase.java index e4f1cc552d..f51de7d300 100644 --- a/integ-test/src/test/java/org/opensearch/sql/legacy/RestIntegTestCase.java +++ b/integ-test/src/test/java/org/opensearch/sql/legacy/RestIntegTestCase.java @@ -3,7 +3,6 @@ * SPDX-License-Identifier: Apache-2.0 */ - package org.opensearch.sql.legacy; import static org.opensearch.core.common.Strings.isNullOrEmpty; @@ -44,12 +43,13 @@ import org.junit.Before; import org.opensearch.client.Request; import org.opensearch.client.Response; -import org.opensearch.core.common.Strings; import org.opensearch.common.xcontent.XContentFactory; import org.opensearch.core.rest.RestStatus; import org.opensearch.core.xcontent.XContentBuilder; /** + * + * *

  * SQL plugin integration test base class (migrated from SQLIntegTestCase)
  * 

@@ -81,12 +81,12 @@ protected boolean preserveClusterUponCompletion() { } /** - * We need to be able to dump the jacoco coverage before cluster is shut down. - * The new internal testing framework removed some of the gradle tasks we were listening to - * to choose a good time to do it. This will dump the executionData to file after each test. - * TODO: This is also currently just overwriting integTest.exec with the updated execData without - * resetting after writing each time. This can be improved to either write an exec file per test - * or by letting jacoco append to the file + * We need to be able to dump the jacoco coverage before cluster is shut down. The new internal + * testing framework removed some of the gradle tasks we were listening to to choose a good time + * to do it. This will dump the executionData to file after each test. TODO: This is also + * currently just overwriting integTest.exec with the updated execData without resetting after + * writing each time. This can be improved to either write an exec file per test or by letting + * jacoco append to the file */ public interface IProxy { byte[] getExecutionData(boolean reset); @@ -107,10 +107,12 @@ public static void dumpCoverage() { String serverUrl = "service:jmx:rmi:///jndi/rmi://127.0.0.1:7777/jmxrmi"; try (JMXConnector connector = JMXConnectorFactory.connect(new JMXServiceURL(serverUrl))) { - IProxy proxy = MBeanServerInvocationHandler.newProxyInstance( - connector.getMBeanServerConnection(), new ObjectName("org.jacoco:type=Runtime"), - IProxy.class, - false); + IProxy proxy = + MBeanServerInvocationHandler.newProxyInstance( + connector.getMBeanServerConnection(), + new ObjectName("org.jacoco:type=Runtime"), + IProxy.class, + false); Path path = Paths.get(jacocoBuildPath + "/integTest.exec"); Files.write(path, proxy.getExecutionData(false)); @@ -120,9 +122,9 @@ public static void dumpCoverage() { } /** - * As JUnit JavaDoc says: - * "The @AfterClass methods declared in superclasses will be run after those of the current class." - * So this method is supposed to run before closeClients() in parent class. + * As JUnit JavaDoc says: "The @AfterClass methods declared in superclasses will be run after + * those of the current class." So this method is supposed to run before closeClients() in parent + * class. */ @AfterClass public static void cleanUpIndices() throws IOException { @@ -131,8 +133,8 @@ public static void cleanUpIndices() throws IOException { } /** - * Make it thread-safe in case tests are running in parallel but does not guarantee - * if test like DeleteIT that mutates cluster running in parallel. + * Make it thread-safe in case tests are running in parallel but does not guarantee if test like + * DeleteIT that mutates cluster running in parallel. */ protected synchronized void loadIndex(Index index) throws IOException { String indexName = index.getName(); @@ -145,11 +147,8 @@ protected synchronized void loadIndex(Index index) throws IOException { } } - /** - * Provide for each test to load test index, data and other setup work - */ - protected void init() throws Exception { - } + /** Provide for each test to load test index, data and other setup work */ + protected void init() throws Exception {} protected static void updateClusterSetting(String settingKey, Object value) throws IOException { updateClusterSetting(settingKey, value, true); @@ -158,18 +157,18 @@ protected static void updateClusterSetting(String settingKey, Object value) thro protected static void updateClusterSetting(String settingKey, Object value, boolean persistent) throws IOException { String property = persistent ? PERSISTENT : TRANSIENT; - XContentBuilder builder = XContentFactory - .jsonBuilder() - .startObject() - .startObject(property) - .field(settingKey, value) - .endObject() - .endObject(); + XContentBuilder builder = + XContentFactory.jsonBuilder() + .startObject() + .startObject(property) + .field(settingKey, value) + .endObject() + .endObject(); Request request = new Request("PUT", "_cluster/settings"); request.setJsonEntity(builder.toString()); Response response = client().performRequest(request); - Assert - .assertEquals(RestStatus.OK, RestStatus.fromCode(response.getStatusLine().getStatusCode())); + Assert.assertEquals( + RestStatus.OK, RestStatus.fromCode(response.getStatusLine().getStatusCode())); } protected static void wipeAllClusterSettings() throws IOException { @@ -177,103 +176,109 @@ protected static void wipeAllClusterSettings() throws IOException { updateClusterSetting("*", null, false); } - /** - * Enum for associating test index with relevant mapping and data. - */ + /** Enum for associating test index with relevant mapping and data. */ public enum Index { - ONLINE(TestsConstants.TEST_INDEX_ONLINE, - "online", - null, - "src/test/resources/online.json"), - ACCOUNT(TestsConstants.TEST_INDEX_ACCOUNT, + ONLINE(TestsConstants.TEST_INDEX_ONLINE, "online", null, "src/test/resources/online.json"), + ACCOUNT( + TestsConstants.TEST_INDEX_ACCOUNT, "account", getAccountIndexMapping(), "src/test/resources/accounts.json"), - PHRASE(TestsConstants.TEST_INDEX_PHRASE, + PHRASE( + TestsConstants.TEST_INDEX_PHRASE, "phrase", getPhraseIndexMapping(), "src/test/resources/phrases.json"), - DOG(TestsConstants.TEST_INDEX_DOG, - "dog", - getDogIndexMapping(), - "src/test/resources/dogs.json"), - DOGS2(TestsConstants.TEST_INDEX_DOG2, + DOG(TestsConstants.TEST_INDEX_DOG, "dog", getDogIndexMapping(), "src/test/resources/dogs.json"), + DOGS2( + TestsConstants.TEST_INDEX_DOG2, "dog", getDogs2IndexMapping(), "src/test/resources/dogs2.json"), - DOGS3(TestsConstants.TEST_INDEX_DOG3, + DOGS3( + TestsConstants.TEST_INDEX_DOG3, "dog", getDogs3IndexMapping(), "src/test/resources/dogs3.json"), - DOGSSUBQUERY(TestsConstants.TEST_INDEX_DOGSUBQUERY, + DOGSSUBQUERY( + TestsConstants.TEST_INDEX_DOGSUBQUERY, "dog", getDogIndexMapping(), "src/test/resources/dogsubquery.json"), - PEOPLE(TestsConstants.TEST_INDEX_PEOPLE, - "people", - null, - "src/test/resources/peoples.json"), - PEOPLE2(TestsConstants.TEST_INDEX_PEOPLE2, + PEOPLE(TestsConstants.TEST_INDEX_PEOPLE, "people", null, "src/test/resources/peoples.json"), + PEOPLE2( + TestsConstants.TEST_INDEX_PEOPLE2, "people", getPeople2IndexMapping(), "src/test/resources/people2.json"), - GAME_OF_THRONES(TestsConstants.TEST_INDEX_GAME_OF_THRONES, + GAME_OF_THRONES( + TestsConstants.TEST_INDEX_GAME_OF_THRONES, "gotCharacters", getGameOfThronesIndexMapping(), "src/test/resources/game_of_thrones_complex.json"), - SYSTEM(TestsConstants.TEST_INDEX_SYSTEM, - "systems", - null, - "src/test/resources/systems.json"), - ODBC(TestsConstants.TEST_INDEX_ODBC, + SYSTEM(TestsConstants.TEST_INDEX_SYSTEM, "systems", null, "src/test/resources/systems.json"), + ODBC( + TestsConstants.TEST_INDEX_ODBC, "odbc", getOdbcIndexMapping(), "src/test/resources/odbc-date-formats.json"), - LOCATION(TestsConstants.TEST_INDEX_LOCATION, + LOCATION( + TestsConstants.TEST_INDEX_LOCATION, "location", getLocationIndexMapping(), "src/test/resources/locations.json"), - LOCATION_TWO(TestsConstants.TEST_INDEX_LOCATION2, + LOCATION_TWO( + TestsConstants.TEST_INDEX_LOCATION2, "location2", getLocationIndexMapping(), "src/test/resources/locations2.json"), - NESTED(TestsConstants.TEST_INDEX_NESTED_TYPE, + NESTED( + TestsConstants.TEST_INDEX_NESTED_TYPE, "nestedType", getNestedTypeIndexMapping(), "src/test/resources/nested_objects.json"), - NESTED_WITH_QUOTES(TestsConstants.TEST_INDEX_NESTED_WITH_QUOTES, + NESTED_WITH_QUOTES( + TestsConstants.TEST_INDEX_NESTED_WITH_QUOTES, "nestedType", getNestedTypeIndexMapping(), "src/test/resources/nested_objects_quotes_in_values.json"), - EMPLOYEE_NESTED(TestsConstants.TEST_INDEX_EMPLOYEE_NESTED, + EMPLOYEE_NESTED( + TestsConstants.TEST_INDEX_EMPLOYEE_NESTED, "_doc", getEmployeeNestedTypeIndexMapping(), "src/test/resources/employee_nested.json"), - JOIN(TestsConstants.TEST_INDEX_JOIN_TYPE, + JOIN( + TestsConstants.TEST_INDEX_JOIN_TYPE, "joinType", getJoinTypeIndexMapping(), "src/test/resources/join_objects.json"), - BANK(TestsConstants.TEST_INDEX_BANK, + BANK( + TestsConstants.TEST_INDEX_BANK, "account", getBankIndexMapping(), "src/test/resources/bank.json"), - BANK_TWO(TestsConstants.TEST_INDEX_BANK_TWO, + BANK_TWO( + TestsConstants.TEST_INDEX_BANK_TWO, "account_two", getBankIndexMapping(), "src/test/resources/bank_two.json"), - BANK_WITH_NULL_VALUES(TestsConstants.TEST_INDEX_BANK_WITH_NULL_VALUES, + BANK_WITH_NULL_VALUES( + TestsConstants.TEST_INDEX_BANK_WITH_NULL_VALUES, "account_null", getBankWithNullValuesIndexMapping(), "src/test/resources/bank_with_null_values.json"), - ORDER(TestsConstants.TEST_INDEX_ORDER, + ORDER( + TestsConstants.TEST_INDEX_ORDER, "_doc", getOrderIndexMapping(), "src/test/resources/order.json"), - WEBLOG(TestsConstants.TEST_INDEX_WEBLOG, + WEBLOG( + TestsConstants.TEST_INDEX_WEBLOG, "weblog", getWeblogsIndexMapping(), "src/test/resources/weblogs.json"), - DATE(TestsConstants.TEST_INDEX_DATE, + DATE( + TestsConstants.TEST_INDEX_DATE, "dates", getDateIndexMapping(), "src/test/resources/dates.json"); diff --git a/integ-test/src/test/java/org/opensearch/sql/legacy/SQLIntegTestCase.java b/integ-test/src/test/java/org/opensearch/sql/legacy/SQLIntegTestCase.java index 4479abdcc6..8335ada5a7 100644 --- a/integ-test/src/test/java/org/opensearch/sql/legacy/SQLIntegTestCase.java +++ b/integ-test/src/test/java/org/opensearch/sql/legacy/SQLIntegTestCase.java @@ -99,6 +99,8 @@ protected boolean preserveClusterUponCompletion() { } /** + * + * *

    * We need to be able to dump the jacoco coverage before cluster is shut down.
    * The new internal testing framework removed some of the gradle tasks we were listening to
@@ -143,9 +145,9 @@ public static void dumpCoverage() {
 
   /**
    * As JUnit JavaDoc says:
- "The @AfterClass methods declared in superclasses will be run after those of the current class."
- So this method is supposed to run before closeClients() in parent class. - * class. + * "The @AfterClass methods declared in superclasses will be run after those of the current + * class."
+ * So this method is supposed to run before closeClients() in parent class. class. */ @AfterClass public static void cleanUpIndices() throws IOException { @@ -440,14 +442,11 @@ protected String makeRequest(String query) { } protected String makeRequest(String query, int fetch_size) { - return String.format( - "{ \"fetch_size\": \"%s\", \"query\": \"%s\" }", fetch_size, query); + return String.format("{ \"fetch_size\": \"%s\", \"query\": \"%s\" }", fetch_size, query); } protected String makeFetchLessRequest(String query) { - return String.format("{\n" + - " \"query\": \"%s\"\n" + - "}", query); + return String.format("{\n" + " \"query\": \"%s\"\n" + "}", query); } protected String makeCursorRequest(String cursor) { diff --git a/integ-test/src/test/java/org/opensearch/sql/legacy/TermQueryExplainIT.java b/integ-test/src/test/java/org/opensearch/sql/legacy/TermQueryExplainIT.java index 6c33b2b242..ab2808ee3f 100644 --- a/integ-test/src/test/java/org/opensearch/sql/legacy/TermQueryExplainIT.java +++ b/integ-test/src/test/java/org/opensearch/sql/legacy/TermQueryExplainIT.java @@ -52,8 +52,7 @@ public void testNonExistingIndex() throws IOException { @Test public void testNonResolvingIndexPattern() throws IOException { try { - explainQuery( - "SELECT * FROM opensearch_sql_test_blah_blah* WHERE firstname = 'Leo'"); + explainQuery("SELECT * FROM opensearch_sql_test_blah_blah* WHERE firstname = 'Leo'"); Assert.fail("Expected ResponseException, but none was thrown"); } catch (ResponseException e) { @@ -265,8 +264,7 @@ public void testKeywordAliasGroupByUsingTableAlias() throws IOException { @Test public void testKeywordAliasOrderBy() throws IOException { String result = - explainQuery( - "SELECT * FROM opensearch-sql_test_index_bank ORDER BY state, lastname "); + explainQuery("SELECT * FROM opensearch-sql_test_index_bank ORDER BY state, lastname "); assertThat(result, containsString("\"state.keyword\":{\"order\":\"asc\"")); assertThat(result, containsString("\"lastname\":{\"order\":\"asc\"}")); } diff --git a/integ-test/src/test/java/org/opensearch/sql/legacy/TestUtils.java b/integ-test/src/test/java/org/opensearch/sql/legacy/TestUtils.java index 1abc1d6183..65cacf16d2 100644 --- a/integ-test/src/test/java/org/opensearch/sql/legacy/TestUtils.java +++ b/integ-test/src/test/java/org/opensearch/sql/legacy/TestUtils.java @@ -54,8 +54,8 @@ public static void createIndexByRestClient(RestClient client, String indexName, /** * https://github.com/elastic/elasticsearch/pull/49959
- * Deprecate creation of dot-prefixed index - * names except for hidden and system indices. Create hidden index by REST client. + * Deprecate creation of dot-prefixed index names except for hidden and system indices. Create + * hidden index by REST client. * * @param client client connection * @param indexName test index name diff --git a/integ-test/src/test/java/org/opensearch/sql/ppl/DateTimeImplementationIT.java b/integ-test/src/test/java/org/opensearch/sql/ppl/DateTimeImplementationIT.java index fb97da32ab..dd86470a39 100644 --- a/integ-test/src/test/java/org/opensearch/sql/ppl/DateTimeImplementationIT.java +++ b/integ-test/src/test/java/org/opensearch/sql/ppl/DateTimeImplementationIT.java @@ -17,13 +17,11 @@ public class DateTimeImplementationIT extends PPLIntegTestCase { - @Override public void init() throws IOException { loadIndex(Index.DATE); } - @Test public void inRangeZeroToStringTZ() throws IOException { JSONObject result = @@ -69,7 +67,6 @@ public void inRangeTwentyHourOffset() throws IOException { verifySome(result.getJSONArray("datarows"), rows("2004-02-29 19:00:00")); } - @Test public void inRangeYearChange() throws IOException { JSONObject result = diff --git a/integ-test/src/test/java/org/opensearch/sql/ppl/MatchPhrasePrefixIT.java b/integ-test/src/test/java/org/opensearch/sql/ppl/MatchPhrasePrefixIT.java index d6277252a5..91ce1bbd10 100644 --- a/integ-test/src/test/java/org/opensearch/sql/ppl/MatchPhrasePrefixIT.java +++ b/integ-test/src/test/java/org/opensearch/sql/ppl/MatchPhrasePrefixIT.java @@ -97,8 +97,7 @@ public void zero_term_query_all() throws IOException { public void slop_is_2() throws IOException { // When slop is 2, the terms are matched exactly in the order specified. // 'open' is used to match prefix of the next term. - String query = - "source = %s | where match_phrase_prefix(Tags, 'gas ta', slop=2) | fields Tags"; + String query = "source = %s | where match_phrase_prefix(Tags, 'gas ta', slop=2) | fields Tags"; JSONObject result = executeQuery(String.format(query, TEST_INDEX_BEER)); verifyDataRows(result, rows("taste gas")); } @@ -106,8 +105,7 @@ public void slop_is_2() throws IOException { @Test public void slop_is_3() throws IOException { // When slop is 3, results will include phrases where the query terms are transposed. - String query = - "source = %s | where match_phrase_prefix(Tags, 'gas ta', slop=3) | fields Tags"; + String query = "source = %s | where match_phrase_prefix(Tags, 'gas ta', slop=3) | fields Tags"; JSONObject result = executeQuery(String.format(query, TEST_INDEX_BEER)); verifyDataRows(result, rows("taste draught gas"), rows("taste gas")); } diff --git a/integ-test/src/test/java/org/opensearch/sql/ppl/ObjectFieldOperateIT.java b/integ-test/src/test/java/org/opensearch/sql/ppl/ObjectFieldOperateIT.java index 501d4bcb5e..d4d09c9af1 100644 --- a/integ-test/src/test/java/org/opensearch/sql/ppl/ObjectFieldOperateIT.java +++ b/integ-test/src/test/java/org/opensearch/sql/ppl/ObjectFieldOperateIT.java @@ -28,8 +28,7 @@ public void select_object_field() throws IOException { JSONObject result = executeQuery( String.format( - "source=%s | fields city.name, city.location.latitude", - TEST_INDEX_DEEP_NESTED)); + "source=%s | fields city.name, city.location.latitude", TEST_INDEX_DEEP_NESTED)); verifySchema(result, schema("city.name", "string"), schema("city.location.latitude", "double")); verifyDataRows(result, rows("Seattle", 10.5)); } diff --git a/integ-test/src/test/java/org/opensearch/sql/sql/ConvertTZFunctionIT.java b/integ-test/src/test/java/org/opensearch/sql/sql/ConvertTZFunctionIT.java index b719edd5b0..76600b6561 100644 --- a/integ-test/src/test/java/org/opensearch/sql/sql/ConvertTZFunctionIT.java +++ b/integ-test/src/test/java/org/opensearch/sql/sql/ConvertTZFunctionIT.java @@ -1,7 +1,7 @@ - /* - * Copyright OpenSearch Contributors - * SPDX-License-Identifier: Apache-2.0 - */ +/* + * Copyright OpenSearch Contributors + * SPDX-License-Identifier: Apache-2.0 + */ package org.opensearch.sql.sql; @@ -16,110 +16,97 @@ public class ConvertTZFunctionIT extends SQLIntegTestCase { - @Override public void init() throws Exception { super.init(); loadIndex(Index.BANK); } - @Test public void inRangeZeroToPositive() throws IOException { - var result = executeJdbcRequest( - "SELECT convert_tz('2008-05-15 12:00:00','+00:00','+10:00')"); - verifySchema(result, - schema("convert_tz('2008-05-15 12:00:00','+00:00','+10:00')", null, "datetime")); + var result = executeJdbcRequest("SELECT convert_tz('2008-05-15 12:00:00','+00:00','+10:00')"); + verifySchema( + result, schema("convert_tz('2008-05-15 12:00:00','+00:00','+10:00')", null, "datetime")); verifyDataRows(result, rows("2008-05-15 22:00:00")); } @Test public void inRangeNegativeZeroToPositiveZero() throws IOException { - var result = executeJdbcRequest( - "SELECT convert_tz('2021-05-12 00:00:00','-00:00','+00:00')"); - verifySchema(result, - schema("convert_tz('2021-05-12 00:00:00','-00:00','+00:00')", null, "datetime")); + var result = executeJdbcRequest("SELECT convert_tz('2021-05-12 00:00:00','-00:00','+00:00')"); + verifySchema( + result, schema("convert_tz('2021-05-12 00:00:00','-00:00','+00:00')", null, "datetime")); verifyDataRows(result, rows("2021-05-12 00:00:00")); } @Test public void inRangePositiveToPositive() throws IOException { - var result = executeJdbcRequest( - "SELECT convert_tz('2021-05-12 00:00:00','+10:00','+11:00')"); - verifySchema(result, - schema("convert_tz('2021-05-12 00:00:00','+10:00','+11:00')", null, "datetime")); + var result = executeJdbcRequest("SELECT convert_tz('2021-05-12 00:00:00','+10:00','+11:00')"); + verifySchema( + result, schema("convert_tz('2021-05-12 00:00:00','+10:00','+11:00')", null, "datetime")); verifyDataRows(result, rows("2021-05-12 01:00:00")); } @Test public void inRangeNegativeToPositive() throws IOException { - var result = executeJdbcRequest( - "SELECT convert_tz('2021-05-12 11:34:50','-08:00','+09:00')"); - verifySchema(result, - schema("convert_tz('2021-05-12 11:34:50','-08:00','+09:00')", null, "datetime")); + var result = executeJdbcRequest("SELECT convert_tz('2021-05-12 11:34:50','-08:00','+09:00')"); + verifySchema( + result, schema("convert_tz('2021-05-12 11:34:50','-08:00','+09:00')", null, "datetime")); verifyDataRows(result, rows("2021-05-13 04:34:50")); } @Test public void inRangeSameTimeZone() throws IOException { - var result = executeJdbcRequest( - "SELECT convert_tz('2021-05-12 11:34:50','+09:00','+09:00')"); - verifySchema(result, - schema("convert_tz('2021-05-12 11:34:50','+09:00','+09:00')", null, "datetime")); + var result = executeJdbcRequest("SELECT convert_tz('2021-05-12 11:34:50','+09:00','+09:00')"); + verifySchema( + result, schema("convert_tz('2021-05-12 11:34:50','+09:00','+09:00')", null, "datetime")); verifyDataRows(result, rows("2021-05-12 11:34:50")); } @Test public void inRangeTwentyFourHourTimeOffset() throws IOException { - var result = executeJdbcRequest( - "SELECT convert_tz('2021-05-12 11:34:50','-12:00','+12:00')"); - verifySchema(result, - schema("convert_tz('2021-05-12 11:34:50','-12:00','+12:00')", null, "datetime")); + var result = executeJdbcRequest("SELECT convert_tz('2021-05-12 11:34:50','-12:00','+12:00')"); + verifySchema( + result, schema("convert_tz('2021-05-12 11:34:50','-12:00','+12:00')", null, "datetime")); verifyDataRows(result, rows("2021-05-13 11:34:50")); } @Test public void inRangeFifteenMinuteTimeZones() throws IOException { - var result = executeJdbcRequest( - "SELECT convert_tz('2021-05-12 13:00:00','+09:30','+05:45')"); - verifySchema(result, - schema("convert_tz('2021-05-12 13:00:00','+09:30','+05:45')", null, "datetime")); + var result = executeJdbcRequest("SELECT convert_tz('2021-05-12 13:00:00','+09:30','+05:45')"); + verifySchema( + result, schema("convert_tz('2021-05-12 13:00:00','+09:30','+05:45')", null, "datetime")); verifyDataRows(result, rows("2021-05-12 09:15:00")); } @Test public void inRangeRandomTimes() throws IOException { - var result = executeJdbcRequest( - "SELECT convert_tz('2021-05-12 13:00:00','+09:31','+05:11')"); - verifySchema(result, - schema("convert_tz('2021-05-12 13:00:00','+09:31','+05:11')", null, "datetime")); + var result = executeJdbcRequest("SELECT convert_tz('2021-05-12 13:00:00','+09:31','+05:11')"); + verifySchema( + result, schema("convert_tz('2021-05-12 13:00:00','+09:31','+05:11')", null, "datetime")); verifyDataRows(result, rows("2021-05-12 08:40:00")); } @Test public void nullField2Under() throws IOException { - var result = executeJdbcRequest( - "SELECT convert_tz('2021-05-30 11:34:50','-14:00','+08:00')"); - verifySchema(result, - schema("convert_tz('2021-05-30 11:34:50','-14:00','+08:00')", null, "datetime")); - verifyDataRows(result, rows(new Object[]{null})); + var result = executeJdbcRequest("SELECT convert_tz('2021-05-30 11:34:50','-14:00','+08:00')"); + verifySchema( + result, schema("convert_tz('2021-05-30 11:34:50','-14:00','+08:00')", null, "datetime")); + verifyDataRows(result, rows(new Object[] {null})); } @Test public void nullField3Over() throws IOException { - var result = executeJdbcRequest( - "SELECT convert_tz('2021-05-12 11:34:50','-12:00','+14:01')"); - verifySchema(result, - schema("convert_tz('2021-05-12 11:34:50','-12:00','+14:01')", null, "datetime")); - verifyDataRows(result, rows(new Object[]{null})); + var result = executeJdbcRequest("SELECT convert_tz('2021-05-12 11:34:50','-12:00','+14:01')"); + verifySchema( + result, schema("convert_tz('2021-05-12 11:34:50','-12:00','+14:01')", null, "datetime")); + verifyDataRows(result, rows(new Object[] {null})); } @Test public void inRangeMinOnPoint() throws IOException { - var result = executeJdbcRequest( - "SELECT convert_tz('2021-05-12 15:00:00','-13:59','-13:59')"); - verifySchema(result, - schema("convert_tz('2021-05-12 15:00:00','-13:59','-13:59')", null, "datetime")); + var result = executeJdbcRequest("SELECT convert_tz('2021-05-12 15:00:00','-13:59','-13:59')"); + verifySchema( + result, schema("convert_tz('2021-05-12 15:00:00','-13:59','-13:59')", null, "datetime")); verifyDataRows(result, rows("2021-05-12 15:00:00")); } @@ -129,57 +116,50 @@ public void inRangeMinOnPoint() throws IOException { // Invalid input returns null. @Test public void nullField3InvalidInput() throws IOException { - var result = executeJdbcRequest( - "SELECT convert_tz('2021-05-12 11:34:50','+10:0','+14:01')"); - verifySchema(result, - schema("convert_tz('2021-05-12 11:34:50','+10:0','+14:01')", null, "datetime")); - verifyDataRows(result, rows(new Object[]{null})); + var result = executeJdbcRequest("SELECT convert_tz('2021-05-12 11:34:50','+10:0','+14:01')"); + verifySchema( + result, schema("convert_tz('2021-05-12 11:34:50','+10:0','+14:01')", null, "datetime")); + verifyDataRows(result, rows(new Object[] {null})); } @Test public void nullField2InvalidInput() throws IOException { - var result = executeJdbcRequest( - "SELECT convert_tz('2021-05-12 11:34:50','+14:01','****')"); - verifySchema(result, - schema("convert_tz('2021-05-12 11:34:50','+14:01','****')", null, "datetime")); - verifyDataRows(result, rows(new Object[]{null})); + var result = executeJdbcRequest("SELECT convert_tz('2021-05-12 11:34:50','+14:01','****')"); + verifySchema( + result, schema("convert_tz('2021-05-12 11:34:50','+14:01','****')", null, "datetime")); + verifyDataRows(result, rows(new Object[] {null})); } // Invalid input in the datetime field of CONVERT_TZ results in a null field. It is any input // which is not of the format `yyyy-MM-dd HH:mm:ss` @Test public void nullDateTimeInvalidInput() throws IOException { - var result = executeJdbcRequest( - "SELECT convert_tz('2021----','+00:00','+00:00')"); - verifySchema(result, - schema("convert_tz('2021----','+00:00','+00:00')", null, "datetime")); - verifyDataRows(result, rows(new Object[]{null})); + var result = executeJdbcRequest("SELECT convert_tz('2021----','+00:00','+00:00')"); + verifySchema(result, schema("convert_tz('2021----','+00:00','+00:00')", null, "datetime")); + verifyDataRows(result, rows(new Object[] {null})); } @Test public void nullDateTimeInvalidDateValueFebruary() throws IOException { - var result = executeJdbcRequest( - "SELECT convert_tz('2021-02-30 10:00:00','+00:00','+00:00')"); - verifySchema(result, - schema("convert_tz('2021-02-30 10:00:00','+00:00','+00:00')", null, "datetime")); - verifyDataRows(result, rows(new Object[]{null})); + var result = executeJdbcRequest("SELECT convert_tz('2021-02-30 10:00:00','+00:00','+00:00')"); + verifySchema( + result, schema("convert_tz('2021-02-30 10:00:00','+00:00','+00:00')", null, "datetime")); + verifyDataRows(result, rows(new Object[] {null})); } @Test public void nullDateTimeInvalidDateValueApril() throws IOException { - var result = executeJdbcRequest( - "SELECT convert_tz('2021-04-31 10:00:00','+00:00','+00:00')"); - verifySchema(result, - schema("convert_tz('2021-04-31 10:00:00','+00:00','+00:00')", null, "datetime")); - verifyDataRows(result, rows(new Object[]{null})); + var result = executeJdbcRequest("SELECT convert_tz('2021-04-31 10:00:00','+00:00','+00:00')"); + verifySchema( + result, schema("convert_tz('2021-04-31 10:00:00','+00:00','+00:00')", null, "datetime")); + verifyDataRows(result, rows(new Object[] {null})); } @Test public void nullDateTimeInvalidDateValueMonth() throws IOException { - var result = executeJdbcRequest( - "SELECT convert_tz('2021-13-03 10:00:00','+00:00','+00:00')"); - verifySchema(result, - schema("convert_tz('2021-13-03 10:00:00','+00:00','+00:00')", null, "datetime")); - verifyDataRows(result, rows(new Object[]{null})); + var result = executeJdbcRequest("SELECT convert_tz('2021-13-03 10:00:00','+00:00','+00:00')"); + verifySchema( + result, schema("convert_tz('2021-13-03 10:00:00','+00:00','+00:00')", null, "datetime")); + verifyDataRows(result, rows(new Object[] {null})); } } diff --git a/integ-test/src/test/java/org/opensearch/sql/sql/DateTimeImplementationIT.java b/integ-test/src/test/java/org/opensearch/sql/sql/DateTimeImplementationIT.java index 750be47de3..8ffa1df8f3 100644 --- a/integ-test/src/test/java/org/opensearch/sql/sql/DateTimeImplementationIT.java +++ b/integ-test/src/test/java/org/opensearch/sql/sql/DateTimeImplementationIT.java @@ -5,17 +5,16 @@ package org.opensearch.sql.sql; -import org.junit.Test; -import org.opensearch.sql.legacy.SQLIntegTestCase; -import java.io.IOException; - import static org.opensearch.sql.util.MatcherUtils.rows; import static org.opensearch.sql.util.MatcherUtils.schema; import static org.opensearch.sql.util.MatcherUtils.verifyDataRows; import static org.opensearch.sql.util.MatcherUtils.verifySchema; -public class DateTimeImplementationIT extends SQLIntegTestCase { +import java.io.IOException; +import org.junit.Test; +import org.opensearch.sql.legacy.SQLIntegTestCase; +public class DateTimeImplementationIT extends SQLIntegTestCase { @Override public void init() throws Exception { @@ -135,10 +134,8 @@ public void nullDateTimeInvalidDateValueApril() throws IOException { @Test public void nullDateTimeInvalidDateValueMonth() throws IOException { - var result = executeJdbcRequest( - "SELECT DATETIME('2021-13-03 10:00:00')"); - verifySchema(result, - schema("DATETIME('2021-13-03 10:00:00')", null, "datetime")); - verifyDataRows(result, rows(new Object[]{null})); + var result = executeJdbcRequest("SELECT DATETIME('2021-13-03 10:00:00')"); + verifySchema(result, schema("DATETIME('2021-13-03 10:00:00')", null, "datetime")); + verifyDataRows(result, rows(new Object[] {null})); } } diff --git a/integ-test/src/test/java/org/opensearch/sql/sql/ScoreQueryIT.java b/integ-test/src/test/java/org/opensearch/sql/sql/ScoreQueryIT.java index fdd35c47eb..6616746d99 100644 --- a/integ-test/src/test/java/org/opensearch/sql/sql/ScoreQueryIT.java +++ b/integ-test/src/test/java/org/opensearch/sql/sql/ScoreQueryIT.java @@ -26,6 +26,8 @@ protected void init() throws Exception { } /** + * + * *
    * "query" : {
    *   "from": 0,
@@ -85,6 +87,7 @@ protected void init() throws Exception {
    *   "track_scores": true
    * }
    * 
+ * * @throws IOException */ @Test diff --git a/integ-test/src/test/java/org/opensearch/sql/sql/StringLiteralIT.java b/integ-test/src/test/java/org/opensearch/sql/sql/StringLiteralIT.java index d98016d62b..2b6f9476c7 100644 --- a/integ-test/src/test/java/org/opensearch/sql/sql/StringLiteralIT.java +++ b/integ-test/src/test/java/org/opensearch/sql/sql/StringLiteralIT.java @@ -18,46 +18,36 @@ public class StringLiteralIT extends SQLIntegTestCase { @Test public void testStringHelloSingleQuote() throws IOException { - JSONObject result = - executeJdbcRequest("select 'Hello'"); - verifySchema(result, - schema("'Hello'", null, "keyword")); + JSONObject result = executeJdbcRequest("select 'Hello'"); + verifySchema(result, schema("'Hello'", null, "keyword")); verifyDataRows(result, rows("Hello")); } @Test public void testStringHelloDoubleQuote() throws IOException { - JSONObject result = - executeJdbcRequest("select \\\"Hello\\\""); - verifySchema(result, - schema("\"Hello\"", null, "keyword")); + JSONObject result = executeJdbcRequest("select \\\"Hello\\\""); + verifySchema(result, schema("\"Hello\"", null, "keyword")); verifyDataRows(result, rows("Hello")); } @Test public void testImStringDoubleDoubleQuoteEscape() throws IOException { - JSONObject result = - executeJdbcRequest("select \\\"I\\\"\\\"m\\\""); - verifySchema(result, - schema("\"I\"\"m\"", null, "keyword")); + JSONObject result = executeJdbcRequest("select \\\"I\\\"\\\"m\\\""); + verifySchema(result, schema("\"I\"\"m\"", null, "keyword")); verifyDataRows(result, rows("I\"m")); } @Test public void testImStringDoubleSingleQuoteEscape() throws IOException { - JSONObject result = - executeJdbcRequest("select 'I''m'"); - verifySchema(result, - schema("'I''m'", null, "keyword")); + JSONObject result = executeJdbcRequest("select 'I''m'"); + verifySchema(result, schema("'I''m'", null, "keyword")); verifyDataRows(result, rows("I'm")); } @Test public void testImStringEscapedSingleQuote() throws IOException { - JSONObject result = - executeJdbcRequest("select 'I\\\\'m'"); - verifySchema(result, - schema("'I\\'m'", null, "keyword")); + JSONObject result = executeJdbcRequest("select 'I\\\\'m'"); + verifySchema(result, schema("'I\\'m'", null, "keyword")); verifyDataRows(result, rows("I'm")); } } diff --git a/integ-test/src/test/java/org/opensearch/sql/util/ExecuteOnCallerThreadQueryManager.java b/integ-test/src/test/java/org/opensearch/sql/util/ExecuteOnCallerThreadQueryManager.java index 0a42dc83e3..39437ffc5f 100644 --- a/integ-test/src/test/java/org/opensearch/sql/util/ExecuteOnCallerThreadQueryManager.java +++ b/integ-test/src/test/java/org/opensearch/sql/util/ExecuteOnCallerThreadQueryManager.java @@ -12,7 +12,7 @@ /** * ONLY USED FOR TEST PURPOSE. * - * Execute {@link AbstractPlan} on caller thread. + *

Execute {@link AbstractPlan} on caller thread. */ public class ExecuteOnCallerThreadQueryManager implements QueryManager { @Override diff --git a/integ-test/src/test/java/org/opensearch/sql/util/TestUtils.java b/integ-test/src/test/java/org/opensearch/sql/util/TestUtils.java index ac5cee118c..589fb1f9ae 100644 --- a/integ-test/src/test/java/org/opensearch/sql/util/TestUtils.java +++ b/integ-test/src/test/java/org/opensearch/sql/util/TestUtils.java @@ -57,8 +57,8 @@ public static void createIndexByRestClient(RestClient client, String indexName, /** * https://github.com/elastic/elasticsearch/pull/49959
- * Deprecate creation of dot-prefixed index - * names except for hidden and system indices. Create hidden index by REST client. + * Deprecate creation of dot-prefixed index names except for hidden and system indices. Create + * hidden index by REST client. * * @param client client connection * @param indexName test index name