MyCATApache/Mycat-Server

此版本Mycat-server-1.6.7.6-release.jar不支持MySQL MAX()函数

Open

#2.840 aberto em 30 de ago. de 2021

Ver no GitHub
 (16 comments) (0 reactions) (0 assignees)Java (3.886 forks)batch import
help wanted

Métricas do repositório

Stars
 (9.451 stars)
Métricas de merge de PR
 (Nenhuma PRs mesclada em 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;

Guia do colaborador