This commit is contained in:
温少
2012-02-25 11:02:33 +08:00
parent 9bc05934dc
commit dba8dd063a
7 changed files with 67 additions and 58 deletions
@@ -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;
}
}
@@ -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;
}
}
}
@@ -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);
@@ -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) {
}
@@ -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);
}
@@ -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) {
}
}
@@ -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) {
}