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

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


The following commit(s) were added to refs/heads/master by this push:
     new 2d258a95ad Fix `EARLIEST_BY`/`LATEST_BY` signature and include 
function name in signature. (#14352)
2d258a95ad is described below

commit 2d258a95ad7e63191ae4d40a6d61f045df9f09fa
Author: Abhishek Radhakrishnan <[email protected]>
AuthorDate: Tue Jun 6 09:41:05 2023 -0700

    Fix `EARLIEST_BY`/`LATEST_BY` signature and include function name in 
signature. (#14352)
    
    * Fix EarliestLatestBySqlAggregator signature; Include function name for 
all signatures.
    
    * Single quote function signatures, space between args and remove \n.
    
    * fixup UT assertion
---
 .../CompressedBigDecimalSqlAggregatorBase.java     |  6 +++---
 .../sql/TDigestGenerateSketchSqlAggregator.java    |  2 +-
 .../sql/TDigestSketchQuantileSqlAggregator.java    |  4 ++--
 .../HllSketchApproxCountDistinctSqlAggregator.java |  2 +-
 .../hll/sql/HllSketchObjectSqlAggregator.java      |  2 +-
 .../DoublesSketchApproxQuantileSqlAggregator.java  |  4 ++--
 .../sql/DoublesSketchObjectSqlAggregator.java      |  2 +-
 ...hetaSketchApproxCountDistinctSqlAggregator.java |  2 +-
 .../theta/sql/ThetaSketchObjectSqlAggregator.java  |  2 +-
 .../bloom/sql/BloomFilterSqlAggregator.java        |  2 +-
 ...FixedBucketsHistogramQuantileSqlAggregator.java |  4 ++--
 .../histogram/sql/QuantileSqlAggregator.java       |  4 ++--
 .../builtin/ArrayConcatSqlAggregator.java          |  2 +-
 .../aggregation/builtin/ArraySqlAggregator.java    |  2 +-
 .../builtin/EarliestLatestAnySqlAggregator.java    |  2 +-
 .../builtin/EarliestLatestBySqlAggregator.java     |  4 ++--
 .../aggregation/builtin/StringSqlAggregator.java   |  4 ++--
 .../builtin/ArrayAppendOperatorConversion.java     |  2 +-
 .../builtin/ArrayConcatOperatorConversion.java     |  2 +-
 .../builtin/ArrayContainsOperatorConversion.java   |  2 +-
 .../builtin/ArrayOffsetOfOperatorConversion.java   |  2 +-
 .../builtin/ArrayOffsetOperatorConversion.java     |  2 +-
 .../builtin/ArrayOrdinalOfOperatorConversion.java  |  2 +-
 .../builtin/ArrayOrdinalOperatorConversion.java    |  2 +-
 .../builtin/ArrayOverlapOperatorConversion.java    |  2 +-
 .../builtin/ArrayPrependOperatorConversion.java    |  2 +-
 .../builtin/ArraySliceOperatorConversion.java      |  4 ++--
 .../builtin/ArrayToStringOperatorConversion.java   |  2 +-
 .../ComplexDecodeBase64OperatorConversion.java     |  2 +-
 .../IPv4AddressMatchOperatorConversion.java        |  8 +++++++-
 .../MultiValueStringOperatorConversions.java       | 22 +++++++++++-----------
 .../builtin/NestedDataOperatorConversions.java     |  8 ++++----
 .../builtin/StringToArrayOperatorConversion.java   |  2 +-
 .../TimeInIntervalConvertletFactory.java           |  2 +-
 .../apache/druid/sql/calcite/CalciteQueryTest.java |  2 +-
 35 files changed, 63 insertions(+), 57 deletions(-)

diff --git 
a/extensions-contrib/compressed-bigdecimal/src/main/java/org/apache/druid/compressedbigdecimal/CompressedBigDecimalSqlAggregatorBase.java
 
b/extensions-contrib/compressed-bigdecimal/src/main/java/org/apache/druid/compressedbigdecimal/CompressedBigDecimalSqlAggregatorBase.java
index 7f9f426b69..4a61f0271e 100644
--- 
a/extensions-contrib/compressed-bigdecimal/src/main/java/org/apache/druid/compressedbigdecimal/CompressedBigDecimalSqlAggregatorBase.java
+++ 
b/extensions-contrib/compressed-bigdecimal/src/main/java/org/apache/druid/compressedbigdecimal/CompressedBigDecimalSqlAggregatorBase.java
@@ -178,7 +178,7 @@ public abstract class CompressedBigDecimalSqlAggregatorBase 
implements SqlAggreg
               OperandTypes.and(OperandTypes.ANY, 
OperandTypes.family(SqlTypeFamily.ANY)),
               OperandTypes.and(
                   OperandTypes.sequence(
-                      "'" + name + "'(column, size)",
+                      "'" + name + "(column, size)'",
                       OperandTypes.ANY,
                       OperandTypes.POSITIVE_INTEGER_LITERAL
                   ),
@@ -186,7 +186,7 @@ public abstract class CompressedBigDecimalSqlAggregatorBase 
implements SqlAggreg
               ),
               OperandTypes.and(
                   OperandTypes.sequence(
-                      "'" + name + "'(column, size, scale)",
+                      "'" + name + "(column, size, scale)'",
                       OperandTypes.ANY,
                       OperandTypes.POSITIVE_INTEGER_LITERAL,
                       OperandTypes.POSITIVE_INTEGER_LITERAL
@@ -195,7 +195,7 @@ public abstract class CompressedBigDecimalSqlAggregatorBase 
implements SqlAggreg
               ),
               OperandTypes.and(
                   OperandTypes.sequence(
-                      "'" + name + "'(column, size, scale, 
strictNumberParsing)",
+                      "'" + name + "(column, size, scale, 
strictNumberParsing)'",
                       OperandTypes.ANY,
                       OperandTypes.POSITIVE_INTEGER_LITERAL,
                       OperandTypes.POSITIVE_INTEGER_LITERAL,
diff --git 
a/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/sql/TDigestGenerateSketchSqlAggregator.java
 
b/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/sql/TDigestGenerateSketchSqlAggregator.java
index 5276ef7212..ca0a4acc60 100644
--- 
a/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/sql/TDigestGenerateSketchSqlAggregator.java
+++ 
b/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/sql/TDigestGenerateSketchSqlAggregator.java
@@ -148,7 +148,7 @@ public class TDigestGenerateSketchSqlAggregator implements 
SqlAggregator
 
   private static class TDigestGenerateSketchSqlAggFunction extends 
SqlAggFunction
   {
-    private static final String SIGNATURE_WITH_COMPRESSION = "'" + NAME + 
"(column, compression)'\n";
+    private static final String SIGNATURE_WITH_COMPRESSION = "'" + NAME + 
"(column, compression)'";
 
     TDigestGenerateSketchSqlAggFunction()
     {
diff --git 
a/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/sql/TDigestSketchQuantileSqlAggregator.java
 
b/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/sql/TDigestSketchQuantileSqlAggregator.java
index 09433b4938..379e889d38 100644
--- 
a/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/sql/TDigestSketchQuantileSqlAggregator.java
+++ 
b/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/sql/TDigestSketchQuantileSqlAggregator.java
@@ -178,8 +178,8 @@ public class TDigestSketchQuantileSqlAggregator implements 
SqlAggregator
 
   private static class TDigestSketchQuantileSqlAggFunction extends 
SqlAggFunction
   {
-    private static final String SIGNATURE1 = "'" + NAME + "(column, 
quantile)'\n";
-    private static final String SIGNATURE2 = "'" + NAME + "(column, quantile, 
compression)'\n";
+    private static final String SIGNATURE1 = "'" + NAME + "(column, 
quantile)'";
+    private static final String SIGNATURE2 = "'" + NAME + "(column, quantile, 
compression)'";
 
     TDigestSketchQuantileSqlAggFunction()
     {
diff --git 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/sql/HllSketchApproxCountDistinctSqlAggregator.java
 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/sql/HllSketchApproxCountDistinctSqlAggregator.java
index 5177e9fd53..461b2316f1 100644
--- 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/sql/HllSketchApproxCountDistinctSqlAggregator.java
+++ 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/sql/HllSketchApproxCountDistinctSqlAggregator.java
@@ -69,7 +69,7 @@ public class HllSketchApproxCountDistinctSqlAggregator 
extends HllSketchBaseSqlA
 
   private static class HllSketchApproxCountDistinctSqlAggFunction extends 
SqlAggFunction
   {
-    private static final String SIGNATURE = "'" + NAME + "(column, lgK, 
tgtHllType)'\n";
+    private static final String SIGNATURE = "'" + NAME + "(column, lgK, 
tgtHllType)'";
 
     HllSketchApproxCountDistinctSqlAggFunction()
     {
diff --git 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/sql/HllSketchObjectSqlAggregator.java
 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/sql/HllSketchObjectSqlAggregator.java
index 4dc18e176e..56fdbd3381 100644
--- 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/sql/HllSketchObjectSqlAggregator.java
+++ 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/sql/HllSketchObjectSqlAggregator.java
@@ -64,7 +64,7 @@ public class HllSketchObjectSqlAggregator extends 
HllSketchBaseSqlAggregator imp
 
   private static class HllSketchSqlAggFunction extends SqlAggFunction
   {
-    private static final String SIGNATURE = "'" + NAME + "(column, lgK, 
tgtHllType)'\n";
+    private static final String SIGNATURE = "'" + NAME + "(column, lgK, 
tgtHllType)'";
 
     HllSketchSqlAggFunction()
     {
diff --git 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/sql/DoublesSketchApproxQuantileSqlAggregator.java
 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/sql/DoublesSketchApproxQuantileSqlAggregator.java
index b029eab903..0b4bbd7f11 100644
--- 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/sql/DoublesSketchApproxQuantileSqlAggregator.java
+++ 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/sql/DoublesSketchApproxQuantileSqlAggregator.java
@@ -215,8 +215,8 @@ public class DoublesSketchApproxQuantileSqlAggregator 
implements SqlAggregator
 
   private static class DoublesSketchApproxQuantileSqlAggFunction extends 
SqlAggFunction
   {
-    private static final String SIGNATURE1 = "'" + NAME + "(column, 
probability)'\n";
-    private static final String SIGNATURE2 = "'" + NAME + "(column, 
probability, k)'\n";
+    private static final String SIGNATURE1 = "'" + NAME + "(column, 
probability)'";
+    private static final String SIGNATURE2 = "'" + NAME + "(column, 
probability, k)'";
 
     DoublesSketchApproxQuantileSqlAggFunction()
     {
diff --git 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/sql/DoublesSketchObjectSqlAggregator.java
 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/sql/DoublesSketchObjectSqlAggregator.java
index cfe728ce45..b82f02fc45 100644
--- 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/sql/DoublesSketchObjectSqlAggregator.java
+++ 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/sql/DoublesSketchObjectSqlAggregator.java
@@ -142,7 +142,7 @@ public class DoublesSketchObjectSqlAggregator implements 
SqlAggregator
 
   private static class DoublesSketchSqlAggFunction extends SqlAggFunction
   {
-    private static final String SIGNATURE2 = "'" + NAME + "(column, k)'\n";
+    private static final String SIGNATURE2 = "'" + NAME + "(column, k)'";
 
     DoublesSketchSqlAggFunction()
     {
diff --git 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/sql/ThetaSketchApproxCountDistinctSqlAggregator.java
 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/sql/ThetaSketchApproxCountDistinctSqlAggregator.java
index fc252f075d..70eb943a8c 100644
--- 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/sql/ThetaSketchApproxCountDistinctSqlAggregator.java
+++ 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/sql/ThetaSketchApproxCountDistinctSqlAggregator.java
@@ -69,7 +69,7 @@ public class ThetaSketchApproxCountDistinctSqlAggregator 
extends ThetaSketchBase
 
   private static class ThetaSketchSqlAggFunction extends SqlAggFunction
   {
-    private static final String SIGNATURE = "'" + NAME + "(column, size)'\n";
+    private static final String SIGNATURE = "'" + NAME + "(column, size)'";
 
     ThetaSketchSqlAggFunction()
     {
diff --git 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/sql/ThetaSketchObjectSqlAggregator.java
 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/sql/ThetaSketchObjectSqlAggregator.java
index d0e95096e7..91dd36c2fb 100644
--- 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/sql/ThetaSketchObjectSqlAggregator.java
+++ 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/sql/ThetaSketchObjectSqlAggregator.java
@@ -62,7 +62,7 @@ public class ThetaSketchObjectSqlAggregator extends 
ThetaSketchBaseSqlAggregator
 
   private static class ThetaSketchObjectSqlAggFunction extends SqlAggFunction
   {
-    private static final String SIGNATURE = "'" + NAME + "(column, size)'\n";
+    private static final String SIGNATURE = "'" + NAME + "(column, size)'";
 
     ThetaSketchObjectSqlAggFunction()
     {
diff --git 
a/extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/aggregation/bloom/sql/BloomFilterSqlAggregator.java
 
b/extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/aggregation/bloom/sql/BloomFilterSqlAggregator.java
index 1cbd6ca8b1..0ec265595e 100644
--- 
a/extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/aggregation/bloom/sql/BloomFilterSqlAggregator.java
+++ 
b/extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/aggregation/bloom/sql/BloomFilterSqlAggregator.java
@@ -182,7 +182,7 @@ public class BloomFilterSqlAggregator implements 
SqlAggregator
 
   private static class BloomFilterSqlAggFunction extends SqlAggFunction
   {
-    private static final String SIGNATURE1 = "'" + NAME + "(column, 
maxNumEntries)'\n";
+    private static final String SIGNATURE1 = "'" + NAME + "(column, 
maxNumEntries)'";
 
     BloomFilterSqlAggFunction()
     {
diff --git 
a/extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/sql/FixedBucketsHistogramQuantileSqlAggregator.java
 
b/extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/sql/FixedBucketsHistogramQuantileSqlAggregator.java
index 3c89653bb9..3f0bd14f84 100644
--- 
a/extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/sql/FixedBucketsHistogramQuantileSqlAggregator.java
+++ 
b/extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/sql/FixedBucketsHistogramQuantileSqlAggregator.java
@@ -259,11 +259,11 @@ public class FixedBucketsHistogramQuantileSqlAggregator 
implements SqlAggregator
     private static final String SIGNATURE1 =
         "'"
         + NAME
-        + "(column, probability, numBuckets, lowerLimit, upperLimit)'\n";
+        + "(column, probability, numBuckets, lowerLimit, upperLimit)'";
     private static final String SIGNATURE2 =
         "'"
         + NAME
-        + "(column, probability, numBuckets, lowerLimit, upperLimit, 
outlierHandlingMode)'\n";
+        + "(column, probability, numBuckets, lowerLimit, upperLimit, 
outlierHandlingMode)'";
 
     FixedBucketsHistogramQuantileSqlAggFunction()
     {
diff --git 
a/extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/sql/QuantileSqlAggregator.java
 
b/extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/sql/QuantileSqlAggregator.java
index 3b1598d12d..9ba7604d70 100644
--- 
a/extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/sql/QuantileSqlAggregator.java
+++ 
b/extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/sql/QuantileSqlAggregator.java
@@ -213,8 +213,8 @@ public class QuantileSqlAggregator implements SqlAggregator
 
   private static class QuantileSqlAggFunction extends SqlAggFunction
   {
-    private static final String SIGNATURE1 = "'" + NAME + "(column, 
probability)'\n";
-    private static final String SIGNATURE2 = "'" + NAME + "(column, 
probability, resolution)'\n";
+    private static final String SIGNATURE1 = "'" + NAME + "(column, 
probability)'";
+    private static final String SIGNATURE2 = "'" + NAME + "(column, 
probability, resolution)'";
 
     QuantileSqlAggFunction()
     {
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/aggregation/builtin/ArrayConcatSqlAggregator.java
 
b/sql/src/main/java/org/apache/druid/sql/calcite/aggregation/builtin/ArrayConcatSqlAggregator.java
index 86e1ec8a73..86aaf55c68 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/calcite/aggregation/builtin/ArrayConcatSqlAggregator.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/calcite/aggregation/builtin/ArrayConcatSqlAggregator.java
@@ -163,7 +163,7 @@ public class ArrayConcatSqlAggregator implements 
SqlAggregator
           OperandTypes.or(
               OperandTypes.ARRAY,
               OperandTypes.sequence(
-                  StringUtils.format("'%s'(expr, maxSizeBytes)", NAME),
+                  StringUtils.format("'%s(expr, maxSizeBytes)'", NAME),
                   OperandTypes.ARRAY,
                   OperandTypes.POSITIVE_INTEGER_LITERAL
               )
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/aggregation/builtin/ArraySqlAggregator.java
 
b/sql/src/main/java/org/apache/druid/sql/calcite/aggregation/builtin/ArraySqlAggregator.java
index fe191ac96b..ec914dac7f 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/calcite/aggregation/builtin/ArraySqlAggregator.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/calcite/aggregation/builtin/ArraySqlAggregator.java
@@ -187,7 +187,7 @@ public class ArraySqlAggregator implements SqlAggregator
           OperandTypes.or(
             OperandTypes.ANY,
             OperandTypes.and(
-                OperandTypes.sequence(StringUtils.format("%s(expr, 
maxSizeBytes)", NAME), OperandTypes.ANY, OperandTypes.POSITIVE_INTEGER_LITERAL),
+                OperandTypes.sequence(StringUtils.format("'%s(expr, 
maxSizeBytes)'", NAME), OperandTypes.ANY, 
OperandTypes.POSITIVE_INTEGER_LITERAL),
                 OperandTypes.family(SqlTypeFamily.ANY, SqlTypeFamily.NUMERIC)
             )
           ),
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/aggregation/builtin/EarliestLatestAnySqlAggregator.java
 
b/sql/src/main/java/org/apache/druid/sql/calcite/aggregation/builtin/EarliestLatestAnySqlAggregator.java
index 85a3ef8d1d..6efc8846e9 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/calcite/aggregation/builtin/EarliestLatestAnySqlAggregator.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/calcite/aggregation/builtin/EarliestLatestAnySqlAggregator.java
@@ -301,7 +301,7 @@ public class EarliestLatestAnySqlAggregator implements 
SqlAggregator
               OperandTypes.NUMERIC,
               OperandTypes.BOOLEAN,
               OperandTypes.sequence(
-                  "'" + aggregatorType.name() + "(expr, maxBytesPerString)'\n",
+                  "'" + aggregatorType.name() + "(expr, maxBytesPerString)'",
                   OperandTypes.ANY,
                   OperandTypes.and(OperandTypes.NUMERIC, OperandTypes.LITERAL)
               )
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/aggregation/builtin/EarliestLatestBySqlAggregator.java
 
b/sql/src/main/java/org/apache/druid/sql/calcite/aggregation/builtin/EarliestLatestBySqlAggregator.java
index 9d9a5e9bf6..ef653d7003 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/calcite/aggregation/builtin/EarliestLatestBySqlAggregator.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/calcite/aggregation/builtin/EarliestLatestBySqlAggregator.java
@@ -168,12 +168,12 @@ public class EarliestLatestBySqlAggregator implements 
SqlAggregator
           InferTypes.RETURN_TYPE,
           OperandTypes.or(
               OperandTypes.sequence(
-                  "'" + aggregatorType.name() + "(expr, timeColumn)'\n",
+                  "'" + StringUtils.format("%s_BY", aggregatorType.name()) + 
"(expr, timeColumn)'",
                   OperandTypes.ANY,
                   OperandTypes.family(SqlTypeFamily.TIMESTAMP)
               ),
               OperandTypes.sequence(
-                  "'" + aggregatorType.name() + "(expr, timeColumn, 
maxBytesPerString)'\n",
+                  "'" + StringUtils.format("%s_BY", aggregatorType.name()) + 
"(expr, timeColumn, maxBytesPerString)'",
                   OperandTypes.ANY,
                   OperandTypes.family(SqlTypeFamily.TIMESTAMP),
                   OperandTypes.and(OperandTypes.NUMERIC, OperandTypes.LITERAL)
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/aggregation/builtin/StringSqlAggregator.java
 
b/sql/src/main/java/org/apache/druid/sql/calcite/aggregation/builtin/StringSqlAggregator.java
index acdd28c6e3..53d7fc4cf7 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/calcite/aggregation/builtin/StringSqlAggregator.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/calcite/aggregation/builtin/StringSqlAggregator.java
@@ -222,7 +222,7 @@ public class StringSqlAggregator implements SqlAggregator
           OperandTypes.or(
               OperandTypes.and(
                   OperandTypes.sequence(
-                      StringUtils.format("'%s'(expr, separator)", NAME),
+                      StringUtils.format("'%s(expr, separator)'", NAME),
                       OperandTypes.ANY,
                       OperandTypes.STRING
                   ),
@@ -230,7 +230,7 @@ public class StringSqlAggregator implements SqlAggregator
               ),
               OperandTypes.and(
                   OperandTypes.sequence(
-                      StringUtils.format("'%s'(expr, separator, 
maxSizeBytes)", NAME),
+                      StringUtils.format("'%s(expr, separator, 
maxSizeBytes)'", NAME),
                       OperandTypes.ANY,
                       OperandTypes.STRING,
                       OperandTypes.POSITIVE_INTEGER_LITERAL
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayAppendOperatorConversion.java
 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayAppendOperatorConversion.java
index 9ec338ebfa..9e1928477d 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayAppendOperatorConversion.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayAppendOperatorConversion.java
@@ -33,7 +33,7 @@ public class ArrayAppendOperatorConversion extends 
DirectOperatorConversion
       .operatorBuilder("ARRAY_APPEND")
       .operandTypeChecker(
           OperandTypes.sequence(
-              "(array,expr)",
+              "'ARRAY_APPEND(array, expr)'",
               OperandTypes.or(
                   OperandTypes.family(SqlTypeFamily.ARRAY),
                   OperandTypes.family(SqlTypeFamily.STRING)
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayConcatOperatorConversion.java
 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayConcatOperatorConversion.java
index 8f865d96e6..3a0c47118d 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayConcatOperatorConversion.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayConcatOperatorConversion.java
@@ -33,7 +33,7 @@ public class ArrayConcatOperatorConversion extends 
DirectOperatorConversion
       .operatorBuilder("ARRAY_CONCAT")
       .operandTypeChecker(
           OperandTypes.sequence(
-              "(array,array)",
+              "'ARRAY_CONCAT(array, array)'",
               OperandTypes.or(
                   OperandTypes.family(SqlTypeFamily.ARRAY),
                   OperandTypes.family(SqlTypeFamily.STRING)
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayContainsOperatorConversion.java
 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayContainsOperatorConversion.java
index c2d78b306a..02f56ffdaf 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayContainsOperatorConversion.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayContainsOperatorConversion.java
@@ -52,7 +52,7 @@ public class ArrayContainsOperatorConversion extends 
BaseExpressionDimFilterOper
       .operatorBuilder("ARRAY_CONTAINS")
       .operandTypeChecker(
           OperandTypes.sequence(
-              "(array,array)",
+              "'ARRAY_CONTAINS(array, array)'",
               OperandTypes.or(
                   OperandTypes.family(SqlTypeFamily.ARRAY),
                   OperandTypes.family(SqlTypeFamily.STRING)
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayOffsetOfOperatorConversion.java
 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayOffsetOfOperatorConversion.java
index 51c78b85ee..40f935e8e0 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayOffsetOfOperatorConversion.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayOffsetOfOperatorConversion.java
@@ -33,7 +33,7 @@ public class ArrayOffsetOfOperatorConversion extends 
DirectOperatorConversion
       .operatorBuilder("ARRAY_OFFSET_OF")
       .operandTypeChecker(
           OperandTypes.sequence(
-              "(array,expr)",
+              "'ARRAY_OFFSET_OF(array, expr)'",
               OperandTypes.or(
                   OperandTypes.family(SqlTypeFamily.ARRAY),
                   OperandTypes.family(SqlTypeFamily.STRING)
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayOffsetOperatorConversion.java
 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayOffsetOperatorConversion.java
index 0ee93e8f69..0c9a36a09f 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayOffsetOperatorConversion.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayOffsetOperatorConversion.java
@@ -32,7 +32,7 @@ public class ArrayOffsetOperatorConversion extends 
DirectOperatorConversion
       .operatorBuilder("ARRAY_OFFSET")
       .operandTypeChecker(
           OperandTypes.sequence(
-              "(array,expr)",
+              "'ARRAY_OFFSET(array, expr)'",
               OperandTypes.or(
                   OperandTypes.family(SqlTypeFamily.ARRAY),
                   OperandTypes.family(SqlTypeFamily.STRING)
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayOrdinalOfOperatorConversion.java
 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayOrdinalOfOperatorConversion.java
index cf7261d48c..f8fada8be3 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayOrdinalOfOperatorConversion.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayOrdinalOfOperatorConversion.java
@@ -33,7 +33,7 @@ public class ArrayOrdinalOfOperatorConversion extends 
DirectOperatorConversion
       .operatorBuilder("ARRAY_ORDINAL_OF")
       .operandTypeChecker(
           OperandTypes.sequence(
-              "(array,expr)",
+              "'ARRAY_ORDINAL_OF(array, expr)'",
               OperandTypes.or(
                   OperandTypes.family(SqlTypeFamily.ARRAY),
                   OperandTypes.family(SqlTypeFamily.STRING)
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayOrdinalOperatorConversion.java
 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayOrdinalOperatorConversion.java
index b758c2a897..8e5e851ea0 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayOrdinalOperatorConversion.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayOrdinalOperatorConversion.java
@@ -38,7 +38,7 @@ public class ArrayOrdinalOperatorConversion extends 
DirectOperatorConversion
       .operatorBuilder("ARRAY_ORDINAL")
       .operandTypeChecker(
           OperandTypes.sequence(
-              "(array,expr)",
+              "'ARRAY_ORDINAL(array, expr)'",
               OperandTypes.or(
                   OperandTypes.family(SqlTypeFamily.ARRAY),
                   OperandTypes.family(SqlTypeFamily.STRING)
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayOverlapOperatorConversion.java
 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayOverlapOperatorConversion.java
index cda69526f7..fbf4f654d5 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayOverlapOperatorConversion.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayOverlapOperatorConversion.java
@@ -52,7 +52,7 @@ public class ArrayOverlapOperatorConversion extends 
BaseExpressionDimFilterOpera
       .operatorBuilder("ARRAY_OVERLAP")
       .operandTypeChecker(
           OperandTypes.sequence(
-              "(array,array)",
+              "'ARRAY_OVERLAP(array, array)'",
               OperandTypes.or(
                   OperandTypes.family(SqlTypeFamily.ARRAY),
                   OperandTypes.family(SqlTypeFamily.STRING)
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayPrependOperatorConversion.java
 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayPrependOperatorConversion.java
index b6306aa171..73df2daa46 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayPrependOperatorConversion.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayPrependOperatorConversion.java
@@ -33,7 +33,7 @@ public class ArrayPrependOperatorConversion extends 
DirectOperatorConversion
       .operatorBuilder("ARRAY_PREPEND")
       .operandTypeChecker(
           OperandTypes.sequence(
-              "(expr,array)",
+              "'ARRAY_PREPEND(expr, array)'",
               OperandTypes.or(
                   OperandTypes.family(SqlTypeFamily.STRING),
                   OperandTypes.family(SqlTypeFamily.NUMERIC)
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArraySliceOperatorConversion.java
 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArraySliceOperatorConversion.java
index db84d9df10..bb08a55d89 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArraySliceOperatorConversion.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArraySliceOperatorConversion.java
@@ -34,7 +34,7 @@ public class ArraySliceOperatorConversion extends 
DirectOperatorConversion
       .operandTypeChecker(
           OperandTypes.or(
             OperandTypes.sequence(
-                "(expr,start)",
+                "'ARRAY_SLICE(expr, start)'",
                 OperandTypes.or(
                     OperandTypes.family(SqlTypeFamily.ARRAY),
                     OperandTypes.family(SqlTypeFamily.STRING)
@@ -42,7 +42,7 @@ public class ArraySliceOperatorConversion extends 
DirectOperatorConversion
                 OperandTypes.family(SqlTypeFamily.NUMERIC)
             ),
             OperandTypes.sequence(
-                "(expr,start,end)",
+                "'ARRAY_SLICE(expr, start, end)'",
                 OperandTypes.or(
                     OperandTypes.family(SqlTypeFamily.ARRAY),
                     OperandTypes.family(SqlTypeFamily.STRING)
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayToStringOperatorConversion.java
 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayToStringOperatorConversion.java
index 7cecfd2288..3dfd598431 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayToStringOperatorConversion.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ArrayToStringOperatorConversion.java
@@ -33,7 +33,7 @@ public class ArrayToStringOperatorConversion extends 
DirectOperatorConversion
       .operatorBuilder("ARRAY_TO_STRING")
       .operandTypeChecker(
           OperandTypes.sequence(
-              "(array,expr)",
+              "'ARRAY_TO_STRING(array, expr)'",
               OperandTypes.or(
                   OperandTypes.family(SqlTypeFamily.ARRAY),
                   OperandTypes.family(SqlTypeFamily.STRING)
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ComplexDecodeBase64OperatorConversion.java
 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ComplexDecodeBase64OperatorConversion.java
index 0822e15750..94b90ed9af 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ComplexDecodeBase64OperatorConversion.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/ComplexDecodeBase64OperatorConversion.java
@@ -54,7 +54,7 @@ public class ComplexDecodeBase64OperatorConversion implements 
SqlOperatorConvers
       
.operatorBuilder(StringUtils.toUpperCase(BuiltInExprMacros.ComplexDecodeBase64ExprMacro.NAME))
       .operandTypeChecker(
           OperandTypes.sequence(
-              "(typeName,base64)",
+              "'" + 
StringUtils.toUpperCase(BuiltInExprMacros.ComplexDecodeBase64ExprMacro.NAME) + 
"(typeName, base64)'",
               OperandTypes.and(OperandTypes.family(SqlTypeFamily.STRING), 
OperandTypes.LITERAL),
               OperandTypes.ANY
           )
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/IPv4AddressMatchOperatorConversion.java
 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/IPv4AddressMatchOperatorConversion.java
index 2ecee46c02..254eb9885f 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/IPv4AddressMatchOperatorConversion.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/IPv4AddressMatchOperatorConversion.java
@@ -42,7 +42,13 @@ public class IPv4AddressMatchOperatorConversion extends 
DirectOperatorConversion
 
   private static final SqlFunction SQL_FUNCTION = OperatorConversions
       
.operatorBuilder(StringUtils.toUpperCase(IPv4AddressMatchExprMacro.FN_NAME))
-      .operandTypeChecker(OperandTypes.sequence("(expr,string)", 
ADDRESS_OPERAND, SUBNET_OPERAND))
+      .operandTypeChecker(
+          OperandTypes.sequence(
+              "'" + StringUtils.toUpperCase(IPv4AddressMatchExprMacro.FN_NAME) 
+ "(expr, string)'",
+              ADDRESS_OPERAND,
+              SUBNET_OPERAND
+          )
+      )
       .returnTypeInference(ReturnTypes.BOOLEAN_NULLABLE)
       .functionCategory(SqlFunctionCategory.USER_DEFINED_FUNCTION)
       .build();
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/MultiValueStringOperatorConversions.java
 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/MultiValueStringOperatorConversions.java
index 6a0b24db19..d64ca9b192 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/MultiValueStringOperatorConversions.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/MultiValueStringOperatorConversions.java
@@ -61,7 +61,7 @@ public class MultiValueStringOperatorConversions
         .operatorBuilder("MV_APPEND")
         .operandTypeChecker(
             OperandTypes.sequence(
-                "(array,expr)",
+                "'MV_APPEND(array, expr)'",
                 OperandTypes.or(
                     OperandTypes.family(SqlTypeFamily.ARRAY),
                     OperandTypes.family(SqlTypeFamily.STRING)
@@ -86,7 +86,7 @@ public class MultiValueStringOperatorConversions
         .operatorBuilder("MV_PREPEND")
         .operandTypeChecker(
             OperandTypes.sequence(
-                "(expr,array)",
+                "'MV_PREPEND(expr, array)'",
                 OperandTypes.family(SqlTypeFamily.STRING),
                 OperandTypes.or(
                     OperandTypes.family(SqlTypeFamily.ARRAY),
@@ -111,7 +111,7 @@ public class MultiValueStringOperatorConversions
         .operatorBuilder("MV_CONCAT")
         .operandTypeChecker(
             OperandTypes.sequence(
-                "(array,array)",
+                "'MV_CONCAT(array, array)'",
                 OperandTypes.or(
                     OperandTypes.family(SqlTypeFamily.ARRAY),
                     OperandTypes.family(SqlTypeFamily.STRING)
@@ -139,7 +139,7 @@ public class MultiValueStringOperatorConversions
         .operatorBuilder("MV_CONTAINS")
         .operandTypeChecker(
             OperandTypes.sequence(
-                "(array,array)",
+                "'MV_CONTAINS(array, array)'",
                 OperandTypes.or(
                     OperandTypes.family(SqlTypeFamily.ARRAY),
                     OperandTypes.family(SqlTypeFamily.STRING)
@@ -167,7 +167,7 @@ public class MultiValueStringOperatorConversions
         .operatorBuilder("MV_OFFSET")
         .operandTypeChecker(
             OperandTypes.sequence(
-                "(array,expr)",
+                "'MV_OFFSET(array, expr)'",
                 OperandTypes.or(
                     OperandTypes.family(SqlTypeFamily.ARRAY),
                     OperandTypes.family(SqlTypeFamily.STRING)
@@ -192,7 +192,7 @@ public class MultiValueStringOperatorConversions
         .operatorBuilder("MV_ORDINAL")
         .operandTypeChecker(
             OperandTypes.sequence(
-                "(array,expr)",
+                "'MV_ORDINAL(array, expr)'",
                 OperandTypes.or(
                     OperandTypes.family(SqlTypeFamily.ARRAY),
                     OperandTypes.family(SqlTypeFamily.STRING)
@@ -218,7 +218,7 @@ public class MultiValueStringOperatorConversions
         .operandTypeChecker(
             OperandTypes.or(
                 OperandTypes.sequence(
-                    "(expr,start)",
+                    "'MV_SLICE(expr, start)'",
                     OperandTypes.or(
                         OperandTypes.family(SqlTypeFamily.ARRAY),
                         OperandTypes.family(SqlTypeFamily.STRING)
@@ -226,7 +226,7 @@ public class MultiValueStringOperatorConversions
                     OperandTypes.family(SqlTypeFamily.NUMERIC)
                 ),
                 OperandTypes.sequence(
-                    "(expr,start,end)",
+                    "'MV_SLICE(expr, start, end)'",
                     OperandTypes.or(
                         OperandTypes.family(SqlTypeFamily.ARRAY),
                         OperandTypes.family(SqlTypeFamily.STRING)
@@ -253,7 +253,7 @@ public class MultiValueStringOperatorConversions
         .operatorBuilder("STRING_TO_MV")
         .operandTypeChecker(
             OperandTypes.sequence(
-                "(string,expr)",
+                "'STRING_TO_MV(string, expr)'",
                 OperandTypes.family(SqlTypeFamily.STRING),
                 OperandTypes.family(SqlTypeFamily.STRING)
             )
@@ -398,7 +398,7 @@ public class MultiValueStringOperatorConversions
         .operatorBuilder("MV_FILTER_ONLY")
         .operandTypeChecker(
             OperandTypes.sequence(
-                "(string,array)",
+                "'MV_FILTER_ONLY(string, array)'",
                 OperandTypes.family(SqlTypeFamily.STRING),
                 OperandTypes.family(SqlTypeFamily.ARRAY)
             )
@@ -427,7 +427,7 @@ public class MultiValueStringOperatorConversions
         .operatorBuilder("MV_FILTER_NONE")
         .operandTypeChecker(
             OperandTypes.sequence(
-                "(string,array)",
+                "'MV_FILTER_NONE(string, array)'",
                 OperandTypes.family(SqlTypeFamily.STRING),
                 OperandTypes.family(SqlTypeFamily.ARRAY)
             )
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/NestedDataOperatorConversions.java
 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/NestedDataOperatorConversions.java
index 872af4bec7..76640bcf80 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/NestedDataOperatorConversions.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/NestedDataOperatorConversions.java
@@ -117,7 +117,7 @@ public class NestedDataOperatorConversions
         .operatorBuilder("JSON_KEYS")
         .operandTypeChecker(
             OperandTypes.sequence(
-                "(expr,path)",
+                "'JSON_KEYS(expr, path)'",
                 OperandTypes.ANY,
                 OperandTypes.and(OperandTypes.family(SqlTypeFamily.STRING), 
OperandTypes.LITERAL)
             )
@@ -428,7 +428,7 @@ public class NestedDataOperatorConversions
       return OperatorConversions.operatorBuilder(functionName)
                                 .operandTypeChecker(
                                     OperandTypes.sequence(
-                                        "(expr,path)",
+                                        "'" + functionName + "(expr, path)'",
                                         OperandTypes.family(SqlTypeFamily.ANY),
                                         
OperandTypes.family(SqlTypeFamily.STRING)
                                     )
@@ -558,7 +558,7 @@ public class NestedDataOperatorConversions
       return OperatorConversions.operatorBuilder(functionName)
                                 .operandTypeChecker(
                                     OperandTypes.sequence(
-                                        "(expr,path)",
+                                        "'" + functionName + "(expr, path)'",
                                         OperandTypes.family(SqlTypeFamily.ANY),
                                         
OperandTypes.family(SqlTypeFamily.STRING)
                                     )
@@ -610,7 +610,7 @@ public class NestedDataOperatorConversions
                            .operandTypeChecker(
                                OperandTypes.or(
                                    OperandTypes.sequence(
-                                       "(expr,path)",
+                                       "'JSON_VALUE_ANY(expr, path)'",
                                        OperandTypes.family(SqlTypeFamily.ANY),
                                        
OperandTypes.family(SqlTypeFamily.STRING)
                                    ),
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/StringToArrayOperatorConversion.java
 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/StringToArrayOperatorConversion.java
index 087aada4a2..35a01a7edc 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/StringToArrayOperatorConversion.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/StringToArrayOperatorConversion.java
@@ -34,7 +34,7 @@ public class StringToArrayOperatorConversion extends 
DirectOperatorConversion
       .operatorBuilder("STRING_TO_ARRAY")
       .operandTypeChecker(
           OperandTypes.sequence(
-              "(string,expr)",
+              "'STRING_TO_ARRAY(string, expr)'",
               OperandTypes.family(SqlTypeFamily.STRING),
               OperandTypes.family(SqlTypeFamily.STRING)
           )
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/planner/convertlet/TimeInIntervalConvertletFactory.java
 
b/sql/src/main/java/org/apache/druid/sql/calcite/planner/convertlet/TimeInIntervalConvertletFactory.java
index 5201d1e8e6..b99043e5fc 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/calcite/planner/convertlet/TimeInIntervalConvertletFactory.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/calcite/planner/convertlet/TimeInIntervalConvertletFactory.java
@@ -55,7 +55,7 @@ public class TimeInIntervalConvertletFactory implements 
DruidConvertletFactory
       .operatorBuilder(NAME)
       .operandTypeChecker(
           OperandTypes.sequence(
-              NAME + "(<TIMESTAMP>, <LITERAL ISO8601 INTERVAL>)",
+              "'" + NAME + "(<TIMESTAMP>, <LITERAL ISO8601 INTERVAL>)'",
               OperandTypes.family(SqlTypeFamily.TIMESTAMP),
               OperandTypes.and(OperandTypes.family(SqlTypeFamily.CHARACTER), 
OperandTypes.LITERAL)
           )
diff --git 
a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteQueryTest.java 
b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteQueryTest.java
index 54036f705a..bfe8701161 100644
--- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteQueryTest.java
+++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteQueryTest.java
@@ -5866,7 +5866,7 @@ public class CalciteQueryTest extends BaseCalciteQueryTest
           
expected.expect(ThrowableMessageMatcher.hasMessage(CoreMatchers.containsString(
               "From line 1, column 38 to line 1, column 67: "
               + "Cannot apply 'TIME_IN_INTERVAL' to arguments of type 
'TIME_IN_INTERVAL(<TIMESTAMP(3)>, <VARCHAR>)'. "
-              + "Supported form(s): TIME_IN_INTERVAL(<TIMESTAMP>, <LITERAL 
ISO8601 INTERVAL>)")));
+              + "Supported form(s): 'TIME_IN_INTERVAL(<TIMESTAMP>, <LITERAL 
ISO8601 INTERVAL>)'")));
         }
     );
   }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


Reply via email to