alibaba / druid

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

clickhouse sql 语句解析错误 #4043

Closed kiwimg closed 3 years ago

kiwimg commented 3 years ago

com.alibaba.druid.sql.parser.ParserException: ERROR. pos 632, line 25, column 62, token [ at com.alibaba.druid.sql.parser.SQLExprParser.primary(SQLExprParser.java:1127) ~[druid-1.2.2.jar:1.2.2] at com.alibaba.druid.sql.parser.SQLExprParser.expr(SQLExprParser.java:95) ~[druid-1.2.2.jar:1.2.2] at com.alibaba.druid.sql.parser.SQLExprParser.exprList(SQLExprParser.java:1876) ~[druid-1.2.2.jar:1.2.2] at com.alibaba.druid.sql.parser.SQLExprParser.methodRest(SQLExprParser.java:1573) ~[druid-1.2.2.jar:1.2.2] at com.alibaba.druid.sql.parser.SQLExprParser.primaryRest(SQLExprParser.java:1349) ~[druid-1.2.2.jar:1.2.2] at com.alibaba.druid.sql.dialect.clickhouse.parser.ClickhouseExprParser.primaryRest(ClickhouseExprParser.java:76) ~[druid-1.2.2.jar:1.2.2] at com.alibaba.druid.sql.parser.SQLSelectParser.parseWhere(SQLSelectParser.java:676) ~[druid-1.2.2.jar:1.2.2] at com.alibaba.druid.sql.parser.SQLSelectParser.query(SQLSelectParser.java:443) ~[druid-1.2.2.jar:1.2.2] at com.alibaba.druid.sql.parser.SQLSelectParser.query(SQLSelectParser.java:372) ~[druid-1.2.2.jar:1.2.2] at com.alibaba.druid.sql.parser.SQLSelectParser.select(SQLSelectParser.java:61) ~[druid-1.2.2.jar:1.2.2] at com.alibaba.druid.sql.parser.SQLExprParser.primary(SQLExprParser.java:785) ~[druid-1.2.2.jar:1.2.2] at com.alibaba.druid.sql.parser.SQLExprParser.expr(SQLExprParser.java:95) ~[druid-1.2.2.jar:1.2.2] at com.alibaba.druid.sql.parser.SQLExprParser.inRest(SQLExprParser.java:2625) ~[druid-1.2.2.jar:1.2.2] at com.alibaba.druid.sql.parser.SQLExprParser.relationalRest(SQLExprParser.java:3279) ~[druid-1.2.2.jar:1.2.2] at com.alibaba.druid.sql.parser.SQLExprParser.relational(SQLExprParser.java:3036) ~[druid-1.2.2.jar:1.2.2] at com.alibaba.druid.sql.parser.SQLExprParser.andRest(SQLExprParser.java:2887) ~[druid-1.2.2.jar:1.2.2] at com.alibaba.druid.sql.parser.SQLSelectParser.parseWhere(SQLSelectParser.java:672) ~[druid-1.2.2.jar:1.2.2] at com.alibaba.druid.sql.parser.SQLSelectParser.query(SQLSelectParser.java:443) ~[druid-1.2.2.jar:1.2.2] at com.alibaba.druid.sql.parser.SQLSelectParser.query(SQLSelectParser.java:372) ~[druid-1.2.2.jar:1.2.2] at com.alibaba.druid.sql.parser.SQLSelectParser.select(SQLSelectParser.java:61) ~[druid-1.2.2.jar:1.2.2] at com.alibaba.druid.sql.parser.SQLStatementParser.parseSelect(SQLStatementParser.java:4119) ~[druid-1.2.2.jar:1.2.2] at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:204) ~[druid-1.2.2.jar:1.2.2] at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:113) ~[druid-1.2.2.jar:1.2.2] at com.alibaba.druid.sql.visitor.ParameterizedOutputVisitorUtils.parameterize(ParameterizedOutputVisitorUtils.java:153) ~[druid-1.2.2.jar:1.2.2] at com.alibaba.druid.sql.visitor.ParameterizedOutputVisitorUtils.parameterize(ParameterizedOutputVisitorUtils.java:126) ~[druid-1.2.2.jar:1.2.2] at com.alibaba.druid.filter.stat.StatFilter.mergeSql(StatFilter.java:156) [druid-1.2.2.jar:1.2.2] at com.alibaba.druid.filter.stat.StatFilter.createSqlStat(StatFilter.java:657) [druid-1.2.2.jar:1.2.2] at com.alibaba.druid.filter.stat.StatFilter.statementPrepareAfter(StatFilter.java:320) [druid-1.2.2.jar:1.2.2] at com.alibaba.druid.filter.FilterEventAdapter.connection_prepareStatement(FilterEventAdapter.java:124) [druid-1.2.2.jar:1.2.2] at com.alibaba.druid.filter.FilterChainImpl.connection_prepareStatement(FilterChainImpl.java:568) [druid-1.2.2.jar:1.2.2] at com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl.prepareStatement(ConnectionProxyImpl.java:341) [druid-1.2.2.jar:1.2.2] at com.alibaba.druid.pool.DruidPooledConnection.prepareStatement(DruidPooledConnection.java:351) [druid-1.2.2.jar:1.2.2] at org.springframework.jdbc.core.JdbcTemplate$SimplePreparedStatementCreator.createPreparedStatement(JdbcTemplate.java:1556) [spring-jdbc-5.1.18.RELEASE.jar:5.1.18.RELEASE] at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:615) [spring-jdbc-5.1.18.RELEASE.jar:5.1.18.RELEASE] at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:669) [spring-jdbc-5.1.18.RELEASE.jar:5.1.18.RELEASE] at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:700) [spring-jdbc-5.1.18.RELEASE.jar:5.1.18.RELEASE] at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:712) [spring-jdbc-5.1.18.RELEASE.jar:5.1.18.RELEASE] at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:768) [spring-jdbc-5.1.18.RELEASE.jar:5.1.18.RELEASE]

kiwimg commented 3 years ago

druid 1.2.2 版本 执行的sql 如下 select * from data_all dsa where dsa.sign='1' and dsa.number in ( select DISTINCT number from dc_clients do where hasAny(splitByString(',',cast(do.df_time as String)),[?,?])=1 )

kiwimg commented 3 years ago

感谢

wenshao commented 3 years ago

https://github.com/alibaba/druid/releases/tag/1.2.4 请用新版本