fix sql formater bug

This commit is contained in:
Looly
2021-06-25 22:04:49 +08:00
parent eae7edc1ae
commit 2f4544bc23
3 changed files with 25 additions and 2 deletions

View File

@@ -1,6 +1,11 @@
package cn.hutool.db.sql;
import java.util.*;
import cn.hutool.core.util.StrUtil;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.Set;
import java.util.StringTokenizer;
/**
* SQL格式化器 from Hibernate
@@ -303,6 +308,9 @@ public class SqlFormatter {
}
private static boolean isFunctionName(String tok) {
if(StrUtil.isEmpty(tok)){
return true;
}
char begin = tok.charAt(0);
boolean isIdentifier = (Character.isJavaIdentifierStart(begin)) || ('"' == begin);
return (isIdentifier) && (!LOGICAL.contains(tok)) && (!END_CLAUSES.contains(tok)) && (!QUANTIFIERS.contains(tok)) && (!DML.contains(tok)) && (!MISC.contains(tok));

View File

@@ -0,0 +1,14 @@
package cn.hutool.db.sql;
import org.junit.Test;
public class SqlFormatterTest {
@Test
public void formatTest(){
// issue#I3XS44@Gitee
// 测试是否空指针错误
String sql = "(select 1 from dual) union all (select 1 from dual)";
SqlFormatter.format(sql);
}
}