[ https://issues.apache.org/jira/browse/FLINK-32721?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17783908#comment-17783908 ]
Yao Zhang commented on FLINK-32721: ----------------------------------- Hi Community, It seems that there is a contradiction in what CHAR means in Flink. Char type in SQL means a fixed-length string but in org.apache.flink.api.common.typeinfo.Types.CHAR is a single character with the type of java.lang.Character in Java. Based on this in order to test max aggretation function with type 'char' in unit test org/apache/flink/table/planner/plan/stream/sql/agg/AggregateTest.scala, we should not define another filed with "Types.{color:#c77dbb}CHAR" {color}{color:#172b4d}as it stands for a single character. The only {color:#172b4d}representation{color} of "char" type in SQL in org.apache.flink.api.common.typeinfo.Types is STRING. {color} > agg max/min supports char type > ------------------------------ > > Key: FLINK-32721 > URL: https://issues.apache.org/jira/browse/FLINK-32721 > Project: Flink > Issue Type: Improvement > Components: Table SQL / Planner > Affects Versions: 1.18.0 > Reporter: Jacky Lau > Assignee: Jacky Lau > Priority: Major > Labels: pull-request-available, stale-assigned > Fix For: 1.19.0 > > > {code:java} > // flink > Flink SQL> CREATE TABLE Orders ( > > name char(10), > > price DECIMAL(32,2), > > buyer ROW<first_name STRING, last_name STRING>, > > order_time TIMESTAMP(3) > > ) WITH ( > > 'connector' = 'datagen' > > ); > [INFO] Execute statement succeed. > Flink SQL> select max(name) from Orders; > [ERROR] Could not execute SQL statement. Reason: > org.apache.flink.table.api.TableException: Max aggregate function does not > support type: ''CHAR''. > Please re-check the data type. {code} > {code:java} > // mysql > CREATE TABLE IF NOT EXISTS `docs` ( > `id` int(6) unsigned NOT NULL, > `rev` int(3) unsigned NOT NULL, > `content` char(200) NOT NULL, > PRIMARY KEY (`id`,`rev`) > ) DEFAULT CHARSET=utf8; > INSERT INTO `docs` (`id`, `rev`, `content`) VALUES > ('1', '1', 'The earth is flat'), > ('2', '1', 'One hundred angels can dance on the head of a pin'), > ('1', '2', 'The earth is flat and rests on a bull\'s horn'), > ('1', '3', 'The earth is like a ball.'); > select max(content) from docs; > // result > |max(content)| > The earth is like a ball.{code} -- This message was sent by Atlassian Jira (v8.20.10#820010)