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