MyCATApache/Mycat-Server
View on GitHub此版本Mycat-server-1.6.7.6-release.jar不支持MySQL MAX()函数
Open
#2,840 opened on Aug 30, 2021
help wanted
Repository metrics
- Stars
- (9,451 stars)
- PR merge metrics
- (No merged PRs in 30d)
Description
在Mycat查询后端MySQL某个库的某张表并且根据id使用max()函数计算时,前端返回异常如下---> 2013 - Lost connection to MySQL server during query 使用的版本: Mycat-server-1.6.7.6-release-20210730131311-linux.tar.gz mycat.log日志报错如下:
2021-08-30 15:47:06.575 WARN [$_NIOREACTOR-1-RW] (io.mycat.net.NIOReactor$RW.run(NIOReactor.java:118)) - caught err:
java.lang.ArrayIndexOutOfBoundsException: 11
at com.alibaba.druid.sql.parser.SQLExprParser.getAggregateFunction(SQLExprParser.java:2131) ~[druid-1.2.6.jar:1.2.6]
at com.alibaba.druid.sql.parser.SQLExprParser.methodRest(SQLExprParser.java:1565) ~[druid-1.2.6.jar:1.2.6]
at com.alibaba.druid.sql.parser.SQLExprParser.parseSelectItem(SQLExprParser.java:5553) ~[druid-1.2.6.jar:1.2.6]
at io.mycat.route.parser.druid.MycatExprParser.parseSelectItem(MycatExprParser.java:31) ~[Mycat-server-1.6.7.6-release.jar:?]
at com.alibaba.druid.sql.parser.SQLSelectParser.parseSelectList(SQLSelectParser.java:982) ~[druid-1.2.6.jar:1.2.6]
at com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser.query(MySqlSelectParser.java:239) ~[druid-1.2.6.jar:1.2.6]
at com.alibaba.druid.sql.parser.SQLSelectParser.query(SQLSelectParser.java:378) ~[druid-1.2.6.jar:1.2.6]
at com.alibaba.druid.sql.parser.SQLSelectParser.select(SQLSelectParser.java:61) ~[druid-1.2.6.jar:1.2.6]
at io.mycat.route.parser.druid.MycatStatementParser.parseSelect(MycatStatementParser.java:39) ~[Mycat-server-1.6.7.6-release.jar:?]
at io.mycat.route.parser.druid.MycatStatementParser.parseSelect(MycatStatementParser.java:15) ~[Mycat-server-1.6.7.6-release.jar:?]
at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatement(SQLStatementParser.java:4518) ~[druid-1.2.6.jar:1.2.6]
at io.mycat.server.util.SchemaUtil.parseSchema(SchemaUtil.java:24) ~[Mycat-server-1.6.7.6-release.jar:?]
at io.mycat.server.ServerConnection.execute(ServerConnection.java:275) ~[Mycat-server-1.6.7.6-release.jar:?]
at io.mycat.server.handler.SelectHandler.handle(SelectHandler.java:129) ~[Mycat-server-1.6.7.6-release.jar:?]
at io.mycat.server.ServerQueryHandler.query(ServerQueryHandler.java:95) ~[Mycat-server-1.6.7.6-release.jar:?]
at io.mycat.net.FrontendConnection.query(FrontendConnection.java:397) ~[Mycat-server-1.6.7.6-release.jar:?]
at io.mycat.net.FrontendConnection.query(FrontendConnection.java:417) ~[Mycat-server-1.6.7.6-release.jar:?]
at io.mycat.net.handler.FrontendCommandHandler.handle(FrontendCommandHandler.java:76) ~[Mycat-server-1.6.7.6-release.jar:?]
at io.mycat.net.FrontendConnection.rawHandle(FrontendConnection.java:591) ~[Mycat-server-1.6.7.6-release.jar:?]
at io.mycat.net.FrontendConnection.handle(FrontendConnection.java:573) ~[Mycat-server-1.6.7.6-release.jar:?]
at io.mycat.net.AbstractConnection.onReadData(AbstractConnection.java:338) ~[Mycat-server-1.6.7.6-release.jar:?]
at io.mycat.net.NIOSocketWR.asynRead(NIOSocketWR.java:216) ~[Mycat-server-1.6.7.6-release.jar:?]
at io.mycat.net.AbstractConnection.asynRead(AbstractConnection.java:290) ~[Mycat-server-1.6.7.6-release.jar:?]
at io.mycat.net.NIOReactor$RW.run(NIOReactor.java:113) [Mycat-server-1.6.7.6-release.jar:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_162]
2021-08-30 15:47:06.579 INFO [$_NIOREACTOR-1-RW] (io.mycat.net.AbstractConnection.close(AbstractConnection.java:531)) - close connection,reason:program err:java.lang.ArrayIndexOutOfBoundsException: 11 ,ServerConnection [id=3, schema=ali_cloud, host=10.10.81.249, user=mycat_user,txIsolation=3, autocommit=true, schema=ali_cloud, executeSql=SELECT
a.*,
sum( CASE WHEN t_area_reruns.status = 0 THEN ifnull( t_area_reruns_detial.reruns_number, 0 ) ELSE 0 END ) AS rerunsNumber,
sum( CASE WHEN t_area_reruns.status = 0 THEN ifnull( t_area_reruns_detial.reruns_weight, 0 ) ELSE 0 END ) AS rerunsWeight,
max( CASE WHEN t_area_reruns.status = 0 THEN ifnull( t_area_reruns_detial.if_check_reruns, 0 ) ELSE 0 END ) AS ifCheckreruns,
sum( ifnull( t_reces_detial_rewords.rewirks_num, 0 ) ) AS rewirksNum,
sum( ifnull( t_reces_detial_rewords.rewirks_weight, 0 ) ) AS rewirksWeight,
sum( ifnull( t_reces_detial_rewords.no_rewirks_num, 0 ) ) AS norewirksNum,
sum( ifnull( t_reces_detial_rewords.no_rewirks_weight, 0 ) ) AS norewirksWeight
FROM
.......
使用的SQL语句 select max(id) from t_area_reruns;