mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
improved sql parser.
This commit is contained in:
@@ -190,7 +190,12 @@ public abstract class SQLObjectImpl implements SQLObject {
|
||||
}
|
||||
|
||||
public boolean hasBeforeComment() {
|
||||
List<String> comments = getBeforeCommentsDirect();
|
||||
if (attributes == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
List<String> comments = (List<String>) attributes.get("format.before_comment");
|
||||
|
||||
if (comments == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -22,7 +22,6 @@ import java.util.List;
|
||||
import com.alibaba.druid.sql.SQLUtils;
|
||||
import com.alibaba.druid.sql.ast.*;
|
||||
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
|
||||
import com.alibaba.druid.util.FnvHash.Constants;
|
||||
import com.alibaba.druid.util.FnvHash;
|
||||
|
||||
public class SQLAggregateExpr extends SQLExprImpl implements Serializable, SQLReplaceable {
|
||||
|
||||
@@ -52,7 +52,6 @@ import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleUnique;
|
||||
import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleUsingIndexClause;
|
||||
import com.alibaba.druid.sql.parser.*;
|
||||
import com.alibaba.druid.util.FnvHash;
|
||||
import com.alibaba.druid.util.FnvHash.Constants;
|
||||
import com.alibaba.druid.util.JdbcConstants;
|
||||
|
||||
public class OracleExprParser extends SQLExprParser {
|
||||
|
||||
-1
@@ -28,7 +28,6 @@ import com.alibaba.druid.sql.ast.statement.SQLSubqueryTableSource;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLTableSource;
|
||||
import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleSelectQueryBlock;
|
||||
import com.alibaba.druid.util.FnvHash;
|
||||
import com.alibaba.druid.util.FnvHash.Constants;
|
||||
|
||||
public class OracleToMySqlOutputVisitor extends OracleOutputVisitor {
|
||||
|
||||
|
||||
@@ -45,7 +45,6 @@ import com.alibaba.druid.sql.ast.statement.SQLSelectOrderByItem;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLUnique;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLUpdateSetItem;
|
||||
import com.alibaba.druid.util.FnvHash;
|
||||
import com.alibaba.druid.util.FnvHash.Constants;
|
||||
import com.alibaba.druid.util.JdbcConstants;
|
||||
|
||||
public class SQLExprParser extends SQLParser {
|
||||
|
||||
@@ -36,7 +36,19 @@ public final class FnvHash {
|
||||
return hash;
|
||||
}
|
||||
|
||||
public static long fnv1a_64(char[] chars) {
|
||||
if (chars == null) {
|
||||
return 0;
|
||||
}
|
||||
long hash = BASIC;
|
||||
for (int i = 0; i < chars.length; ++i) {
|
||||
char c = chars[i];
|
||||
hash ^= c;
|
||||
hash *= PRIME;
|
||||
}
|
||||
|
||||
return hash;
|
||||
}
|
||||
|
||||
/**
|
||||
* lower & normalized & fnv_1a_64
|
||||
|
||||
Reference in New Issue
Block a user