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

mbudiu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/calcite.git


The following commit(s) were added to refs/heads/main by this push:
     new 081e442020 [CALCITE-7325] Incorrect VARIANT signatures in 
SqlItemOperator
081e442020 is described below

commit 081e4420207a887d6ed80591bd7be45c986d05ea
Author: Jinkun Liu <[email protected]>
AuthorDate: Thu Dec 11 21:54:58 2025 +0800

    [CALCITE-7325] Incorrect VARIANT signatures in SqlItemOperator
---
 .../main/java/org/apache/calcite/sql/fun/SqlItemOperator.java    | 2 +-
 core/src/test/java/org/apache/calcite/test/SqlValidatorTest.java | 2 +-
 .../src/main/java/org/apache/calcite/test/SqlOperatorTest.java   | 9 ++++++++-
 3 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/core/src/main/java/org/apache/calcite/sql/fun/SqlItemOperator.java 
b/core/src/main/java/org/apache/calcite/sql/fun/SqlItemOperator.java
index 1a1fb4d2a8..2285b0804a 100644
--- a/core/src/main/java/org/apache/calcite/sql/fun/SqlItemOperator.java
+++ b/core/src/main/java/org/apache/calcite/sql/fun/SqlItemOperator.java
@@ -183,7 +183,7 @@ private static SqlSingleOperandTypeChecker 
getChecker(SqlCallBinding callBinding
       return "<ARRAY>[<INTEGER>]\n"
           + "<MAP>[<ANY>]\n"
           + "<ROW>[<CHARACTER>|<INTEGER>]\n"
-          + "<VARIANT>[<ANY>]";
+          + "<VARIANT>[<CHARACTER>|<INTEGER>]";
     } else {
       return "<ARRAY>[" + name + "(<INTEGER>)]";
     }
diff --git a/core/src/test/java/org/apache/calcite/test/SqlValidatorTest.java 
b/core/src/test/java/org/apache/calcite/test/SqlValidatorTest.java
index 2de4ae6704..8a6877193d 100644
--- a/core/src/test/java/org/apache/calcite/test/SqlValidatorTest.java
+++ b/core/src/test/java/org/apache/calcite/test/SqlValidatorTest.java
@@ -9331,7 +9331,7 @@ void testGroupExpressionEquivalenceParams() {
             +  "<INTEGER>\\)'\\. Supported form\\(s\\): 
<ARRAY>\\[<INTEGER>\\]\n"
             + "<MAP>\\[<ANY>\\]\n"
             + "<ROW>\\[<CHARACTER>\\|<INTEGER>\\]\n"
-            + "<VARIANT>\\[<ANY>\\].*");
+            + "<VARIANT>\\[<CHARACTER>\\|<INTEGER>\\].*");
   }
 
   /** Test case for
diff --git a/testkit/src/main/java/org/apache/calcite/test/SqlOperatorTest.java 
b/testkit/src/main/java/org/apache/calcite/test/SqlOperatorTest.java
index b11a968458..351f44584f 100644
--- a/testkit/src/main/java/org/apache/calcite/test/SqlOperatorTest.java
+++ b/testkit/src/main/java/org/apache/calcite/test/SqlOperatorTest.java
@@ -13373,7 +13373,14 @@ private static void 
checkArrayConcatAggFuncFails(SqlOperatorFixture t) {
             + "<CHAR\\(3\\)>\\)'\\. Supported form\\(s\\): 
<ARRAY>\\[<INTEGER>\\]\n"
             + "<MAP>\\[<ANY>\\]\n"
             + "<ROW>\\[<CHARACTER>\\|<INTEGER>\\]\n"
-            + "<VARIANT>\\[<ANY>\\]",
+            + "<VARIANT>\\[<CHARACTER>\\|<INTEGER>\\]",
+        false);
+    f.checkFails("^CAST(MAP[4.2, 1] AS VARIANT)[4.2]^",
+        "Cannot apply 'ITEM' to arguments of type 'ITEM\\(<VARIANT>, 
<DECIMAL\\(2, 1\\)>\\)'\\. "
+            + "Supported form\\(s\\): <ARRAY>\\[<INTEGER>\\]\n"
+            + "<MAP>\\[<ANY>\\]\n"
+            + "<ROW>\\[<CHARACTER>\\|<INTEGER>\\]\n"
+            + "<VARIANT>\\[<CHARACTER>\\|<INTEGER>\\]",
         false);
 
     // Array of INTEGER NOT NULL is interesting because we might be tempted

Reply via email to