diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/clause/OracleErrorLoggingClause.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/clause/OracleErrorLoggingClause.java new file mode 100644 index 0000000000..8c05bdcfbb --- /dev/null +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/clause/OracleErrorLoggingClause.java @@ -0,0 +1,49 @@ +package com.alibaba.druid.sql.dialect.oracle.ast.clause; + +import com.alibaba.druid.sql.ast.SQLExpr; +import com.alibaba.druid.sql.ast.SQLName; +import com.alibaba.druid.sql.dialect.oracle.ast.OracleSQLObjectImpl; +import com.alibaba.druid.sql.dialect.oracle.visitor.OracleASTVisitor; + +public class OracleErrorLoggingClause extends OracleSQLObjectImpl { + + private static final long serialVersionUID = 1L; + private SQLName into; + private SQLExpr simpleExpression; + private SQLExpr limit; + + @Override + public void accept0(OracleASTVisitor visitor) { + if (visitor.visit(this)) { + acceptChild(visitor, into); + acceptChild(visitor, simpleExpression); + acceptChild(visitor, limit); + } + visitor.endVisit(this); + } + + public SQLName getInto() { + return into; + } + + public void setInto(SQLName into) { + this.into = into; + } + + public SQLExpr getSimpleExpression() { + return simpleExpression; + } + + public void setSimpleExpression(SQLExpr simpleExpression) { + this.simpleExpression = simpleExpression; + } + + public SQLExpr getLimit() { + return limit; + } + + public void setLimit(SQLExpr limit) { + this.limit = limit; + } + +} \ No newline at end of file diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleMergeStatement.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleMergeStatement.java index 4a51c4754c..5904ada623 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleMergeStatement.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleMergeStatement.java @@ -9,6 +9,7 @@ import com.alibaba.druid.sql.ast.statement.SQLTableSource; import com.alibaba.druid.sql.ast.statement.SQLUpdateSetItem; import com.alibaba.druid.sql.dialect.oracle.ast.OracleHint; import com.alibaba.druid.sql.dialect.oracle.ast.OracleSQLObjectImpl; +import com.alibaba.druid.sql.dialect.oracle.ast.clause.OracleErrorLoggingClause; import com.alibaba.druid.sql.dialect.oracle.visitor.OracleASTVisitor; public class OracleMergeStatement extends OracleStatementImpl { @@ -23,7 +24,7 @@ public class OracleMergeStatement extends OracleStatementImpl { private SQLExpr on; private MergeUpdateClause updateClause; private MergeInsertClause insertClause; - private ErrorLoggingClause errorLoggingClause; + private OracleErrorLoggingClause errorLoggingClause; public void accept0(OracleASTVisitor visitor) { if (visitor.visit(this)) { @@ -85,11 +86,11 @@ public class OracleMergeStatement extends OracleStatementImpl { this.insertClause = insertClause; } - public ErrorLoggingClause getErrorLoggingClause() { + public OracleErrorLoggingClause getErrorLoggingClause() { return errorLoggingClause; } - public void setErrorLoggingClause(ErrorLoggingClause errorLoggingClause) { + public void setErrorLoggingClause(OracleErrorLoggingClause errorLoggingClause) { this.errorLoggingClause = errorLoggingClause; } @@ -184,47 +185,4 @@ public class OracleMergeStatement extends OracleStatementImpl { } } - - public static class ErrorLoggingClause extends OracleSQLObjectImpl { - - private static final long serialVersionUID = 1L; - private SQLName into; - private SQLExpr simpleExpression; - private SQLExpr limit; - - @Override - public void accept0(OracleASTVisitor visitor) { - if (visitor.visit(this)) { - acceptChild(visitor, into); - acceptChild(visitor, simpleExpression); - acceptChild(visitor, limit); - } - visitor.endVisit(this); - } - - public SQLName getInto() { - return into; - } - - public void setInto(SQLName into) { - this.into = into; - } - - public SQLExpr getSimpleExpression() { - return simpleExpression; - } - - public void setSimpleExpression(SQLExpr simpleExpression) { - this.simpleExpression = simpleExpression; - } - - public SQLExpr getLimit() { - return limit; - } - - public void setLimit(SQLExpr limit) { - this.limit = limit; - } - - } } diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/parser/OracleStatementParser.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/parser/OracleStatementParser.java index dce08c3cf7..c81ddc22fe 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/parser/OracleStatementParser.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/parser/OracleStatementParser.java @@ -21,6 +21,7 @@ import com.alibaba.druid.sql.ast.SQLStatement; import com.alibaba.druid.sql.ast.statement.SQLSelectStatement; import com.alibaba.druid.sql.ast.statement.SQLTableSource; import com.alibaba.druid.sql.ast.statement.SQLUpdateSetItem; +import com.alibaba.druid.sql.dialect.oracle.ast.clause.OracleErrorLoggingClause; import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleMergeStatement; import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OraclePLSQLCommitStatement; import com.alibaba.druid.sql.parser.Lexer; @@ -221,7 +222,7 @@ public class OracleStatementParser extends SQLStatementParser { } if (lexer.token() == Token.LOG) { - OracleMergeStatement.ErrorLoggingClause errorClause = new OracleMergeStatement.ErrorLoggingClause(); + OracleErrorLoggingClause errorClause = new OracleErrorLoggingClause(); lexer.nextToken(); accept(Token.ERRORS); diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleASTVIsitorAdapter.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleASTVIsitorAdapter.java index 2bfc3c15ce..bc55a23102 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleASTVIsitorAdapter.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleASTVIsitorAdapter.java @@ -16,6 +16,7 @@ import com.alibaba.druid.sql.dialect.oracle.ast.clause.ModelClause.ModelColumnCl import com.alibaba.druid.sql.dialect.oracle.ast.clause.ModelClause.ModelRulesClause; import com.alibaba.druid.sql.dialect.oracle.ast.clause.ModelClause.QueryPartitionClause; import com.alibaba.druid.sql.dialect.oracle.ast.clause.ModelClause.ReturnRowsClause; +import com.alibaba.druid.sql.dialect.oracle.ast.clause.OracleErrorLoggingClause; import com.alibaba.druid.sql.dialect.oracle.ast.clause.PartitionExtensionClause; import com.alibaba.druid.sql.dialect.oracle.ast.clause.SampleClause; import com.alibaba.druid.sql.dialect.oracle.ast.clause.SearchClause; @@ -37,7 +38,6 @@ import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleTimestampExpr; import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleConstraintState; import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleDeleteStatement; import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleMergeStatement; -import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleMergeStatement.ErrorLoggingClause; import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleMergeStatement.MergeInsertClause; import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleMergeStatement.MergeUpdateClause; import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleOrderByItem; @@ -683,12 +683,12 @@ public class OracleASTVIsitorAdapter extends SQLASTVisitorAdapter implements Ora } @Override - public boolean visit(ErrorLoggingClause x) { + public boolean visit(OracleErrorLoggingClause x) { return true; } @Override - public void endVisit(ErrorLoggingClause x) { + public void endVisit(OracleErrorLoggingClause x) { } diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleASTVisitor.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleASTVisitor.java index bcd78bb71d..08727efcd5 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleASTVisitor.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleASTVisitor.java @@ -23,6 +23,7 @@ import com.alibaba.druid.sql.dialect.oracle.ast.clause.FlashbackQueryClause.AsOf import com.alibaba.druid.sql.dialect.oracle.ast.clause.FlashbackQueryClause.VersionsFlashbackQueryClause; import com.alibaba.druid.sql.dialect.oracle.ast.clause.GroupingSetExpr; import com.alibaba.druid.sql.dialect.oracle.ast.clause.ModelClause; +import com.alibaba.druid.sql.dialect.oracle.ast.clause.OracleErrorLoggingClause; import com.alibaba.druid.sql.dialect.oracle.ast.clause.PartitionExtensionClause; import com.alibaba.druid.sql.dialect.oracle.ast.clause.SampleClause; import com.alibaba.druid.sql.dialect.oracle.ast.clause.SearchClause; @@ -296,7 +297,7 @@ public interface OracleASTVisitor extends SQLASTVisitor { void endVisit(OracleMergeStatement.MergeInsertClause x); - boolean visit(OracleMergeStatement.ErrorLoggingClause x); + boolean visit(OracleErrorLoggingClause x); - void endVisit(OracleMergeStatement.ErrorLoggingClause x); + void endVisit(OracleErrorLoggingClause x); } diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleOutputVisitor.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleOutputVisitor.java index 27694111d5..b75758d216 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleOutputVisitor.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleOutputVisitor.java @@ -48,6 +48,7 @@ import com.alibaba.druid.sql.dialect.oracle.ast.clause.ModelClause.ModelRulesCla import com.alibaba.druid.sql.dialect.oracle.ast.clause.ModelClause.QueryPartitionClause; import com.alibaba.druid.sql.dialect.oracle.ast.clause.ModelClause.ReferenceModelClause; import com.alibaba.druid.sql.dialect.oracle.ast.clause.ModelClause.ReturnRowsClause; +import com.alibaba.druid.sql.dialect.oracle.ast.clause.OracleErrorLoggingClause; import com.alibaba.druid.sql.dialect.oracle.ast.clause.PartitionExtensionClause; import com.alibaba.druid.sql.dialect.oracle.ast.clause.SampleClause; import com.alibaba.druid.sql.dialect.oracle.ast.clause.SearchClause; @@ -68,7 +69,6 @@ import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleTimestampExpr; import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleConstraintState; import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleDeleteStatement; import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleMergeStatement; -import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleMergeStatement.ErrorLoggingClause; import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleMergeStatement.MergeInsertClause; import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleMergeStatement.MergeUpdateClause; import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleOrderByItem; @@ -1412,7 +1412,7 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS } @Override - public boolean visit(ErrorLoggingClause x) { + public boolean visit(OracleErrorLoggingClause x) { print("LOG ERRORS "); if (x.getInto() != null) { print("INTO "); @@ -1435,7 +1435,7 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS } @Override - public void endVisit(ErrorLoggingClause x) { + public void endVisit(OracleErrorLoggingClause x) { } } diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleSchemaStatVisitor.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleSchemaStatVisitor.java index 9522bc91a4..e28d454eec 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleSchemaStatVisitor.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleSchemaStatVisitor.java @@ -28,6 +28,7 @@ import com.alibaba.druid.sql.dialect.oracle.ast.clause.ModelClause.ModelColumnCl import com.alibaba.druid.sql.dialect.oracle.ast.clause.ModelClause.ModelRulesClause; import com.alibaba.druid.sql.dialect.oracle.ast.clause.ModelClause.QueryPartitionClause; import com.alibaba.druid.sql.dialect.oracle.ast.clause.ModelClause.ReturnRowsClause; +import com.alibaba.druid.sql.dialect.oracle.ast.clause.OracleErrorLoggingClause; import com.alibaba.druid.sql.dialect.oracle.ast.clause.PartitionExtensionClause; import com.alibaba.druid.sql.dialect.oracle.ast.clause.SampleClause; import com.alibaba.druid.sql.dialect.oracle.ast.clause.SearchClause; @@ -49,7 +50,6 @@ import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleTimestampExpr; import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleConstraintState; import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleDeleteStatement; import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleMergeStatement; -import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleMergeStatement.ErrorLoggingClause; import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleMergeStatement.MergeInsertClause; import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleMergeStatement.MergeUpdateClause; import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleOrderByItem; @@ -875,12 +875,12 @@ public class OracleSchemaStatVisitor extends SchemaStatVisitor implements Oracle } @Override - public boolean visit(ErrorLoggingClause x) { + public boolean visit(OracleErrorLoggingClause x) { return true; } @Override - public void endVisit(ErrorLoggingClause x) { + public void endVisit(OracleErrorLoggingClause x) { }