You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by si...@apache.org on 2022/11/09 00:49:53 UTC

[pinot] branch master updated: added test for CASE (#9764)

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

siddteotia 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 c48926a13b added test for CASE (#9764)
c48926a13b is described below

commit c48926a13bdca2742e5dc58a053744371d6a8369
Author: Sabrina Zhao <yi...@linkedin.com>
AuthorDate: Tue Nov 8 16:49:47 2022 -0800

    added test for CASE (#9764)
---
 .../LiteralOnlyBrokerRequestTest.java              |  2 +-
 .../pinot/sql/parsers/CalciteSqlCompilerTest.java  |  6 ++---
 .../pinot/queries/IsSubnetOfQueriesTest.java       | 26 +++++++++++++++++++++-
 3 files changed, 29 insertions(+), 5 deletions(-)

diff --git a/pinot-broker/src/test/java/org/apache/pinot/broker/requesthandler/LiteralOnlyBrokerRequestTest.java b/pinot-broker/src/test/java/org/apache/pinot/broker/requesthandler/LiteralOnlyBrokerRequestTest.java
index 28c4ef5466..389db74fb6 100644
--- a/pinot-broker/src/test/java/org/apache/pinot/broker/requesthandler/LiteralOnlyBrokerRequestTest.java
+++ b/pinot-broker/src/test/java/org/apache/pinot/broker/requesthandler/LiteralOnlyBrokerRequestTest.java
@@ -377,7 +377,7 @@ public class LiteralOnlyBrokerRequestTest {
 
     // second argument should not be a prefix
     request = JsonUtils.stringToJsonNode(
-        "{\"sql\":\"SELECT isSubnetOf('10.3.168.0/22', '3.175.47.239/26') as" + " booleanCol\"}");
+        "{\"sql\":\"SELECT isSubnetOf('1.2.3.128/26', '3.175.47.239/26') as" + " booleanCol\"}");
     requestStats = Tracing.getTracer().createRequestScope();
     brokerResponse = requestHandler.handleRequest(request, null, requestStats);
     Assert.assertTrue(
diff --git a/pinot-common/src/test/java/org/apache/pinot/sql/parsers/CalciteSqlCompilerTest.java b/pinot-common/src/test/java/org/apache/pinot/sql/parsers/CalciteSqlCompilerTest.java
index 5ffe1b29be..e74a1d7c2d 100644
--- a/pinot-common/src/test/java/org/apache/pinot/sql/parsers/CalciteSqlCompilerTest.java
+++ b/pinot-common/src/test/java/org/apache/pinot/sql/parsers/CalciteSqlCompilerTest.java
@@ -2075,17 +2075,17 @@ public class CalciteSqlCompilerTest {
     result = pinotQuery.getSelectList().get(0).getLiteral().getBoolValue();
     Assert.assertTrue(result);
 
-    query = "select isSubnetOf('10.3.168.0/22', '10.3.168.123') from mytable";
+    query = "select isSubnetOf('10.3.128.1/22', '10.3.128.123') from mytable";
     pinotQuery = CalciteSqlParser.compileToPinotQuery(query);
     result = pinotQuery.getSelectList().get(0).getLiteral().getBoolValue();
     Assert.assertTrue(result);
 
-    query = "select isSubnetOf('10.3.168.0/22', '10.3.171.255') from mytable";
+    query = "select isSubnetOf('10.3.128.1/22', '10.3.131.255') from mytable";
     pinotQuery = CalciteSqlParser.compileToPinotQuery(query);
     result = pinotQuery.getSelectList().get(0).getLiteral().getBoolValue();
     Assert.assertTrue(result);
 
-    query = "select isSubnetOf('10.3.168.0/22', '1.2.3.1') from mytable";
+    query = "select isSubnetOf('10.3.128.1/22', '1.2.3.1') from mytable";
     pinotQuery = CalciteSqlParser.compileToPinotQuery(query);
     result = pinotQuery.getSelectList().get(0).getLiteral().getBoolValue();
     Assert.assertFalse(result);
diff --git a/pinot-core/src/test/java/org/apache/pinot/queries/IsSubnetOfQueriesTest.java b/pinot-core/src/test/java/org/apache/pinot/queries/IsSubnetOfQueriesTest.java
index 6337147b0a..4a5d8806dc 100644
--- a/pinot-core/src/test/java/org/apache/pinot/queries/IsSubnetOfQueriesTest.java
+++ b/pinot-core/src/test/java/org/apache/pinot/queries/IsSubnetOfQueriesTest.java
@@ -107,7 +107,7 @@ public class IsSubnetOfQueriesTest extends BaseQueriesTest {
     addIPv4Row(records, "96.141.228.254/26", "96.141.227.254", false);
     addIPv4Row(records, "3.175.47.128/26", "3.175.48.178", false);
 
-    addIPv4Row(records, "10.3.168.0/22", "1.2.3.1", false);
+    addIPv4Row(records, "10.3.128.1/22", "1.2.3.1", false);
     addIPv4Row(records, "1.2.3.128/26", "1.2.5.1", false);
     addIPv4Row(records, "1.2.3.128/26", "1.1.3.1", false);
 
@@ -174,6 +174,30 @@ public class IsSubnetOfQueriesTest extends BaseQueriesTest {
     rows = resultTable.getRows();
     assertEquals(rows.size(), 1);
     assertEquals(rows.get(0)[0], _expectedNumberIpv6Contains * 4);
+
+    // called in CASE statement
+    query = String.format("select (case when isSubnetOf('105.25.245.115/27', %s) then 'case1' when "
+        + "isSubnetOf('2001:db8:85a3::8a2e:370:7334/62', %s) then 'case2' else 'case3' "
+        + "end) as col1 from %s order by col1 limit 100", IPv4_ADDRESS_COLUMN, IPv6_ADDRESS_COLUMN, RAW_TABLE_NAME);
+    brokerResponse = getBrokerResponse(query);
+    resultTable = brokerResponse.getResultTable();
+    dataSchema = resultTable.getDataSchema();
+    assertEquals(dataSchema.getColumnDataTypes(), new DataSchema.ColumnDataType[]{
+        DataSchema.ColumnDataType.STRING
+    });
+    rows = resultTable.getRows();
+    for (int i = 0; i < rows.size(); i++) {
+      Object[] row = rows.get(i);
+      if (i < 4) {
+        // case 1
+        assertEquals("case1", row[0]);
+      } else if (i < 8) {
+        // case 2
+        assertEquals("case2", row[0]);
+      } else {
+        assertEquals("case3", row[0]);
+      }
+    }
   }
 
   private void addIPv4Row(List<GenericRow> records, String prefix, String address, boolean expectedBool) {


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