diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleCommitStatement.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleCommitStatement.java index bd869a5164..670e9dbe09 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleCommitStatement.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleCommitStatement.java @@ -27,9 +27,7 @@ public class OracleCommitStatement extends OracleStatementImpl { @Override public void accept0(OracleASTVisitor visitor) { - if (visitor.visit(this)) { - - } + visitor.visit(this); visitor.endVisit(this); } diff --git a/src/main/java/com/alibaba/druid/sql/dialect/postgresql/parser/PGExprParser.java b/src/main/java/com/alibaba/druid/sql/dialect/postgresql/parser/PGExprParser.java index 714c0e2c11..545bf999bc 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/postgresql/parser/PGExprParser.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/postgresql/parser/PGExprParser.java @@ -73,9 +73,9 @@ public class PGExprParser extends SQLExprParser{ over.setOrderBy(parseOrderBy()); - if (over.getOrderBy() != null) { - //TODO window - } + // if (over.getOrderBy() != null) { + // //TODO window + // } accept(Token.RPAREN); aggregateExpr.setOver(over); diff --git a/src/main/java/com/alibaba/druid/sql/dialect/postgresql/parser/PGSelectParser.java b/src/main/java/com/alibaba/druid/sql/dialect/postgresql/parser/PGSelectParser.java index 3eb5c6b20b..4a0fe68299 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/postgresql/parser/PGSelectParser.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/postgresql/parser/PGSelectParser.java @@ -147,9 +147,6 @@ public class PGSelectParser extends SQLSelectParser { if (lexer.token() == Token.ROW || lexer.token() == Token.ROWS) { lexer.nextToken(); - } else { - // TODO - // throw new ParserException("expect 'ROW' or 'ROWS'"); } } diff --git a/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/Top.java b/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/Top.java index 577b16a113..0a4e258c82 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/Top.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/Top.java @@ -55,9 +55,8 @@ public class Top extends SQLServerObjectImpl { @Override public void accept0(SQLServerASTVisitor visitor) { - if (visitor.visit(this)) { - - } + visitor.visit(this); + visitor.endVisit(this); } } diff --git a/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/expr/SQLServerObjectReferenceExpr.java b/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/expr/SQLServerObjectReferenceExpr.java index 2f1522a33a..113c9b4ed9 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/expr/SQLServerObjectReferenceExpr.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/expr/SQLServerObjectReferenceExpr.java @@ -60,9 +60,7 @@ public class SQLServerObjectReferenceExpr extends SQLServerObjectImpl implements @Override public void accept0(SQLServerASTVisitor visitor) { - if (visitor.visit(this)) { - - } + visitor.visit(this); visitor.endVisit(this); } diff --git a/src/main/java/com/alibaba/druid/sql/parser/SQLDDLParser.java b/src/main/java/com/alibaba/druid/sql/parser/SQLDDLParser.java index e86e8b86b8..8b7e703cf9 100644 --- a/src/main/java/com/alibaba/druid/sql/parser/SQLDDLParser.java +++ b/src/main/java/com/alibaba/druid/sql/parser/SQLDDLParser.java @@ -15,7 +15,6 @@ */ package com.alibaba.druid.sql.parser; -import com.alibaba.druid.sql.ast.SQLName; import com.alibaba.druid.sql.ast.statement.SQLTableConstaint; public class SQLDDLParser extends SQLStatementParser { @@ -29,13 +28,13 @@ public class SQLDDLParser extends SQLStatementParser { } protected SQLTableConstaint parseConstraint() { - SQLName name = null; if (lexer.token() == Token.CONSTRAINT) { lexer.nextToken(); } if (lexer.token() == Token.IDENTIFIER) { - name = this.exprParser.name(); + this.exprParser.name(); + throw new ParserException("TODO"); } if (lexer.token() == Token.PRIMARY) { @@ -45,10 +44,6 @@ public class SQLDDLParser extends SQLStatementParser { throw new ParserException("TODO"); } - if (name != null) { - - } - throw new ParserException("TODO"); } } diff --git a/src/main/java/com/alibaba/druid/wall/spi/MySqlWallVisitor.java b/src/main/java/com/alibaba/druid/wall/spi/MySqlWallVisitor.java index aa2328d85e..e66e515b4c 100644 --- a/src/main/java/com/alibaba/druid/wall/spi/MySqlWallVisitor.java +++ b/src/main/java/com/alibaba/druid/wall/spi/MySqlWallVisitor.java @@ -126,7 +126,7 @@ public class MySqlWallVisitor extends MySqlASTVisitorAdapter implements WallVisi WallVisitorUtils.checkDelete(this, x); return true; } - + @Override public boolean visit(MySqlUpdateStatement x) { return visit((SQLUpdateStatement) x); @@ -241,21 +241,22 @@ public class MySqlWallVisitor extends MySqlASTVisitorAdapter implements WallVisi return; } + boolean allow = false; if (x instanceof SQLInsertStatement) { - + allow = true; } else if (x instanceof SQLSelectStatement) { - + allow = true; } else if (x instanceof SQLDeleteStatement) { - + allow = true; } else if (x instanceof SQLUpdateStatement) { - + allow = true; } else if (x instanceof SQLCallStatement) { - + allow = true; } else if (x instanceof SQLTruncateStatement) { - if (!config.isTruncateAllow()) { - violations.add(new IllegalSQLObjectViolation(toSQL(x))); - } - } else { + allow = config.isTruncateAllow(); + } + + if (!allow) { violations.add(new IllegalSQLObjectViolation(toSQL(x))); } } diff --git a/src/main/java/com/alibaba/druid/wall/spi/OracleWallVisitor.java b/src/main/java/com/alibaba/druid/wall/spi/OracleWallVisitor.java index 471f091be4..1bd22f2bdb 100644 --- a/src/main/java/com/alibaba/druid/wall/spi/OracleWallVisitor.java +++ b/src/main/java/com/alibaba/druid/wall/spi/OracleWallVisitor.java @@ -174,21 +174,26 @@ public class OracleWallVisitor extends OracleASTVisitorAdapter implements WallVi return; } + boolean allow = false; if (x instanceof SQLInsertStatement) { - + allow = true; } else if (x instanceof SQLSelectStatement) { - + allow = true; } else if (x instanceof SQLDeleteStatement) { - + allow = true; } else if (x instanceof SQLUpdateStatement) { + allow = true; } else if (x instanceof OracleMultiInsertStatement) { + allow = true; } else if (x instanceof OracleMergeStatement) { + allow = true; } else if (x instanceof SQLCallStatement) { + allow = true; } else if (x instanceof SQLTruncateStatement) { - if (!config.isTruncateAllow()) { - violations.add(new IllegalSQLObjectViolation(toSQL(x))); - } - } else { + allow = config.isTruncateAllow(); + } + + if (!allow) { violations.add(new IllegalSQLObjectViolation(toSQL(x))); } } diff --git a/src/main/java/com/alibaba/druid/wall/spi/SQLServerWallVisitor.java b/src/main/java/com/alibaba/druid/wall/spi/SQLServerWallVisitor.java index 001a334f80..179b5bc25f 100644 --- a/src/main/java/com/alibaba/druid/wall/spi/SQLServerWallVisitor.java +++ b/src/main/java/com/alibaba/druid/wall/spi/SQLServerWallVisitor.java @@ -53,7 +53,7 @@ public class SQLServerWallVisitor extends SQLServerASTVisitorAdapter implements private final WallProvider provider; private final List violations = new ArrayList(); - public SQLServerWallVisitor(WallProvider provider) { + public SQLServerWallVisitor(WallProvider provider){ this.config = provider.getConfig(); this.provider = provider; } @@ -156,20 +156,22 @@ public class SQLServerWallVisitor extends SQLServerASTVisitorAdapter implements return; } + boolean allow = false; if (x instanceof SQLInsertStatement) { - + allow = true; } else if (x instanceof SQLSelectStatement) { - + allow = true; } else if (x instanceof SQLDeleteStatement) { - + allow = true; } else if (x instanceof SQLUpdateStatement) { + allow = true; } else if (x instanceof SQLCallStatement) { - + allow = true; } else if (x instanceof SQLTruncateStatement) { - if (!config.isTruncateAllow()) { - violations.add(new IllegalSQLObjectViolation(toSQL(x))); - } - } else { + allow = config.isTruncateAllow(); + } + + if (!allow) { violations.add(new IllegalSQLObjectViolation(toSQL(x))); } }