You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by ja...@apache.org on 2022/11/05 05:08:02 UTC

[pinot] branch master updated: [FLaky test] Fix OfflineClusterIntegrationTest.testLiteralOnlyFunc() (#9736)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 34a5c944bd [FLaky test] Fix OfflineClusterIntegrationTest.testLiteralOnlyFunc() (#9736)
34a5c944bd is described below

commit 34a5c944bd6ebb7e1eb7b6738d52ca853bb47424
Author: Xiaotian (Jackie) Jiang <17...@users.noreply.github.com>
AuthorDate: Fri Nov 4 22:07:56 2022 -0700

    [FLaky test] Fix OfflineClusterIntegrationTest.testLiteralOnlyFunc() (#9736)
---
 .../tests/OfflineClusterIntegrationTest.java       | 112 ++++++++++-----------
 1 file changed, 53 insertions(+), 59 deletions(-)

diff --git a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterIntegrationTest.java b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterIntegrationTest.java
index a404c10ad8..bcecc3696a 100644
--- a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterIntegrationTest.java
+++ b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterIntegrationTest.java
@@ -97,7 +97,6 @@ public class OfflineClusterIntegrationTest extends BaseClusterIntegrationTestSet
   private static final int NUM_BROKERS = 1;
   private static final int NUM_SERVERS = 1;
   private static final int NUM_SEGMENTS = 12;
-  private static final long ONE_HOUR_IN_MS = TimeUnit.HOURS.toMillis(1);
   private static final String SEGMENT_UPLOAD_TEST_TABLE = "segmentUploadTestTable";
 
   // For table config refresh test, make an expensive query to ensure the query won't finish in 5ms
@@ -961,69 +960,64 @@ public class OfflineClusterIntegrationTest extends BaseClusterIntegrationTestSet
   @Test
   public void testLiteralOnlyFunc()
       throws Exception {
-    long currentTsMin = System.currentTimeMillis();
-    long oneHourAgoTsMin = currentTsMin - ONE_HOUR_IN_MS;
+    long queryStartTimeMs = System.currentTimeMillis();
     String sqlQuery =
         "SELECT 1, now() as currentTs, ago('PT1H') as oneHourAgoTs, 'abc', toDateTime(now(), 'yyyy-MM-dd z') as "
             + "today, now(), ago('PT1H'), encodeUrl('key1=value 1&key2=value@!$2&key3=value%3') as encodedUrl, "
             + "decodeUrl('key1%3Dvalue+1%26key2%3Dvalue%40%21%242%26key3%3Dvalue%253') as decodedUrl, toBase64"
             + "(toUtf8('hello!')) as toBase64, fromUtf8(fromBase64('aGVsbG8h')) as fromBase64";
-    JsonNode response = postQuery(sqlQuery, _brokerBaseApiUrl);
-    long currentTsMax = System.currentTimeMillis();
-    long oneHourAgoTsMax = currentTsMax - ONE_HOUR_IN_MS;
-
-    assertEquals(response.get("resultTable").get("dataSchema").get("columnNames").get(0).asText(), "1");
-    assertEquals(response.get("resultTable").get("dataSchema").get("columnNames").get(1).asText(), "currentTs");
-    assertEquals(response.get("resultTable").get("dataSchema").get("columnNames").get(2).asText(), "oneHourAgoTs");
-    assertEquals(response.get("resultTable").get("dataSchema").get("columnNames").get(3).asText(), "abc");
-    assertEquals(response.get("resultTable").get("dataSchema").get("columnNames").get(4).asText(), "today");
-    String nowColumnName = response.get("resultTable").get("dataSchema").get("columnNames").get(5).asText();
-    String oneHourAgoColumnName = response.get("resultTable").get("dataSchema").get("columnNames").get(6).asText();
-    assertEquals(response.get("resultTable").get("dataSchema").get("columnNames").get(7).asText(), "encodedUrl");
-    assertEquals(response.get("resultTable").get("dataSchema").get("columnNames").get(8).asText(), "decodedUrl");
-    assertEquals(response.get("resultTable").get("dataSchema").get("columnNames").get(9).asText(), "toBase64");
-    assertEquals(response.get("resultTable").get("dataSchema").get("columnNames").get(10).asText(), "fromBase64");
-    assertTrue(Long.parseLong(nowColumnName) > currentTsMin);
-    assertTrue(Long.parseLong(nowColumnName) < currentTsMax);
-    assertTrue(Long.parseLong(oneHourAgoColumnName) > oneHourAgoTsMin);
-    assertTrue(Long.parseLong(oneHourAgoColumnName) < oneHourAgoTsMax);
-
-    assertEquals(response.get("resultTable").get("dataSchema").get("columnDataTypes").get(0).asText(), "LONG");
-    assertEquals(response.get("resultTable").get("dataSchema").get("columnDataTypes").get(1).asText(), "LONG");
-    assertEquals(response.get("resultTable").get("dataSchema").get("columnDataTypes").get(2).asText(), "LONG");
-    assertEquals(response.get("resultTable").get("dataSchema").get("columnDataTypes").get(3).asText(), "STRING");
-    assertEquals(response.get("resultTable").get("dataSchema").get("columnDataTypes").get(4).asText(), "STRING");
-    assertEquals(response.get("resultTable").get("dataSchema").get("columnDataTypes").get(5).asText(), "LONG");
-    assertEquals(response.get("resultTable").get("dataSchema").get("columnDataTypes").get(6).asText(), "LONG");
-    assertEquals(response.get("resultTable").get("dataSchema").get("columnDataTypes").get(7).asText(), "STRING");
-    assertEquals(response.get("resultTable").get("dataSchema").get("columnDataTypes").get(8).asText(), "STRING");
-    assertEquals(response.get("resultTable").get("dataSchema").get("columnDataTypes").get(9).asText(), "STRING");
-    assertEquals(response.get("resultTable").get("dataSchema").get("columnDataTypes").get(10).asText(), "STRING");
-
-    int first = response.get("resultTable").get("rows").get(0).get(0).asInt();
-    long second = response.get("resultTable").get("rows").get(0).get(1).asLong();
-    long third = response.get("resultTable").get("rows").get(0).get(2).asLong();
-    String fourth = response.get("resultTable").get("rows").get(0).get(3).asText();
-    assertEquals(first, 1);
-    assertTrue(second > currentTsMin);
-    assertTrue(second < currentTsMax);
-    assertTrue(third > oneHourAgoTsMin);
-    assertTrue(third < oneHourAgoTsMax);
-    assertEquals(fourth, "abc");
-    String todayStr = response.get("resultTable").get("rows").get(0).get(4).asText();
-    String expectedTodayStr =
-        Instant.now().atZone(ZoneId.of("UTC")).format(DateTimeFormatter.ofPattern("yyyy-MM-dd z"));
-    assertEquals(todayStr, expectedTodayStr);
-    long nowValue = response.get("resultTable").get("rows").get(0).get(5).asLong();
-    assertEquals(nowValue, Long.parseLong(nowColumnName));
-    long oneHourAgoValue = response.get("resultTable").get("rows").get(0).get(6).asLong();
-    assertEquals(oneHourAgoValue, Long.parseLong(oneHourAgoColumnName));
-    assertEquals(response.get("resultTable").get("rows").get(0).get(7).asText(),
-        "key1%3Dvalue+1%26key2%3Dvalue%40%21%242%26key3%3Dvalue%253");
-    assertEquals(response.get("resultTable").get("rows").get(0).get(8).asText(),
-        "key1=value 1&key2=value@!$2&key3=value%3");
-    assertEquals(response.get("resultTable").get("rows").get(0).get(9).asText(), "aGVsbG8h");
-    assertEquals(response.get("resultTable").get("rows").get(0).get(10).asText(), "hello!");
+    JsonNode response = postQuery(sqlQuery);
+    long queryEndTimeMs = System.currentTimeMillis();
+
+    JsonNode resultTable = response.get("resultTable");
+    JsonNode dataSchema = resultTable.get("dataSchema");
+    JsonNode columnNames = dataSchema.get("columnNames");
+    assertEquals(columnNames.get(0).asText(), "1");
+    assertEquals(columnNames.get(1).asText(), "currentTs");
+    assertEquals(columnNames.get(2).asText(), "oneHourAgoTs");
+    assertEquals(columnNames.get(3).asText(), "abc");
+    assertEquals(columnNames.get(4).asText(), "today");
+    String nowColumnName = columnNames.get(5).asText();
+    String oneHourAgoColumnName = columnNames.get(6).asText();
+    assertEquals(columnNames.get(7).asText(), "encodedUrl");
+    assertEquals(columnNames.get(8).asText(), "decodedUrl");
+    assertEquals(columnNames.get(9).asText(), "toBase64");
+    assertEquals(columnNames.get(10).asText(), "fromBase64");
+
+    JsonNode columnDataTypes = dataSchema.get("columnDataTypes");
+    assertEquals(columnDataTypes.get(0).asText(), "LONG");
+    assertEquals(columnDataTypes.get(1).asText(), "LONG");
+    assertEquals(columnDataTypes.get(2).asText(), "LONG");
+    assertEquals(columnDataTypes.get(3).asText(), "STRING");
+    assertEquals(columnDataTypes.get(4).asText(), "STRING");
+    assertEquals(columnDataTypes.get(5).asText(), "LONG");
+    assertEquals(columnDataTypes.get(6).asText(), "LONG");
+    assertEquals(columnDataTypes.get(7).asText(), "STRING");
+    assertEquals(columnDataTypes.get(8).asText(), "STRING");
+    assertEquals(columnDataTypes.get(9).asText(), "STRING");
+    assertEquals(columnDataTypes.get(10).asText(), "STRING");
+
+    JsonNode results = resultTable.get("rows").get(0);
+    assertEquals(results.get(0).asInt(), 1);
+    long nowResult = results.get(1).asLong();
+    assertTrue(nowResult >= queryStartTimeMs);
+    assertTrue(nowResult <= queryEndTimeMs);
+    long oneHourAgoResult = results.get(2).asLong();
+    assertTrue(oneHourAgoResult >= queryStartTimeMs - TimeUnit.HOURS.toMillis(1));
+    assertTrue(oneHourAgoResult <= queryEndTimeMs - TimeUnit.HOURS.toMillis(1));
+    assertEquals(results.get(3).asText(), "abc");
+    String queryStartTimeDay = Instant.ofEpochMilli(queryStartTimeMs).atZone(ZoneId.of("UTC"))
+        .format(DateTimeFormatter.ofPattern("yyyy-MM-dd z"));
+    String queryEndTimeDay = Instant.ofEpochMilli(queryEndTimeMs).atZone(ZoneId.of("UTC"))
+        .format(DateTimeFormatter.ofPattern("yyyy-MM-dd z"));
+    String dateTimeResult = results.get(4).asText();
+    assertTrue(dateTimeResult.equals(queryStartTimeDay) || dateTimeResult.equals(queryEndTimeDay));
+    assertEquals(results.get(5).asText(), nowColumnName);
+    assertEquals(results.get(6).asText(), oneHourAgoColumnName);
+    assertEquals(results.get(7).asText(), "key1%3Dvalue+1%26key2%3Dvalue%40%21%242%26key3%3Dvalue%253");
+    assertEquals(results.get(8).asText(), "key1=value 1&key2=value@!$2&key3=value%3");
+    assertEquals(results.get(9).asText(), "aGVsbG8h");
+    assertEquals(results.get(10).asText(), "hello!");
   }
 
   @Test(dependsOnMethods = "testBloomFilterTriggering")


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