You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by ro...@apache.org on 2022/12/05 15:24:58 UTC

[pinot] branch master updated: [multistage][testing] Basic math func test and some more between test (#9850)

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

rongr 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 d5211a1439 [multistage][testing] Basic math func test and some more between test (#9850)
d5211a1439 is described below

commit d5211a1439cf8a2cd1043df1535940c9e9daa7f2
Author: Yao Liu <ya...@startree.ai>
AuthorDate: Mon Dec 5 07:24:50 2022 -0800

    [multistage][testing] Basic math func test and some more between test (#9850)
---
 .../pinot/query/runtime/QueryRunnerTestBase.java   |  23 +-
 .../src/test/resources/queries/Comparisons.json    |  42 +-
 .../src/test/resources/queries/MathFuncs.json      | 439 +++++++++++++++++++++
 3 files changed, 493 insertions(+), 11 deletions(-)

diff --git a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/QueryRunnerTestBase.java b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/QueryRunnerTestBase.java
index 8a9286aa84..a0a5cedf9d 100644
--- a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/QueryRunnerTestBase.java
+++ b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/QueryRunnerTestBase.java
@@ -22,6 +22,7 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableMap;
+import com.google.common.math.DoubleMath;
 import java.math.BigDecimal;
 import java.sql.Connection;
 import java.sql.DriverManager;
@@ -59,10 +60,10 @@ import org.apache.pinot.spi.utils.StringUtil;
 import org.testng.Assert;
 
 
-
 public abstract class QueryRunnerTestBase extends QueryTestSet {
-  protected static final Random RANDOM_REQUEST_ID_GEN = new Random();
+  protected static final double DOUBLE_CMP_EPSILON = 0.0001d;
 
+  protected static final Random RANDOM_REQUEST_ID_GEN = new Random();
   protected QueryEnvironment _queryEnvironment;
   protected String _reducerHostname;
   protected int _reducerGrpcPort;
@@ -84,8 +85,8 @@ public abstract class QueryRunnerTestBase extends QueryTestSet {
         MailboxReceiveNode reduceNode = (MailboxReceiveNode) queryPlan.getQueryStageMap().get(stageId);
         mailboxReceiveOperator = QueryDispatcher.createReduceStageOperator(_mailboxService,
             queryPlan.getStageMetadataMap().get(reduceNode.getSenderStageId()).getServerInstances(),
-            Long.parseLong(requestMetadataMap.get(QueryConfig.KEY_OF_BROKER_REQUEST_ID)),
-            reduceNode.getSenderStageId(), reduceNode.getDataSchema(), "localhost", _reducerGrpcPort,
+            Long.parseLong(requestMetadataMap.get(QueryConfig.KEY_OF_BROKER_REQUEST_ID)), reduceNode.getSenderStageId(),
+            reduceNode.getDataSchema(), "localhost", _reducerGrpcPort,
             Long.parseLong(requestMetadataMap.get(QueryConfig.KEY_OF_BROKER_REQUEST_TIMEOUT_MS)));
       } else {
         for (ServerInstance serverInstance : queryPlan.getStageMetadataMap().get(stageId).getServerInstances()) {
@@ -96,8 +97,8 @@ public abstract class QueryRunnerTestBase extends QueryTestSet {
       }
     }
     Preconditions.checkNotNull(mailboxReceiveOperator);
-    return QueryDispatcher.toResultTable(QueryDispatcher.reduceMailboxReceive(mailboxReceiveOperator,
-            CommonConstants.Broker.DEFAULT_BROKER_TIMEOUT_MS),
+    return QueryDispatcher.toResultTable(
+        QueryDispatcher.reduceMailboxReceive(mailboxReceiveOperator, CommonConstants.Broker.DEFAULT_BROKER_TIMEOUT_MS),
         queryPlan.getQueryResultFields(), queryPlan.getQueryStageMap().get(0).getDataSchema()).getRows();
   }
 
@@ -137,8 +138,14 @@ public abstract class QueryRunnerTestBase extends QueryTestSet {
       } else if (l instanceof Long) {
         return Long.compare((Long) l, ((Number) r).longValue());
       } else if (l instanceof Float) {
+        if (DoubleMath.fuzzyEquals((Float) l, ((Number) r).floatValue(), DOUBLE_CMP_EPSILON)) {
+          return 0;
+        }
         return Float.compare((Float) l, ((Number) r).floatValue());
       } else if (l instanceof Double) {
+        if (DoubleMath.fuzzyEquals((Double) l, ((Number) r).doubleValue(), DOUBLE_CMP_EPSILON)) {
+          return 0;
+        }
         return Double.compare((Double) l, ((Number) r).doubleValue());
       } else if (l instanceof String) {
         return ((String) l).compareTo((String) r);
@@ -178,8 +185,8 @@ public abstract class QueryRunnerTestBase extends QueryTestSet {
               Arrays.toString(resultRow)));
       for (int j = 0; j < resultRow.length; j++) {
         Assert.assertEquals(valueComp.compare(resultRow[j], expectedRow[j]), 0,
-            "Not match at (" + i + "," + j + ")! Expected: " + Arrays.toString(expectedRow)
-                + " Actual: " + Arrays.toString(resultRow));
+            "Not match at (" + i + "," + j + ")! Expected: " + Arrays.toString(expectedRow) + " Actual: "
+                + Arrays.toString(resultRow));
       }
     }
   }
diff --git a/pinot-query-runtime/src/test/resources/queries/Comparisons.json b/pinot-query-runtime/src/test/resources/queries/Comparisons.json
index d87ed6a634..05368cf014 100644
--- a/pinot-query-runtime/src/test/resources/queries/Comparisons.json
+++ b/pinot-query-runtime/src/test/resources/queries/Comparisons.json
@@ -390,8 +390,18 @@
     "queries": [
       { "sql": "SELECT val BETWEEN small AND big FROM {tbl}" },
       { "sql": "SELECT val BETWEEN big AND small FROM {tbl}" },
+      { "sql": "SELECT val BETWEEN 2 AND 3 FROM {tbl}" },
+      { "sql": "SELECT val BETWEEN 3 AND 2 FROM {tbl}" },
+      { "sql": "SELECT 3 BETWEEN small AND big FROM {tbl}" },
       { "sql": "SELECT val NOT BETWEEN small AND big FROM {tbl}" },
       { "sql": "SELECT val NOT BETWEEN big AND small FROM {tbl}" },
+      {
+        "ignored": true,
+        "sql": "SELECT val NOT BETWEEN 2 AND 3 FROM {tbl}",
+        "comment": "Somehow it failed with Range is not implemented yet"
+      },
+      { "sql": "SELECT val NOT BETWEEN 3 AND 2 FROM {tbl}" },
+      { "sql": "SELECT 3 NOT BETWEEN small AND big FROM {tbl}" },
       {
         "ignored": true,
         "comment": "SYMMETRIC not supported",
@@ -443,6 +453,7 @@
     },
     "queries": [
       { "sql": "SELECT val BETWEEN small AND big FROM {tbl}" },
+      { "sql": "SELECT val BETWEEN 0.0 AND 3.0 FROM {tbl}" },
       { "sql": "SELECT val BETWEEN big AND small FROM {tbl}" },
       { "sql": "SELECT val NOT BETWEEN small AND big FROM {tbl}" },
       { "sql": "SELECT val NOT BETWEEN big AND small FROM {tbl}" }
@@ -467,7 +478,8 @@
       { "sql": "SELECT val BETWEEN small AND big FROM {tbl}" },
       { "sql": "SELECT val BETWEEN big AND small FROM {tbl}" },
       { "sql": "SELECT val NOT BETWEEN small AND big FROM {tbl}" },
-      { "sql": "SELECT val NOT BETWEEN big AND small FROM {tbl}" }
+      { "sql": "SELECT val NOT BETWEEN big AND small FROM {tbl}" },
+      { "sql": "SELECT val BETWEEN 0.0 AND 3.0 FROM {tbl}" }
     ]
   },
   "between_numerics": {
@@ -490,7 +502,8 @@
       { "sql": "SELECT val BETWEEN small AND big FROM {tbl}" },
       { "sql": "SELECT val BETWEEN big AND small FROM {tbl}" },
       { "sql": "SELECT val NOT BETWEEN small AND big FROM {tbl}" },
-      { "sql": "SELECT val NOT BETWEEN big AND small FROM {tbl}" }
+      { "sql": "SELECT val NOT BETWEEN big AND small FROM {tbl}" },
+      { "sql": "SELECT val BETWEEN 0.0 AND 3.0 FROM {tbl}" }
     ]
   },
   "between_different_types": {
@@ -510,7 +523,30 @@
     "queries": [
       { "sql": "SELECT a BETWEEN b AND c FROM {tbl}" },
       { "sql": "SELECT b BETWEEN c AND a FROM {tbl}" },
-      { "sql": "SELECT c BETWEEN a AND b FROM {tbl}" }
+      { "sql": "SELECT c BETWEEN a AND b FROM {tbl}" },
+      { "sql": "SELECT c BETWEEN 1 AND 3.0 FROM {tbl}" }
+    ]
+  },
+  "between_strings": {
+    "psql": "9.2",
+    "tables": {
+      "tbl": {
+        "schema": [
+          {"name": "a", "type": "STRING"},
+          {"name": "b", "type": "STRING"},
+          {"name": "c", "type": "STRING"}
+        ],
+        "inputs": [
+          ["aa", "bb", "cc"], ["ee", "ff", "cc"], ["b", "d", "cc"]
+        ]
+      }
+    },
+    "queries": [
+      { "sql": "SELECT a BETWEEN b AND c FROM {tbl}" },
+      { "sql": "SELECT b BETWEEN c AND a FROM {tbl}" },
+      { "sql": "SELECT c BETWEEN a AND b FROM {tbl}" },
+      { "sql": "SELECT a BETWEEN 'a' AND 'c' FROM {tbl}" },
+      { "sql" : "SELECT 'c' BETWEEN 'a' AND 'b' FROM {tbl}"}
     ]
   }
 }
diff --git a/pinot-query-runtime/src/test/resources/queries/MathFuncs.json b/pinot-query-runtime/src/test/resources/queries/MathFuncs.json
new file mode 100644
index 0000000000..1a9a043c0d
--- /dev/null
+++ b/pinot-query-runtime/src/test/resources/queries/MathFuncs.json
@@ -0,0 +1,439 @@
+{
+  "addition": {
+    "tables": {
+      "numTbl": {
+        "schema": [
+          {"name": "intCol", "type": "INT"},
+          {"name": "longCol", "type": "LONG"},
+          {"name": "doubleCol", "type": "DOUBLE"},
+          {"name": "floatCol", "type": "FLOAT"}
+        ],
+        "inputs": [
+          [0, 0, 0.1, 3.2],
+          [123, 321, 4.2, 3.0],
+          [-456, -2, 1.1, 7.7],
+          [123, -456, 3.6, 9.1]
+        ]
+      }
+    },
+    "queries": [
+      {
+        "description": "test addition on integer columns",
+        "sql": "SELECT intCol + longCol FROM {numTbl}"
+      },
+      {
+        "description": "test addition on int literal with columns",
+        "sql": "SELECT intCol + 10 FROM {numTbl}"
+      },
+      {
+        "description": "test addition on double literal with columns",
+        "sql": "SELECT intCol + 1.2 FROM {numTbl}"
+      },
+      {
+        "description": "test addition on literals",
+        "sql": "SELECT 3 + 2.4 FROM {numTbl}"
+      },
+      {
+        "description": "test addition on literals",
+        "sql": "SELECT 3 + 2 FROM {numTbl}"
+      },
+      {
+        "description": "test addition on floating point",
+        "sql": "SELECT doubleCol + floatCol FROM {numTbl}"
+      },
+      {
+        "description": "test addition on floating point with literal",
+        "sql": "SELECT doubleCol + 2 FROM {numTbl}"
+      },
+      {
+        "description": "test addition on zero",
+        "sql": "SELECT doubleCol + 0 FROM {numTbl}"
+      },
+      {
+        "description": "test addition on doubleCol with intCol",
+        "sql": "SELECT doubleCol + intCol FROM {numTbl}"
+      }
+    ]
+  },
+  "subtraction": {
+    "tables": {
+      "numTbl": {
+        "schema": [
+          {"name": "intCol", "type": "INT"},
+          {"name": "longCol", "type": "LONG"},
+          {"name": "doubleCol", "type": "DOUBLE"},
+          {"name": "floatCol", "type": "FLOAT"}
+        ],
+        "inputs": [
+          [0, 0, 0.1, 3.2],
+          [123, 321, 4.2, 3.0],
+          [-456, -2, 1.1, 7.7],
+          [123, -456, 3.6, 9.1]
+        ]
+      }
+    },
+    "queries": [
+      {
+        "description": "test subtraction on integer columns",
+        "sql": "SELECT intCol - longCol FROM {numTbl}"
+      },
+      {
+        "description": "test subtraction on int literal with columns",
+        "sql": "SELECT intCol - 10 FROM {numTbl}"
+      },
+      {
+        "description": "test subtraction on double literal with columns",
+        "sql": "SELECT intCol - 1.2 FROM {numTbl}"
+      },
+      {
+        "description": "test subtraction on literals",
+        "sql": "SELECT 3 - 5 FROM {numTbl}"
+      },
+      {
+        "description": "test subtraction on literals",
+        "sql": "SELECT 3 - 2.4 FROM {numTbl}"
+      },
+      {
+        "description": "test subtraction on floating point",
+        "sql": "SELECT doubleCol - floatCol FROM {numTbl}"
+      },
+      {
+        "description": "test subtraction on floating point with literal",
+        "sql": "SELECT doubleCol - 2 FROM {numTbl}"
+      },
+      {
+        "description": "test subtraction on zero",
+        "sql": "SELECT doubleCol - 0 FROM {numTbl}"
+      },
+      {
+        "description": "test subtraction on doubleCol with intCol",
+        "sql": "SELECT doubleCol - intCol FROM {numTbl}"
+      }
+    ]
+  },
+  "multiply": {
+    "tables": {
+      "numTbl": {
+        "schema": [
+          {"name": "intCol", "type": "INT"},
+          {"name": "longCol", "type": "LONG"},
+          {"name": "doubleCol", "type": "DOUBLE"},
+          {"name": "floatCol", "type": "FLOAT"}
+        ],
+        "inputs": [
+          [0, 0, 0.1, 3.2],
+          [123, 321, 4.2, 3.0],
+          [-456, -2, 1.1, 7.7],
+          [123, -456, 3.6, 9.1]
+        ]
+      }
+    },
+    "queries": [
+      {
+        "description": "test multiply on integer columns",
+        "sql": "SELECT intCol * longCol FROM {numTbl}"
+      },
+      {
+        "description": "test multiply on int literal with columns",
+        "sql": "SELECT intCol * 10 FROM {numTbl}"
+      },
+      {
+        "description": "test multiply on double literal with columns",
+        "sql": "SELECT intCol * 1.2 FROM {numTbl}"
+      },
+      {
+        "description": "test multiply on literals",
+        "sql": "SELECT 3 * 5 FROM {numTbl}"
+      },
+      {
+        "description": "test multiply on literals",
+        "sql": "SELECT 3 * 2.4 FROM {numTbl}"
+      },
+      {
+        "description": "test multiply on floating point",
+        "sql": "SELECT doubleCol * floatCol FROM {numTbl}"
+      },
+      {
+        "description": "test multiply on floating point with literal",
+        "sql": "SELECT doubleCol * 2 FROM {numTbl}"
+      },
+      {
+        "description": "test multiply on zero",
+        "sql": "SELECT doubleCol * 0 FROM {numTbl}"
+      },
+      {
+        "description": "test multiply on doubleCol with intCol",
+        "sql": "SELECT doubleCol * intCol FROM {numTbl}"
+      },
+      {
+        "description": "test multiply on overflow",
+        "sql": "SELECT intCol * 1073741824 FROM {numTbl}"
+      }
+    ]
+  },
+  "division": {
+    "tables": {
+      "numTbl": {
+        "schema": [
+          {"name": "intCol", "type": "INT"},
+          {"name": "longCol", "type": "LONG"},
+          {"name": "doubleCol", "type": "DOUBLE"},
+          {"name": "floatCol", "type": "FLOAT"}
+        ],
+        "inputs": [
+          [0, 3, 0.1, 3.2],
+          [123, 321, 4.2, 3.0],
+          [-456, -2, 1.1, 7.7],
+          [123, -456, 3.6, 9.1]
+        ]
+      }
+    },
+    "queries": [
+      {
+        "ignored": true,
+        "comment": "should round on the integer but we return a floating point",
+        "description": "test divide on integer columns",
+        "sql": "SELECT intCol / longCol FROM {numTbl}"
+      },
+      {
+        "ignored": true,
+        "comment": "should round on the integer but we return a floating point",
+        "description": "test divide on int literal with columns",
+        "sql": "SELECT intCol / 10 FROM {numTbl}"
+      },
+      {
+        "description": "test divide on double literal with columns",
+        "sql": "SELECT intCol / 1.2 FROM {numTbl}"
+      },
+      {
+        "ignored": true,
+        "comment": "should round on the integer but we return a floating point",
+        "description": "test divide on literals",
+        "sql": "SELECT 3 / 5 FROM {numTbl}"
+      },
+      {
+        "description": "test divide on literals",
+        "sql": "SELECT 3 / 2.4 FROM {numTbl}"
+      },
+      {
+        "description": "test divide on floating point",
+        "sql": "SELECT doubleCol / floatCol FROM {numTbl}"
+      },
+      {
+        "description": "test divide on floating point with literal",
+        "sql": "SELECT doubleCol / 2 FROM {numTbl}"
+      },
+      {
+        "ignored": true,
+        "comment": "should return infinity but we throw an exception",
+        "description": "test divide by zero",
+        "sql": "SELECT doubleCol / 0 FROM {numTbl}"
+      },
+      {
+        "description": "test divide on doubleCol with intCol",
+        "sql": "SELECT intCol / doubleCol FROM {numTbl}"
+      },
+      {
+        "ignored": true,
+        "description": "test divide on overflow",
+        "comment": "somehow there is value diff",
+        "sql": "SELECT floatCol / 1e-15 FROM {numTbl}"
+      }
+    ]
+  },
+  "mod": {
+    "tables": {
+      "numTbl": {
+        "schema": [
+          {"name": "intCol", "type": "INT"},
+          {"name": "longCol", "type": "LONG"},
+          {"name": "doubleCol", "type": "DOUBLE"},
+          {"name": "floatCol", "type": "FLOAT"}
+        ],
+        "inputs": [
+          [0, 3, 0.1, 3.2],
+          [123, 321, 4.2, 3.0],
+          [-456, -2, 1.1, 7.7],
+          [123, -456, 3.6, 9.1]
+        ]
+      }
+    },
+    "queries": [
+      {
+        "ignored": true,
+        "comment": "we are returning -0.0 for some reason",
+        "description": "test mod on integer columns",
+        "sql": "SELECT intCol % longCol FROM {numTbl}"
+      },
+      {
+        "description": "test mod on int literal with columns",
+        "sql": "SELECT intCol %  10 FROM {numTbl}"
+      },
+      {
+        "ignored": true,
+        "comment": "should return 0 for 0 value but we are not",
+        "description": "test mod on floating point literal with columns",
+        "sql": "SELECT intCol %  1.2 FROM {numTbl}"
+      },
+      {
+        "description": "test mod on literals",
+        "sql": "SELECT 3 %  5 FROM {numTbl}"
+      },
+      {
+        "description": "test mod on literals",
+        "sql": "SELECT 3 % 2.4 FROM {numTbl}"
+      },
+      {
+        "ignored": true,
+        "comment": "Conversion to relational algebra failed to preserve datatypes:",
+        "description": "test mode on floating point",
+        "sql": "SELECT doubleCol % floatCol FROM {numTbl}"
+      },
+      {
+        "ignored": true,
+        "description": "test divide on floating point with literal",
+        "comment": "Conversion mode relational algebra failed to preserve datatypes:",
+        "sql": "SELECT doubleCol % 2 FROM {numTbl}"
+      },
+      {
+        "ignored": true,
+        "comment": "Conversion to relational algebra failed to preserve datatypes:",
+        "description": "test mode by zero",
+        "expectedException": ".*Division by zero.*",
+        "sql": "SELECT doubleCol % 0 FROM {numTbl}"
+      },
+      {
+        "ignored": true,
+        "comment": "Conversion to relational algebra failed to preserve datatypes:",
+        "description": "test mod on doubleCol with intCol",
+        "sql": "SELECT doubleCol % intCol FROM {numTbl}"
+      }
+    ]
+  },
+  "exp": {
+    "tables": {
+      "numTbl": {
+        "schema": [
+          {"name": "intCol", "type": "INT"},
+          {"name": "longCol", "type": "LONG"},
+          {"name": "doubleCol", "type": "DOUBLE"},
+          {"name": "floatCol", "type": "FLOAT"}
+        ],
+        "inputs": [
+          [0, 3, 0.1, 3.2],
+          [123, 321, 4.2, 3.0],
+          [-456, -2, 1.1, 7.7],
+          [123, -456, 3.6, 9.1]
+        ]
+      }
+    },
+    "queries": [
+      {
+        "description": "test exp on integer columns",
+        "sql": "SELECT exp(intCol) FROM {numTbl}"
+      },
+      {
+        "description": "test exp on long columns",
+        "sql": "SELECT exp(longCol) FROM {numTbl}"
+      },
+      {
+        "description": "test exp on double columns",
+        "sql": "SELECT exp(doubleCol) FROM {numTbl}"
+      },
+      {
+        "description": "test exp on float columns",
+        "sql": "SELECT exp(floatCol) FROM {numTbl}"
+      },
+      {
+        "ignored": true,
+        "comment": "Argument cannot be literal for transform function: exp:",
+        "description": "test exp on literal",
+        "sql": "SELECT exp(2.0) FROM {numTbl}"
+      }
+    ]
+  },
+  "floor": {
+    "tables": {
+      "numTbl": {
+        "schema": [
+          {"name": "intCol", "type": "INT"},
+          {"name": "longCol", "type": "LONG"},
+          {"name": "doubleCol", "type": "DOUBLE"},
+          {"name": "floatCol", "type": "FLOAT"}
+        ],
+        "inputs": [
+          [0, 3, 0.1, 3.2],
+          [123, 321, 4.2, 3.0],
+          [-456, -2, 1.1, 7.7],
+          [123, -456, 3.6, 9.1]
+        ]
+      }
+    },
+    "queries": [
+      {
+        "description": "test floor on integer columns",
+        "sql": "SELECT floor(intCol) FROM {numTbl}"
+      },
+      {
+        "description": "test floor on long columns",
+        "sql": "SELECT floor(longCol) FROM {numTbl}"
+      },
+      {
+        "description": "test floor on double columns",
+        "sql": "SELECT floor(doubleCol) FROM {numTbl}"
+      },
+      {
+        "description": "test floor on float columns",
+        "sql": "SELECT floor(floatCol) FROM {numTbl}"
+      },
+      {
+        "ignored": true,
+        "comment": "Caught exception while initializing transform function: floor",
+        "description": "test exp on literal",
+        "sql": "SELECT floor(2.0) FROM {numTbl}"
+      }
+    ]
+  },
+  "ceil": {
+    "tables": {
+      "numTbl": {
+        "schema": [
+          {"name": "intCol", "type": "INT"},
+          {"name": "longCol", "type": "LONG"},
+          {"name": "doubleCol", "type": "DOUBLE"},
+          {"name": "floatCol", "type": "FLOAT"}
+        ],
+        "inputs": [
+          [0, 3, 0.1, 3.2],
+          [123, 321, 4.2, 3.0],
+          [-456, -2, 1.1, 7.7],
+          [123, -456, 3.6, 9.1]
+        ]
+      }
+    },
+    "queries": [
+      {
+        "description": "test ceil on integer columns",
+        "sql": "SELECT ceil(intCol) FROM {numTbl}"
+      },
+      {
+        "description": "test ceil on long columns",
+        "sql": "SELECT ceil(longCol) FROM {numTbl}"
+      },
+      {
+        "description": "test ceil on double columns",
+        "sql": "SELECT ceil(doubleCol) FROM {numTbl}"
+      },
+      {
+        "description": "test ceil on float columns",
+        "sql": "SELECT ceil(floatCol) FROM {numTbl}"
+      },
+      {
+        "ignored": true,
+        "comment": "Caught exception while initializing transform function: ceil",
+        "description": "test exp on literal",
+        "sql": "SELECT ceil(2.0) FROM {numTbl}"
+      }
+    ]
+  }
+}


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