@wenshao 你好,想跟你请教个问题:
我在postgresql里执行一个sql的时候回报错错误信息如下,麻烦你帮忙看下,多谢
SELECT res.restaurant_id, row_number() over (order by ST_Distance(res.restaurant_point,GeomFromEWKT(?))*111.12 ) as row_id FROM restaurant res where res.city_id = ? and res.is_delete =false and res.restaurant_id <1000000 limit 10
com.alibaba.druid.sql.parser.ParserException: TODO OVER over, pos 46
at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:226)
at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:70)
at com.alibaba.druid.sql.visitor.ParameterizedOutputVisitorUtils.parameterize(ParameterizedOutputVisitorUtils.java:41)
at com.alibaba.druid.filter.stat.StatFilter.mergeSql(StatFilter.java:145)
at com.alibaba.druid.filter.stat.StatFilter.createSqlStat(StatFilter.java:627)
at com.alibaba.druid.filter.stat.StatFilter.statementPrepareAfter(StatFilter.java:305)
这个是不影响执行的,只会LOG.error,打错误日志。
这是因为Druid的StatFilter的SQL合并模块调用了SQLParser,postgres的聚合函数不认识ROW_NUM函数。
问题已经修复,如果着急,也可以使用最新版本的快照:http://code.alibabatech.com/mvn/snapshots//com/alibaba/druid/0.2.12-SNAPSHOT/
多谢温少~版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。