improved sql parser.

This commit is contained in:
wenshao
2017-09-11 01:28:15 +08:00
parent 19501d678d
commit 20c3f9304e
11 changed files with 374 additions and 16 deletions
@@ -23,6 +23,7 @@ public class H2Lexer extends Lexer {
map.put("USING", Token.USING);
map.put("ROW", Token.ROW);
map.put("LIMIT", Token.LIMIT);
DEFAULT_H2_KEYWORDS = new Keywords(map);
}
@@ -9,6 +9,7 @@ import com.alibaba.druid.sql.ast.statement.SQLSelect;
import com.alibaba.druid.sql.dialect.h2.ast.H2MergeStatement;
import com.alibaba.druid.sql.parser.*;
import com.alibaba.druid.util.FnvHash;
import com.alibaba.druid.util.JdbcConstants;
public class H2StatementParser extends SQLStatementParser {
public H2StatementParser(String sql) {
@@ -32,6 +33,7 @@ public class H2StatementParser extends SQLStatementParser {
accept(Token.INTO);
SQLReplaceStatement stmt = new SQLReplaceStatement();
stmt.setDbType(JdbcConstants.H2);
SQLName tableName = exprParser.name();
stmt.setTableName(tableName);
@@ -1960,4 +1960,8 @@ public class Lexer {
return buf.toString();
}
public String getSource() {
return text;
}
}
@@ -310,7 +310,7 @@ public class SQLSelectParser extends SQLParser {
return withQueryClause;
}
protected void parseWhere(SQLSelectQueryBlock queryBlock) {
public void parseWhere(SQLSelectQueryBlock queryBlock) {
if (lexer.token == Token.WHERE) {
lexer.nextToken();
@@ -22,6 +22,7 @@ import com.alibaba.druid.sql.ast.*;
import com.alibaba.druid.sql.ast.expr.*;
import com.alibaba.druid.sql.ast.statement.*;
import com.alibaba.druid.sql.ast.statement.SQLCreateTriggerStatement.TriggerType;
import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlSelectQueryBlock;
import com.alibaba.druid.sql.dialect.oracle.parser.OracleExprParser;
import com.alibaba.druid.util.FnvHash;
import com.alibaba.druid.util.JdbcConstants;