From 84e97c1def50abae410f40f3986ff8f3d5715d76 Mon Sep 17 00:00:00 2001 From: Ran Tao Date: Thu, 26 Oct 2023 12:39:56 +0800 Subject: [PATCH] Add UT for leastRestrictive --- .../java/org/apache/calcite/test/SqlOperatorTest.java | 10 ++++++++++ 1 file changed, 10 insertions(+) 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 29d311153888..c3aeee57a407 100644 --- a/testkit/src/main/java/org/apache/calcite/test/SqlOperatorTest.java +++ b/testkit/src/main/java/org/apache/calcite/test/SqlOperatorTest.java @@ -10534,6 +10534,13 @@ private static void checkArrayConcatAggFuncFails(SqlOperatorFixture t) { "Map requires an even number of arguments", false); f1.checkFails("^map(1, 1, 2, 'x')^", "Parameters must be of the same type", false); + // leastRestrictive for key + f1.checkFails("^MAP('k1', 1, 1, 2.0, 'k3', 1)^", + "Parameters must be of the same type", false); + // leastRestrictive for value + f1.checkFails("^MAP('k1', 1, 'k2', 2.0, 'k3', '3')^", + "Parameters must be of the same type", false); + // this behavior is different from std MapValueConstructor f1.checkScalar("map()", "{}", @@ -10550,6 +10557,9 @@ private static void checkArrayConcatAggFuncFails(SqlOperatorFixture t) { f1.checkScalar("map('washington', 1, 'obama', 44)", "{washington=1, obama=44}", "(CHAR(10) NOT NULL, INTEGER NOT NULL) MAP NOT NULL"); + f1.checkScalar("map('k1', 1, 'k2', 2.0)", + "{k1=1, k2=2.0}", + "(CHAR(2) NOT NULL, DECIMAL(11, 1) NOT NULL) MAP NOT NULL"); } @Test void testCeilFunc() {