alibaba / druid

阿里云计算平台DataWorks(https://help.aliyun.com/document_detail/137663.html) 团队出品,为监控而生的数据库连接池
https://github.com/alibaba/druid/wiki
Apache License 2.0
27.92k stars 8.57k forks source link

mysql8.0.28 druid 1.2.9 recursive递归查询报错 #4780

Open GCwithH2O opened 2 years ago

GCwithH2O commented 2 years ago

merge sql error, dbType mysql, druid-1.2.9, sql : .... join (with recursive cte as(select a. from ....... com.alibaba.druid.sql.parser.ParserException: syntax error, error in :'(with recursive cte as(select a. from sys_org', expect ), actual null, pos 408, line 1, column 406, token IDENTIFIER cte

GCwithH2O commented 2 years ago

stack: com.alibaba.druid.sql.parser.ParserException: syntax error, error in :'(with recursive cte as(select a.* from sys_org', expect ), actual null, pos 408, line 1, column 406, token IDENTIFIER cte at com.alibaba.druid.sql.parser.SQLParser.printError(SQLParser.java:841) ~[druid-1.2.9.jar:1.2.9] at com.alibaba.druid.sql.parser.SQLParser.accept(SQLParser.java:849) ~[druid-1.2.9.jar:1.2.9] at com.alibaba.druid.sql.parser.SQLSelectParser.parseTableSourceRest(SQLSelectParser.java:1571) ~[druid-1.2.9.jar:1.2.9] at com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser.parseTableSourceRest(MySqlSelectParser.java:822) ~[druid-1.2.9.jar:1.2.9] at com.alibaba.druid.sql.parser.SQLSelectParser.parseTableSourceRest(SQLSelectParser.java:1818) ~[druid-1.2.9.jar:1.2.9] at com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser.parseTableSourceRest(MySqlSelectParser.java:822) ~[druid-1.2.9.jar:1.2.9] at com.alibaba.druid.sql.parser.SQLSelectParser.parseTableSourceRest(SQLSelectParser.java:1397) ~[druid-1.2.9.jar:1.2.9] at com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser.parseTableSourceRest(MySqlSelectParser.java:822) ~[druid-1.2.9.jar:1.2.9] at com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser.parseTableSource(MySqlSelectParser.java:445) ~[druid-1.2.9.jar:1.2.9] at com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser.parseFrom(MySqlSelectParser.java:100) ~[druid-1.2.9.jar:1.2.9] at com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser.query(MySqlSelectParser.java:250) ~[druid-1.2.9.jar:1.2.9] at com.alibaba.druid.sql.parser.SQLSelectParser.select(SQLSelectParser.java:61) ~[druid-1.2.9.jar:1.2.9] at com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser.parseTableSource(MySqlSelectParser.java:355) ~[druid-1.2.9.jar:1.2.9] at com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser.parseFrom(MySqlSelectParser.java:100) ~[druid-1.2.9.jar:1.2.9] at com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser.query(MySqlSelectParser.java:250) ~[druid-1.2.9.jar:1.2.9] at com.alibaba.druid.sql.parser.SQLSelectParser.select(SQLSelectParser.java:61) ~[druid-1.2.9.jar:1.2.9] at com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser.parseSelect(MySqlStatementParser.java:124) ~[druid-1.2.9.jar:1.2.9] at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:213) ~[druid-1.2.9.jar:1.2.9] at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:114) ~[druid-1.2.9.jar:1.2.9] at com.alibaba.druid.sql.visitor.ParameterizedOutputVisitorUtils.parameterize(ParameterizedOutputVisitorUtils.java:154) ~[druid-1.2.9.jar:1.2.9] at com.alibaba.druid.sql.visitor.ParameterizedOutputVisitorUtils.parameterize(ParameterizedOutputVisitorUtils.java:127) ~[druid-1.2.9.jar:1.2.9] at com.alibaba.druid.filter.stat.StatFilter.mergeSql(StatFilter.java:167) [druid-1.2.9.jar:1.2.9] at com.alibaba.druid.filter.stat.StatFilter.createSqlStat(StatFilter.java:694) [druid-1.2.9.jar:1.2.9] at com.alibaba.druid.filter.stat.StatFilter.statementPrepareAfter(StatFilter.java:344) [druid-1.2.9.jar:1.2.9] at com.alibaba.druid.filter.FilterEventAdapter.connection_prepareStatement(FilterEventAdapter.java:124) [druid-1.2.9.jar:1.2.9] at com.alibaba.druid.filter.FilterChainImpl.connection_prepareStatement(FilterChainImpl.java:568) [druid-1.2.9.jar:1.2.9] at com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl.prepareStatement(ConnectionProxyImpl.java:341) [druid-1.2.9.jar:1.2.9] at com.alibaba.druid.pool.DruidPooledConnection.prepareStatement(DruidPooledConnection.java:377) [druid-1.2.9.jar:1.2.9]

Labriel commented 1 year ago

升级到1.2.11以上

t3cssd commented 1 year ago

升级到1.2.11以上

更新到最新的1.2.14还是报错,这么久了都没修复

dd932689325 commented 1 year ago

1.2.18,SQLUtils.format还是一样报错,只能把防火墙关掉,能修复下吗? SQL: SELECT u.user_id, u.username, u.email, u.name, u.password, u.salt, u.phone, u.avatar, u.wx_openid, u.qq_openid, u.wxcp_openid, u.dept_id, u.create_time ucreate_time, u.update_time uupdate_time, u.del_flag, u.lock_flag, u.tenant_id, d.name dept_name, IF(r.role_id IS NOT NULL, CONCAT(COUNT(r.role_id), '个,', GROUP_CONCAT(r.role_name)), '未分配任何角色') role_name, (WITH RECURSIVE cte AS (SELECT a.dept_id, a.name, a.parent_id FROM sys_dept a WHERE a.dept_id = d.dept_id UNION ALL SELECT b.dept_id, b.name, b.parent_id FROM sys_dept b, cte WHERE b.dept_id = cte.parent_id) SELECT GROUP_CONCAT(name ORDER BY parent_id) FROM cte) AS parent_dept_name FROM sys_user u LEFT JOIN sys_dept d ON d.dept_id = u.dept_id AND d.tenant_id = 1 LEFT JOIN sys_user_role ur ON ur.user_id = u.user_id LEFT JOIN sys_role r ON r.role_id = ur.role_id AND r.del_flag = u.del_flag AND r.tenant_id = 1 WHERE u.del_flag = '0' AND u.tenant_id = 1 GROUP BY u.user_id ORDER BY u.update_time DESC LIMIT 10