xuzifu666 commented on code in PR #4431:
URL: https://github.com/apache/calcite/pull/4431#discussion_r2176435134


##########
testkit/src/main/java/org/apache/calcite/test/SqlOperatorTest.java:
##########
@@ -2545,6 +2545,30 @@ void testCastToBoolean(CastType castType, 
SqlOperatorFixture f) {
     f.checkNull("cast(null as integer array) || array[1]");
   }
 
+  /** Test case for <a 
href="https://issues.apache.org/jira/browse/CALCITE-7063";>
+   * Result type inferred for CONCAT_FUNCTION is incorrect for BINARY 
arguments</a>. */
+  @Test void testConcatFuncMysql() {
+    final SqlOperatorFixture f = fixture().withLibrary(SqlLibrary.MYSQL);
+
+    // test for ByteString
+    f.setFor(SqlLibraryOperators.CONCAT_FUNCTION_MYSQL);
+    f.checkString("concat('a', x'61')", "6161", "BINARY(2) NOT NULL");
+    f.checkString("concat('abc', 'bb', 'cc')", "abcbbcc", "VARCHAR(7) NOT 
NULL");
+    f.checkString("concat(x'616263',x'62')", "61626362", "BINARY(4) NOT NULL");
+    f.checkString("concat(x'616263','abc')", "616263616263", "BINARY(6) NOT 
NULL");
+    f.checkString("concat(x'61',x'62')", "6162", "BINARY(2) NOT NULL");
+    f.checkString("concat(cast(x'61' as binary), cast(x'62' as binary), "

Review Comment:
   Yes, some of the problems I described have nothing to do with mixed types. 
As far as I know, other functions return varchar or varbinary types without 
precision directly, so there is no need to calculate the precision, and even if 
there is a subquery verification, it can be matched directly.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to