Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

druid sqlparser卡住 #3058

Closed
yanshuai opened this issue Jan 31, 2019 · 1 comment
Closed

druid sqlparser卡住 #3058

yanshuai opened this issue Jan 31, 2019 · 1 comment
Labels
Milestone

Comments

@yanshuai
Copy link

yanshuai commented Jan 31, 2019

对于sql:

select job_names.job_name from cover_rage_job_org as org RIGHT JOIN (
 select job_names.job_name as job_name
    from (
    SELECT '1' as job_name
) job_name_all) as job_names on job_names.job_name = org.job_name

,sqlparser会卡住

List<SQLStatement> sqlStatements = SQLUtils.parseStatements(sql, JdbcConstants.MYSQL);
for (SQLStatement sqlStatement : sqlStatements) {
MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
sqlStatement.accept(visitor);
}

在com.alibaba.druid.sql.visitor.SchemaStatVisitor unwrapExpr 这个表达式上会卡住,
建议在825行附近增加逻辑:

if (selectItem != null) {
SQLExpr expr1 = selectItem.getExpr();
if (expr1.equals(expr)) {
break;
}
expr = expr1;
continue;
}

使用的是1.1.12的druid版本

@wenshao wenshao added the Bug label Feb 3, 2019
@wenshao wenshao added this to the 1.1.14 milestone Feb 3, 2019
@wenshao
Copy link
Member

wenshao commented Feb 27, 2019

问题已修复,请用新版本 https://github.com/alibaba/druid/releases/tag/1.1.14

@wenshao wenshao closed this as completed Feb 27, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants