mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
fix sql formater bug
This commit is contained in:
@@ -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));
|
||||
|
14
hutool-db/src/test/java/cn/hutool/db/sql/SqlFormatterTest.java
Executable file
14
hutool-db/src/test/java/cn/hutool/db/sql/SqlFormatterTest.java
Executable 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);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user