diff --git a/src/main/java/com/alibaba/druid/sql/ast/SQLStatement.java b/src/main/java/com/alibaba/druid/sql/ast/SQLStatement.java index a2c3f198e8..59a45c9434 100644 --- a/src/main/java/com/alibaba/druid/sql/ast/SQLStatement.java +++ b/src/main/java/com/alibaba/druid/sql/ast/SQLStatement.java @@ -17,4 +17,8 @@ package com.alibaba.druid.sql.ast; public interface SQLStatement extends SQLObject { String getDbType(); + + boolean isAfterSemi(); + + void setAfterSemi(boolean afterSemi); } diff --git a/src/main/java/com/alibaba/druid/sql/ast/SQLStatementImpl.java b/src/main/java/com/alibaba/druid/sql/ast/SQLStatementImpl.java index 41df1f18e2..a1ca2ae21d 100644 --- a/src/main/java/com/alibaba/druid/sql/ast/SQLStatementImpl.java +++ b/src/main/java/com/alibaba/druid/sql/ast/SQLStatementImpl.java @@ -22,6 +22,8 @@ public abstract class SQLStatementImpl extends SQLObjectImpl implements SQLState private String dbType; + private boolean afterSemi; + public SQLStatementImpl(){ } @@ -46,4 +48,12 @@ public abstract class SQLStatementImpl extends SQLObjectImpl implements SQLState protected void accept0(SQLASTVisitor visitor) { throw new UnsupportedOperationException(this.getClass().getName()); } + + public boolean isAfterSemi() { + return afterSemi; + } + + public void setAfterSemi(boolean afterSemi) { + this.afterSemi = afterSemi; + } } diff --git a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLBlockStatement.java b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLBlockStatement.java index 45e222cec0..e9203a41c0 100644 --- a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLBlockStatement.java +++ b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLBlockStatement.java @@ -26,6 +26,8 @@ import com.alibaba.druid.sql.visitor.SQLASTVisitor; public class SQLBlockStatement extends SQLStatementImpl { private String labelName; + private String endLabel; + private List parameters = new ArrayList(); private List statementList = new ArrayList(); @@ -73,4 +75,12 @@ public class SQLBlockStatement extends SQLStatementImpl { public void setException(SQLStatement exception) { this.exception = exception; } + + public String getEndLabel() { + return endLabel; + } + + public void setEndLabel(String endLabel) { + this.endLabel = endLabel; + } } diff --git a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLCommentStatement.java b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLCommentStatement.java index 7c2131fc08..2a51b52f68 100644 --- a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLCommentStatement.java +++ b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLCommentStatement.java @@ -20,7 +20,7 @@ import com.alibaba.druid.sql.ast.SQLStatement; import com.alibaba.druid.sql.ast.SQLStatementImpl; import com.alibaba.druid.sql.visitor.SQLASTVisitor; -public class SQLCommentStatement extends SQLStatementImpl implements SQLStatement { +public class SQLCommentStatement extends SQLStatementImpl { public static enum Type { TABLE, COLUMN diff --git a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLCreateFunctionStatement.java b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLCreateFunctionStatement.java index e1206f072a..16029a6fd4 100644 --- a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLCreateFunctionStatement.java +++ b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLCreateFunctionStatement.java @@ -1,3 +1,18 @@ +/* + * Copyright 1999-2017 Alibaba Group Holding Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.alibaba.druid.sql.ast.statement; import com.alibaba.druid.sql.ast.*; diff --git a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLIfStatement.java b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLIfStatement.java index 241a927cf9..32ebb65616 100644 --- a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLIfStatement.java +++ b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLIfStatement.java @@ -72,6 +72,9 @@ public class SQLIfStatement extends SQLStatementImpl { } public void setElseItem(Else elseItem) { + if (elseItem != null) { + elseItem.setParent(this); + } this.elseItem = elseItem; } diff --git a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLInsertStatement.java b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLInsertStatement.java index ea8d62ac64..be57bc8ed6 100644 --- a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLInsertStatement.java +++ b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLInsertStatement.java @@ -28,6 +28,8 @@ public class SQLInsertStatement extends SQLInsertInto implements SQLStatement { protected boolean upsert = false; // for phoenix + private boolean afterSemi; + public SQLInsertStatement(){ } @@ -105,4 +107,14 @@ public class SQLInsertStatement extends SQLInsertInto implements SQLStatement { public void setDbType(String dbType) { this.dbType = dbType; } + + @Override + public boolean isAfterSemi() { + return afterSemi; + } + + @Override + public void setAfterSemi(boolean afterSemi) { + this.afterSemi = afterSemi; + } } diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleSavePointStatement.java b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLReturnStatement.java similarity index 52% rename from src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleSavePointStatement.java rename to src/main/java/com/alibaba/druid/sql/ast/statement/SQLReturnStatement.java index eac91d1186..80534fc8d0 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleSavePointStatement.java +++ b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLReturnStatement.java @@ -1,41 +1,52 @@ -/* - * Copyright 1999-2017 Alibaba Group Holding Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.alibaba.druid.sql.dialect.oracle.ast.stmt; - -import com.alibaba.druid.sql.ast.SQLName; -import com.alibaba.druid.sql.dialect.oracle.visitor.OracleASTVisitor; - -public class OracleSavePointStatement extends OracleStatementImpl { - - private SQLName to; - - @Override - public void accept0(OracleASTVisitor visitor) { - if (visitor.visit(this)) { - acceptChild(visitor, to); - } - visitor.endVisit(this); - } - - public SQLName getTo() { - return to; - } - - public void setTo(SQLName to) { - this.to = to; - } - -} +/* + * Copyright 1999-2017 Alibaba Group Holding Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.alibaba.druid.sql.ast.statement; + +import com.alibaba.druid.sql.ast.SQLExpr; +import com.alibaba.druid.sql.ast.SQLStatementImpl; +import com.alibaba.druid.sql.visitor.SQLASTVisitor; + +public class SQLReturnStatement extends SQLStatementImpl { + + private SQLExpr expr; + + public SQLReturnStatement() { + + } + + public SQLReturnStatement(String dbType) { + super (dbType); + } + + public SQLExpr getExpr() { + return expr; + } + + public void setExpr(SQLExpr expr) { + if (expr != null) { + expr.setParent(this); + } + this.expr = expr; + } + + @Override + protected void accept0(SQLASTVisitor visitor) { + if (visitor.visit(this)) { + acceptChild(visitor, expr); + } + visitor.endVisit(this); + } +} diff --git a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLUseStatement.java b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLUseStatement.java index 364badd43e..a5b5cf370a 100644 --- a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLUseStatement.java +++ b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLUseStatement.java @@ -20,7 +20,7 @@ import com.alibaba.druid.sql.ast.SQLStatement; import com.alibaba.druid.sql.ast.SQLStatementImpl; import com.alibaba.druid.sql.visitor.SQLASTVisitor; -public class SQLUseStatement extends SQLStatementImpl implements SQLStatement { +public class SQLUseStatement extends SQLStatementImpl { private SQLName database; diff --git a/src/main/java/com/alibaba/druid/sql/dialect/odps/ast/OdpsInsertStatement.java b/src/main/java/com/alibaba/druid/sql/dialect/odps/ast/OdpsInsertStatement.java index c36d029f45..80bc0779c9 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/odps/ast/OdpsInsertStatement.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/odps/ast/OdpsInsertStatement.java @@ -26,7 +26,7 @@ import com.alibaba.druid.sql.dialect.odps.visitor.OdpsASTVisitor; import com.alibaba.druid.sql.visitor.SQLASTVisitor; import com.alibaba.druid.util.JdbcConstants; -public class OdpsInsertStatement extends SQLStatementImpl implements SQLStatement { +public class OdpsInsertStatement extends SQLStatementImpl { private SQLTableSource from; diff --git a/src/main/java/com/alibaba/druid/sql/dialect/odps/ast/OdpsListStmt.java b/src/main/java/com/alibaba/druid/sql/dialect/odps/ast/OdpsListStmt.java index 80c7c1a7f2..8ba63ebc0e 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/odps/ast/OdpsListStmt.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/odps/ast/OdpsListStmt.java @@ -22,7 +22,7 @@ import com.alibaba.druid.sql.dialect.odps.visitor.OdpsASTVisitor; import com.alibaba.druid.sql.visitor.SQLASTVisitor; import com.alibaba.druid.util.JdbcConstants; -public class OdpsListStmt extends SQLStatementImpl implements SQLStatement { +public class OdpsListStmt extends SQLStatementImpl { private SQLExpr object; diff --git a/src/main/java/com/alibaba/druid/sql/dialect/odps/ast/OdpsShowGrantsStmt.java b/src/main/java/com/alibaba/druid/sql/dialect/odps/ast/OdpsShowGrantsStmt.java index 16a5cd7afd..f63220a010 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/odps/ast/OdpsShowGrantsStmt.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/odps/ast/OdpsShowGrantsStmt.java @@ -21,7 +21,7 @@ import com.alibaba.druid.sql.ast.SQLStatementImpl; import com.alibaba.druid.sql.dialect.odps.visitor.OdpsASTVisitor; import com.alibaba.druid.sql.visitor.SQLASTVisitor; -public class OdpsShowGrantsStmt extends SQLStatementImpl implements SQLStatement { +public class OdpsShowGrantsStmt extends SQLStatementImpl { private SQLExpr user; diff --git a/src/main/java/com/alibaba/druid/sql/dialect/odps/ast/OdpsShowPartitionsStmt.java b/src/main/java/com/alibaba/druid/sql/dialect/odps/ast/OdpsShowPartitionsStmt.java index 05983b974b..5fedf204db 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/odps/ast/OdpsShowPartitionsStmt.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/odps/ast/OdpsShowPartitionsStmt.java @@ -22,7 +22,7 @@ import com.alibaba.druid.sql.dialect.odps.visitor.OdpsASTVisitor; import com.alibaba.druid.sql.visitor.SQLASTVisitor; import com.alibaba.druid.util.JdbcConstants; -public class OdpsShowPartitionsStmt extends SQLStatementImpl implements SQLStatement { +public class OdpsShowPartitionsStmt extends SQLStatementImpl { private SQLExprTableSource tableSource; diff --git a/src/main/java/com/alibaba/druid/sql/dialect/odps/ast/OdpsShowStatisticStmt.java b/src/main/java/com/alibaba/druid/sql/dialect/odps/ast/OdpsShowStatisticStmt.java index 4fc55c9f7e..c73dfbe740 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/odps/ast/OdpsShowStatisticStmt.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/odps/ast/OdpsShowStatisticStmt.java @@ -22,7 +22,7 @@ import com.alibaba.druid.sql.dialect.odps.visitor.OdpsASTVisitor; import com.alibaba.druid.sql.visitor.SQLASTVisitor; import com.alibaba.druid.util.JdbcConstants; -public class OdpsShowStatisticStmt extends SQLStatementImpl implements SQLStatement { +public class OdpsShowStatisticStmt extends SQLStatementImpl { private SQLExprTableSource tableSource; diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleCreatePackageStatement.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleCreatePackageStatement.java index e1397361bf..6f78018c39 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleCreatePackageStatement.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleCreatePackageStatement.java @@ -1,3 +1,18 @@ +/* + * Copyright 1999-2017 Alibaba Group Holding Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.alibaba.druid.sql.dialect.oracle.ast.stmt; import com.alibaba.druid.sql.ast.SQLName; diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleSetTransactionStatement.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleSetTransactionStatement.java index 8b23e3474c..a0ddc6fc64 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleSetTransactionStatement.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleSetTransactionStatement.java @@ -18,11 +18,12 @@ package com.alibaba.druid.sql.dialect.oracle.ast.stmt; import com.alibaba.druid.sql.ast.SQLExpr; import com.alibaba.druid.sql.dialect.oracle.ast.OracleSQLObjectImpl; import com.alibaba.druid.sql.dialect.oracle.visitor.OracleASTVisitor; +import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerStatementImpl; +import com.alibaba.druid.sql.dialect.sqlserver.visitor.SQLServerASTVisitor; -public class OracleSetTransactionStatement extends OracleSQLObjectImpl implements OracleStatement { +public class OracleSetTransactionStatement extends OracleStatementImpl implements OracleStatement { private boolean readOnly = false; - private String dbType; private SQLExpr name; @@ -50,12 +51,4 @@ public class OracleSetTransactionStatement extends OracleSQLObjectImpl implement this.readOnly = readOnly; } - public String getDbType() { - return dbType; - } - - public void setDbType(String dbType) { - this.dbType = dbType; - } - } diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/parser/OracleLexer.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/parser/OracleLexer.java index 178a4d2deb..aa617722e3 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/parser/OracleLexer.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/parser/OracleLexer.java @@ -66,6 +66,7 @@ public class OracleLexer extends Lexer { map.put("PRIOR", Token.PRIOR); map.put("REJECT", Token.REJECT); + map.put("RETURN", Token.RETURN); map.put("RETURNING", Token.RETURNING); map.put("SAVEPOINT", Token.SAVEPOINT); map.put("SESSION", Token.SESSION); 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 9911261bd8..b8e7027f33 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 @@ -83,6 +83,10 @@ public class OracleStatementParser extends SQLStatementParser { if (lexer.token() == (Token.SEMI)) { lexer.nextToken(); + if(statementList.size() > 0) { + SQLStatement lastStmt = statementList.get(statementList.size() - 1); + lastStmt.setAfterSemi(true); + } continue; } @@ -138,7 +142,9 @@ public class OracleStatementParser extends SQLStatementParser { } if (lexer.token() == Token.WITH) { - statementList.add(new SQLSelectStatement(new OracleSelectParser(this.exprParser).select())); + SQLSelectStatement stmt = new SQLSelectStatement(this.createSQLSelectParser().select()); + stmt.setParent(parent); + statementList.add(stmt); continue; } @@ -401,13 +407,18 @@ public class OracleStatementParser extends SQLStatementParser { if (lexer.token() == Token.SAVEPOINT) { lexer.nextToken(); - OracleSavePointStatement stmt = new OracleSavePointStatement(); + SQLSavePointStatement stmt = new SQLSavePointStatement(); + stmt.setDbType(dbType); stmt.setParent(parent); if (lexer.token() == Token.TO) { lexer.nextToken(); - stmt.setTo(this.exprParser.name()); + stmt.setName(this.exprParser.name()); + } else if (lexer.token() != Token.SEMI) { + stmt.setName(this.exprParser.name()); } + accept(Token.SEMI); + stmt.setAfterSemi(true); statementList.add(stmt); continue; @@ -562,10 +573,31 @@ public class OracleStatementParser extends SQLStatementParser { continue; } + if (lexer.token() == Token.RETURN) { + SQLStatement stmt = this.parseReturn(); + stmt.setParent(parent); + statementList.add(stmt); + continue; + } + throw new ParserException("TODO : " + lexer.info()); } } + public SQLStatement parseReturn() { + accept(Token.RETURN); + SQLReturnStatement stmt = new SQLReturnStatement(); + if (lexer.token() != Token.SEMI) { + SQLExpr expr = this.exprParser.expr(); + stmt.setExpr(expr); + } + + accept(Token.SEMI); + stmt.setAfterSemi(true); + + return stmt; + } + public SQLStatement parseWhile() { accept(Token.WHILE); @@ -610,7 +642,7 @@ public class OracleStatementParser extends SQLStatementParser { accept(Token.RPAREN); } - acceptIdentifier("RETURN"); + accept(Token.RETURN); SQLDataType returnDataType = this.exprParser.parseDataType(); stmt.setReturnDataType(returnDataType); @@ -674,11 +706,13 @@ public class OracleStatementParser extends SQLStatementParser { if (lexer.token() != Token.SEMI) { stmt.setException(this.exprParser.expr()); } + accept(Token.SEMI); return stmt; } public SQLStatement parseCase() { SQLCaseStatement caseStmt = new SQLCaseStatement(); + caseStmt.setDbType(dbType); lexer.nextToken(); if (lexer.token() != Token.WHEN) { caseStmt.setValueExpr(this.exprParser.expr()); @@ -713,6 +747,7 @@ public class OracleStatementParser extends SQLStatementParser { accept(Token.END); accept(Token.CASE); + accept(Token.SEMI); return caseStmt; } @@ -783,6 +818,14 @@ public class OracleStatementParser extends SQLStatementParser { this.parseStatementList(stmt.getStatements(), -1, stmt); accept(Token.END); accept(Token.LOOP); + + if (lexer.token() != Token.SEMI) { + SQLName endLabel = this.exprParser.name(); + stmt.setEndLabel(endLabel); + } + + accept(Token.SEMI); + stmt.setAfterSemi(true); } return stmt; } @@ -1304,6 +1347,13 @@ public class OracleStatementParser extends SQLStatementParser { accept(Token.END); + if (lexer.token() != Token.SEMI) { + String endLabel = lexer.stringVal(); + accept(Token.IDENTIFIER); + block.setEndLabel(endLabel); + } + accept(Token.SEMI); + return block; } @@ -1990,12 +2040,10 @@ public class OracleStatementParser extends SQLStatementParser { SQLStatement function = this.parseFunction(); function.setParent(stmt); stmt.getStatements().add(function); - accept(Token.SEMI); } else if (lexer.token() == Token.PROCEDURE) { SQLStatement proc = this.parseCreateProcedure(); proc.setParent(stmt); stmt.getStatements().add(proc); - accept(Token.SEMI); } else if (lexer.token() == Token.END) { break; } else { 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 b16ef4c57d..153a6e5e98 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 @@ -397,10 +397,6 @@ public interface OracleASTVisitor extends SQLASTVisitor { void endVisit(OracleRaiseStatement x); - boolean visit(OracleSavePointStatement x); - - void endVisit(OracleSavePointStatement x); - boolean visit(OracleCreateDatabaseDbLinkStatement x); void endVisit(OracleCreateDatabaseDbLinkStatement x); 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 01fcf55b48..db8cc11abb 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 @@ -957,16 +957,6 @@ public class OracleASTVisitorAdapter extends SQLASTVisitorAdapter implements Ora } - @Override - public boolean visit(OracleSavePointStatement x) { - return true; - } - - @Override - public void endVisit(OracleSavePointStatement x) { - - } - @Override public boolean visit(OracleCreateDatabaseDbLinkStatement x) { return true; 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 d3da005ad8..0a5bd7e152 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 @@ -100,44 +100,6 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS return printPostSemi; } - public void postVisit(SQLObject x) { - if (!(x instanceof SQLStatement)) { - return; - } - - SQLObject parent = x.getParent(); - - if ((!isPrintPostSemi()) // - && (!(parent instanceof SQLBlockStatement)) - && (!(parent instanceof OracleForStatement))) { - return; - } - - if (x instanceof OraclePLSQLCommitStatement - || x instanceof OracleLabelStatement - || x instanceof OracleExceptionStatement.Item - || x instanceof OracleExceptionStatement - || x instanceof OracleCreatePackageStatement) { - return; - } - - - if (parent instanceof SQLCreateProcedureStatement - || parent instanceof OracleExceptionStatement.Item - || parent instanceof OracleForStatement - || parent instanceof SQLCreateFunctionStatement) { - return; - } - - if (isPrettyFormat()) { - if (parent != null) { - print(';'); - } else { - println(";"); - } - } - } - private void printHints(List hints) { if (hints.size() > 0) { print0("/*+ "); @@ -1386,13 +1348,10 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS } print0(ucase ? "BEGIN" : "begin"); incrementIndent(); - println(); + for (int i = 0, size = x.getStatementList().size(); i < size; ++i) { - if (i != 0) { - println(); - } + println(); SQLStatement stmt = x.getStatementList().get(i); - stmt.setParent(x); stmt.accept(this); } decrementIndent(); @@ -1404,7 +1363,7 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS } println(); - print0(ucase ? "END" : "end"); + print0(ucase ? "END;" : "end;"); return false; } @@ -1519,7 +1478,6 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS } SQLStatement stmt = x.getStatements().get(i); stmt.accept(this); - print(";"); } decrementIndent(); @@ -1908,9 +1866,7 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS stmt.accept(this); if (!all) { if (i != size - 1) { - println(";"); - } else { - print(';'); + println(); } } } @@ -1947,7 +1903,6 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS item.setParent(x); item.accept(this); } - print(';'); decrementIndent(); return false; @@ -1959,17 +1914,12 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS x.getCondition().accept(this); print0(ucase ? " THEN" : " then"); incrementIndent(); - println(); for (int i = 0, size = x.getStatements().size(); i < size; ++i) { - if (i != 0) { - println(); - } + println(); SQLStatement item = x.getStatements().get(i); - item.setParent(x); item.accept(this); } - print(';'); decrementIndent(); return false; @@ -1991,16 +1941,11 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS print0(ucase ? "THEN" : "then"); incrementIndent(); - println(); for (int i = 0, size = x.getStatements().size(); i < size; ++i) { + println(); SQLStatement item = x.getStatements().get(i); - item.setParent(x); item.accept(this); - if (i != size - 1) { - println(); - } } - print(';'); decrementIndent(); for (SQLIfStatement.ElseIf elseIf : x.getElseIfList()) { @@ -2013,7 +1958,7 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS x.getElseItem().accept(this); } println(); - print0(ucase ? "END IF" : "end if"); + print0(ucase ? "END IF;" : "end if;"); return false; } @@ -2528,6 +2473,7 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS print(' '); x.getException().accept(this); } + print(';'); return false; } @@ -2542,20 +2488,15 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS } @Override - public boolean visit(OracleSavePointStatement x) { - print0(ucase ? "ROLLBACK" : "rollback"); - if (x.getTo() != null) { + public boolean visit(SQLSavePointStatement x) { + print0(ucase ? "SAVEPOINT" : "savepoint"); + if (x.getName() != null) { print0(ucase ? " TO " : " to "); - x.getTo().accept(this); + x.getName().accept(this); } return false; } - @Override - public void endVisit(OracleSavePointStatement x) { - - } - @Override public boolean visit(SQLCreateProcedureStatement x) { boolean create = x.isCreate(); 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 4ca8ac2c61..703227a564 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 @@ -1290,16 +1290,6 @@ public class OracleSchemaStatVisitor extends SchemaStatVisitor implements Oracle } - @Override - public boolean visit(OracleSavePointStatement x) { - return false; - } - - @Override - public void endVisit(OracleSavePointStatement x) { - - } - @Override public boolean visit(OracleCreateDatabaseDbLinkStatement x) { return false; diff --git a/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/SQLServerStatementImpl.java b/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/SQLServerStatementImpl.java new file mode 100644 index 0000000000..21a1ba90b9 --- /dev/null +++ b/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/SQLServerStatementImpl.java @@ -0,0 +1,35 @@ +/* + * Copyright 1999-2017 Alibaba Group Holding Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.alibaba.druid.sql.dialect.sqlserver.ast; + +import com.alibaba.druid.sql.ast.SQLObjectImpl; +import com.alibaba.druid.sql.ast.SQLStatementImpl; +import com.alibaba.druid.sql.dialect.sqlserver.visitor.SQLServerASTVisitor; +import com.alibaba.druid.sql.visitor.SQLASTVisitor; + +public abstract class SQLServerStatementImpl extends SQLStatementImpl implements SQLServerStatement { + + public SQLServerStatementImpl(){ + + } + + @Override + protected void accept0(SQLASTVisitor visitor) { + this.accept0((SQLServerASTVisitor) visitor); + } + + public abstract void accept0(SQLServerASTVisitor visitor); +} diff --git a/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/stmt/SQLServerCommitStatement.java b/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/stmt/SQLServerCommitStatement.java index b2ba74c04a..a48695e5fa 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/stmt/SQLServerCommitStatement.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/stmt/SQLServerCommitStatement.java @@ -18,9 +18,10 @@ package com.alibaba.druid.sql.dialect.sqlserver.ast.stmt; import com.alibaba.druid.sql.ast.SQLExpr; import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerObjectImpl; import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerStatement; +import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerStatementImpl; import com.alibaba.druid.sql.dialect.sqlserver.visitor.SQLServerASTVisitor; -public class SQLServerCommitStatement extends SQLServerObjectImpl implements SQLServerStatement { +public class SQLServerCommitStatement extends SQLServerStatementImpl implements SQLServerStatement { private boolean work = false; @@ -28,8 +29,6 @@ public class SQLServerCommitStatement extends SQLServerObjectImpl implements SQL private SQLExpr delayedDurability; - private String dbType; - public boolean isWork() { return work; } @@ -61,12 +60,4 @@ public class SQLServerCommitStatement extends SQLServerObjectImpl implements SQL public void setDelayedDurability(SQLExpr delayedDurability) { this.delayedDurability = delayedDurability; } - - public String getDbType() { - return dbType; - } - - public void setDbType(String dbType) { - this.dbType = dbType; - } } diff --git a/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/stmt/SQLServerExecStatement.java b/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/stmt/SQLServerExecStatement.java index a3956d5bb1..065f159ba4 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/stmt/SQLServerExecStatement.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/stmt/SQLServerExecStatement.java @@ -22,14 +22,14 @@ import com.alibaba.druid.sql.ast.SQLExpr; import com.alibaba.druid.sql.ast.SQLName; import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerObjectImpl; import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerStatement; +import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerStatementImpl; import com.alibaba.druid.sql.dialect.sqlserver.visitor.SQLServerASTVisitor; -public class SQLServerExecStatement extends SQLServerObjectImpl implements SQLServerStatement { +public class SQLServerExecStatement extends SQLServerStatementImpl implements SQLServerStatement { private SQLName returnStatus; private SQLName moduleName; private List parameters = new ArrayList(); - private String dbType; public SQLName getModuleName() { return moduleName; @@ -59,15 +59,7 @@ public class SQLServerExecStatement extends SQLServerObjectImpl implements SQLSe public void setReturnStatus(SQLName returnStatus) { this.returnStatus = returnStatus; } - - public String getDbType() { - return dbType; - } - - public void setDbType(String dbType) { - this.dbType = dbType; - } - + /** * * @author zz [455910092@qq.com] diff --git a/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/stmt/SQLServerSetStatement.java b/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/stmt/SQLServerSetStatement.java index 01cff5cc49..6e96ec0b5b 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/stmt/SQLServerSetStatement.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/stmt/SQLServerSetStatement.java @@ -19,12 +19,12 @@ import com.alibaba.druid.sql.ast.SQLExpr; import com.alibaba.druid.sql.ast.statement.SQLAssignItem; import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerObjectImpl; import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerStatement; +import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerStatementImpl; import com.alibaba.druid.sql.dialect.sqlserver.visitor.SQLServerASTVisitor; -public class SQLServerSetStatement extends SQLServerObjectImpl implements SQLServerStatement { +public class SQLServerSetStatement extends SQLServerStatementImpl implements SQLServerStatement { private SQLAssignItem item = new SQLAssignItem(); - private String dbType; public SQLServerSetStatement(){ } @@ -53,12 +53,4 @@ public class SQLServerSetStatement extends SQLServerObjectImpl implements SQLSer } visitor.endVisit(this); } - - public String getDbType() { - return dbType; - } - - public void setDbType(String dbType) { - this.dbType = dbType; - } } diff --git a/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/stmt/SQLServerSetTransactionIsolationLevelStatement.java b/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/stmt/SQLServerSetTransactionIsolationLevelStatement.java index 5c9b7b061f..4550a7946c 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/stmt/SQLServerSetTransactionIsolationLevelStatement.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/stmt/SQLServerSetTransactionIsolationLevelStatement.java @@ -17,12 +17,12 @@ package com.alibaba.druid.sql.dialect.sqlserver.ast.stmt; import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerObjectImpl; import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerStatement; +import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerStatementImpl; import com.alibaba.druid.sql.dialect.sqlserver.visitor.SQLServerASTVisitor; -public class SQLServerSetTransactionIsolationLevelStatement extends SQLServerObjectImpl implements SQLServerStatement { +public class SQLServerSetTransactionIsolationLevelStatement extends SQLServerStatementImpl implements SQLServerStatement { private String level; - private String dbType; @Override public void accept0(SQLServerASTVisitor visitor) { @@ -37,12 +37,4 @@ public class SQLServerSetTransactionIsolationLevelStatement extends SQLServerObj public void setLevel(String level) { this.level = level; } - - public String getDbType() { - return dbType; - } - - public void setDbType(String dbType) { - this.dbType = dbType; - } } diff --git a/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/stmt/SQLServerWaitForStatement.java b/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/stmt/SQLServerWaitForStatement.java index 37da435d2c..6ff93fcaae 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/stmt/SQLServerWaitForStatement.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/ast/stmt/SQLServerWaitForStatement.java @@ -19,9 +19,10 @@ import com.alibaba.druid.sql.ast.SQLExpr; import com.alibaba.druid.sql.ast.SQLStatement; import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerObjectImpl; import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerStatement; +import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerStatementImpl; import com.alibaba.druid.sql.dialect.sqlserver.visitor.SQLServerASTVisitor; -public class SQLServerWaitForStatement extends SQLServerObjectImpl implements SQLServerStatement { +public class SQLServerWaitForStatement extends SQLServerStatementImpl implements SQLServerStatement { private SQLExpr delay; @@ -31,8 +32,6 @@ public class SQLServerWaitForStatement extends SQLServerObjectImpl implements SQ private SQLExpr timeout; - private String dbType; - @Override public void accept0(SQLServerASTVisitor visitor) { if (visitor.visit(this)) { @@ -75,12 +74,4 @@ public class SQLServerWaitForStatement extends SQLServerObjectImpl implements SQ public void setTimeout(SQLExpr timeout) { this.timeout = timeout; } - - public String getDbType() { - return dbType; - } - - public void setDbType(String dbType) { - this.dbType = dbType; - } } diff --git a/src/main/java/com/alibaba/druid/sql/parser/SQLStatementParser.java b/src/main/java/com/alibaba/druid/sql/parser/SQLStatementParser.java index fd3a7e4405..20fd6d9566 100644 --- a/src/main/java/com/alibaba/druid/sql/parser/SQLStatementParser.java +++ b/src/main/java/com/alibaba/druid/sql/parser/SQLStatementParser.java @@ -2222,6 +2222,7 @@ public class SQLStatementParser extends SQLParser { } } accept(Token.SEMI); + stmt.setAfterSemi(true); return stmt; } @@ -2256,6 +2257,7 @@ public class SQLStatementParser extends SQLParser { accept(Token.CLOSE); stmt.setCursorName(exprParser.name().getSimpleName()); accept(Token.SEMI); + stmt.setAfterSemi(true); return stmt; } diff --git a/src/main/java/com/alibaba/druid/sql/parser/Token.java b/src/main/java/com/alibaba/druid/sql/parser/Token.java index 4ad5ff2236..bf9990f025 100644 --- a/src/main/java/com/alibaba/druid/sql/parser/Token.java +++ b/src/main/java/com/alibaba/druid/sql/parser/Token.java @@ -116,6 +116,8 @@ public enum Token { ANY("ANY"), TRUNCATE("TRUNCATE"), + RETURN("RETURN"), + // mysql TRUE("TRUE"), FALSE("FALSE"), diff --git a/src/main/java/com/alibaba/druid/sql/visitor/SQLASTOutputVisitor.java b/src/main/java/com/alibaba/druid/sql/visitor/SQLASTOutputVisitor.java index 4a5f9ffac2..31a1422848 100644 --- a/src/main/java/com/alibaba/druid/sql/visitor/SQLASTOutputVisitor.java +++ b/src/main/java/com/alibaba/druid/sql/visitor/SQLASTOutputVisitor.java @@ -524,17 +524,19 @@ public class SQLASTOutputVisitor extends SQLASTVisitorAdapter implements Paramet println(); printlnAndAccept(x.getItems(), " "); - if (x.getElseStatements() != null) { + if (x.getElseStatements().size() > 0) { println(); print0(ucase ? "ELSE " : "else "); - printlnAndAccept(x.getElseStatements(), ";"); - print(';'); + printlnAndAccept(x.getElseStatements(), ""); } decrementIndent(); println(); print0(ucase ? "END CASE" : "end case"); + if (JdbcConstants.ORACLE.equals(dbType)) { + print(';'); + } return false; } @@ -2207,8 +2209,11 @@ public class SQLASTOutputVisitor extends SQLASTVisitorAdapter implements Paramet @Override public boolean visit(SQLSavePointStatement x) { - print0(ucase ? "SAVEPOINT " : "savepoint "); - x.getName().accept(this); + print0(ucase ? "SAVEPOINT" : "savepoint"); + if (x.getName() != null) { + print(' '); + x.getName().accept(this); + } return false; } @@ -3393,10 +3398,6 @@ public class SQLASTOutputVisitor extends SQLASTVisitorAdapter implements Paramet item.setParent(x); item.accept(this); - if (JdbcConstants.ORACLE.equals(dbType)) { - print(";"); - } - if (i != size - 1) { println(); } @@ -4241,4 +4242,24 @@ public class SQLASTOutputVisitor extends SQLASTVisitorAdapter implements Paramet this.printAndAccept(x.getItems(), ", "); return false; } + + @Override + public boolean visit(SQLReturnStatement x) { + print0(ucase ? "RETURN" : "return"); + + if (x.getExpr() != null) { + print(' '); + x.getExpr().accept(this); + } + return false; + } + + public void postVisit(SQLObject x) { + if (x instanceof SQLStatement) { + SQLStatement stmt = (SQLStatement) x; + if (stmt.isAfterSemi()) { + print(';'); + } + } + } } diff --git a/src/main/java/com/alibaba/druid/sql/visitor/SQLASTVisitor.java b/src/main/java/com/alibaba/druid/sql/visitor/SQLASTVisitor.java index c98c4bc63f..07a9d8e3be 100644 --- a/src/main/java/com/alibaba/druid/sql/visitor/SQLASTVisitor.java +++ b/src/main/java/com/alibaba/druid/sql/visitor/SQLASTVisitor.java @@ -713,4 +713,8 @@ public interface SQLASTVisitor { boolean visit(SQLDeclareStatement x); void endVisit(SQLDeclareStatement x); + + boolean visit(SQLReturnStatement x); + + void endVisit(SQLReturnStatement x); } diff --git a/src/main/java/com/alibaba/druid/sql/visitor/SQLASTVisitorAdapter.java b/src/main/java/com/alibaba/druid/sql/visitor/SQLASTVisitorAdapter.java index c4d1e423b8..8747432f1a 100644 --- a/src/main/java/com/alibaba/druid/sql/visitor/SQLASTVisitorAdapter.java +++ b/src/main/java/com/alibaba/druid/sql/visitor/SQLASTVisitorAdapter.java @@ -558,7 +558,7 @@ public class SQLASTVisitorAdapter implements SQLASTVisitor { @Override public boolean visit(SQLSavePointStatement x) { - return true; + return false; } @Override @@ -1621,4 +1621,14 @@ public class SQLASTVisitorAdapter implements SQLASTVisitor { public void endVisit(SQLDeclareStatement x) { } + + @Override + public boolean visit(SQLReturnStatement x) { + return true; + } + + @Override + public void endVisit(SQLReturnStatement x) { + + } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/MappingTest_alterTable.java b/src/test/java/com/alibaba/druid/bvt/sql/MappingTest_alterTable.java index c60b0dcfc7..bab51c4ac6 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/MappingTest_alterTable.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/MappingTest_alterTable.java @@ -30,7 +30,7 @@ public class MappingTest_alterTable extends TestCase { public void test_mapping_createTable_oracle() throws Exception { String result = SQLUtils.refactor(sql, JdbcConstants.ORACLE, mapping); assertEquals("ALTER TABLE user_01\n" + - "\tDROP INDEX pk_user", result); + "\tDROP INDEX pk_user;", result); } public void test_mapping_createTable_pg() throws Exception { diff --git a/src/test/java/com/alibaba/druid/bvt/sql/MappingTest_createTable.java b/src/test/java/com/alibaba/druid/bvt/sql/MappingTest_createTable.java index b3f9bd52ee..31ce025b6d 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/MappingTest_createTable.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/MappingTest_createTable.java @@ -43,7 +43,7 @@ public class MappingTest_createTable extends TestCase { "\tsource_key int,\n" + "\tsource_value varchar(32),\n" + "\tPRIMARY KEY (source_key)\n" + - ")", result); + ");", result); } public void test_mapping_createTable_pg() throws Exception { diff --git a/src/test/java/com/alibaba/druid/bvt/sql/MappingTest_createTable_2.java b/src/test/java/com/alibaba/druid/bvt/sql/MappingTest_createTable_2.java index 1399f1de28..9678ce4082 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/MappingTest_createTable_2.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/MappingTest_createTable_2.java @@ -43,7 +43,7 @@ public class MappingTest_createTable_2 extends TestCase { "\tsource_key int,\n" + "\tsource_value varchar(32),\n" + "\tPRIMARY KEY (source_key)\n" + - ")", result); + ");", result); } public void test_mapping_createTable_pg() throws Exception { diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/SQLUtilsTest.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/SQLUtilsTest.java index 2112073d53..4ae2a72e33 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/SQLUtilsTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/SQLUtilsTest.java @@ -34,7 +34,7 @@ public class SQLUtilsTest extends TestCase { + "\n\tELSE" + "\n\t\tNULL;" + "\n\tEND IF;" - + "\nEND", SQLUtils.formatOracle(sql)); + + "\nEND;", SQLUtils.formatOracle(sql)); } public void test_format_3() throws Exception { diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/CursorTest.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/CursorTest.java index 0f51f55c80..d526304220 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/CursorTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/CursorTest.java @@ -34,7 +34,7 @@ public class CursorTest extends TestCase { String text = TestUtils.outputOracle(stmt); Assert.assertEquals("SELECT department_name, CURSOR(\n\t\tSELECT salary, commission_pct\n" + "\t\tFROM employees e\n" - + "\t\tWHERE e.department_id = d.department_id\n\t)\n" + "FROM departments d;\n", text); + + "\t\tWHERE e.department_id = d.department_id\n\t)\n" + "FROM departments d;", text); System.out.println(text); } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleAnalyticTest.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleAnalyticTest.java index 6604c94cc5..e59906f65a 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleAnalyticTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleAnalyticTest.java @@ -29,7 +29,7 @@ public class OracleAnalyticTest extends TestCase { + "FROM employees " + "WHERE department_id = 30;"; String expect = "SELECT last_name, salary, STDDEV(salary) OVER (ORDER BY hire_date) AS \"StdDev\"\n" - + "FROM employees\n" + "WHERE department_id = 30;\n"; + + "FROM employees\n" + "WHERE department_id = 30;"; OracleStatementParser parser = new OracleStatementParser(sql); SQLSelectStatement stmt = (SQLSelectStatement) parser.parseStatementList().get(0); @@ -42,10 +42,10 @@ public class OracleAnalyticTest extends TestCase { public void test_1() throws Exception { String sql = "SELECT submit_date, num_votes, TRUNC(AVG(num_votes) OVER(PARTITION BY submit_date ORDER BY submit_date ROWS UNBOUNDED PRECEDING)) AVG_VOTE_PER_DAY\n" - + "FROM vote_count\n" + "ORDER BY submit_date;\n"; + + "FROM vote_count\n" + "ORDER BY submit_date;"; String expect = "SELECT submit_date, num_votes, TRUNC(AVG(num_votes) OVER (PARTITION BY submit_date ORDER BY submit_date ROWS UNBOUNDED PRECEDING)) AS AVG_VOTE_PER_DAY\n" - + "FROM vote_count\n" + "ORDER BY submit_date;\n"; + + "FROM vote_count\n" + "ORDER BY submit_date;"; OracleStatementParser parser = new OracleStatementParser(sql); SQLSelectStatement stmt = (SQLSelectStatement) parser.parseStatementList().get(0); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleAnyTest.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleAnyTest.java index bf9612b4e9..ba55a299ce 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleAnyTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleAnyTest.java @@ -33,7 +33,7 @@ public class OracleAnyTest extends TestCase { String expect = "SELECT country, prod, year, s\n" + "FROM sales_view\n" + "MODEL\n" + "\tPARTITION BY (country)\n" + "\tDIMENSION BY (prod, year)\n" + "\tMEASURES (sale s)\n" + "\tIGNORE NAV\n" + "\tUNIQUE DIMENSION\n" - + "\tRULES UPSERT SEQUENTIAL ORDER (s[ANY, 2000] = 0)\n" + "ORDER BY country, prod, year;\n"; + + "\tRULES UPSERT SEQUENTIAL ORDER (s[ANY, 2000] = 0)\n" + "ORDER BY country, prod, year;"; OracleStatementParser parser = new OracleStatementParser(sql); SQLSelectStatement stmt = (SQLSelectStatement) parser.parseStatementList().get(0); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleDeleteTest_3.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleDeleteTest_3.java index 3087cc8022..5d8032a0c3 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleDeleteTest_3.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleDeleteTest_3.java @@ -51,13 +51,13 @@ public class OracleDeleteTest_3 extends OracleTest { { String output = SQLUtils.toOracleString(stmt); Assert.assertEquals("DELETE FROM credit_corp_baseinfo o\n" + - "WHERE o.applyid IN (24032, 23942, 23579, 23511, 23408, 23327, 23322, 23230, 23228, 23218)", // + "WHERE o.applyid IN (24032, 23942, 23579, 23511, 23408, 23327, 23322, 23230, 23228, 23218);", // output); } { String output = SQLUtils.toOracleString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION); Assert.assertEquals("delete from credit_corp_baseinfo o\n" + - "where o.applyid in (24032, 23942, 23579, 23511, 23408, 23327, 23322, 23230, 23228, 23218)", // + "where o.applyid in (24032, 23942, 23579, 23511, 23408, 23327, 23322, 23230, 23228, 23218);", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleDropDbLinkTest.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleDropDbLinkTest.java index a2e4a9d945..60755487a5 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleDropDbLinkTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleDropDbLinkTest.java @@ -55,7 +55,7 @@ public class OracleDropDbLinkTest extends OracleTest { SQLStatement statement = statementList.get(0); print(statementList); - Assert.assertEquals("DROP DATABASE LINK local", + Assert.assertEquals("DROP DATABASE LINK local;", SQLUtils.toSQLString(statement, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleDropTriggerTest.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleDropTriggerTest.java index cda2b0272e..a307a9d430 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleDropTriggerTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleDropTriggerTest.java @@ -38,7 +38,7 @@ public class OracleDropTriggerTest extends OracleTest { print(statementList); Assert.assertEquals(1, statementList.size()); - Assert.assertEquals("DROP TRIGGER hr.salary_check", + Assert.assertEquals("DROP TRIGGER hr.salary_check;", SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleDropUserTest.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleDropUserTest.java index f192b72dfe..bf853d6a8e 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleDropUserTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleDropUserTest.java @@ -38,7 +38,7 @@ public class OracleDropUserTest extends OracleTest { print(statementList); Assert.assertEquals(1, statementList.size()); - Assert.assertEquals("DROP USER sidney", + Assert.assertEquals("DROP USER sidney;", SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleEXTRACTTest.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleEXTRACTTest.java index aa3f8b125c..9b07101d73 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleEXTRACTTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleEXTRACTTest.java @@ -27,7 +27,7 @@ public class OracleEXTRACTTest extends TestCase { public void test_Extract() throws Exception { String sql = "SELECT EXTRACT(YEAR FROM DATE '1998-03-07') FROM DUAL;"; - String expect = "SELECT EXTRACT(YEAR FROM DATE '1998-03-07')\n" + "FROM DUAL;\n"; + String expect = "SELECT EXTRACT(YEAR FROM DATE '1998-03-07')\n" + "FROM DUAL;"; OracleStatementParser parser = new OracleStatementParser(sql); SQLSelectStatement stmt = (SQLSelectStatement) parser.parseStatementList().get(0); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleEXTRACTTest2.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleEXTRACTTest2.java index c2e3d4a187..6cd72f4a48 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleEXTRACTTest2.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleEXTRACTTest2.java @@ -31,8 +31,7 @@ public class OracleEXTRACTTest2 extends TestCase { String expect = "SELECT warehouse_name, EXTRACT(warehouse_spec, '/Warehouse/Docks') AS \"Number of Docks\"\n" + "FROM warehouses\n" + - "WHERE warehouse_spec IS NOT NULL;\n" + - ""; + "WHERE warehouse_spec IS NOT NULL;"; OracleStatementParser parser = new OracleStatementParser(sql); SQLSelectStatement stmt = (SQLSelectStatement) parser.parseStatementList().get(0); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleFlashbackQueryTest.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleFlashbackQueryTest.java index c58099d513..a755b53b3e 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleFlashbackQueryTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleFlashbackQueryTest.java @@ -28,7 +28,7 @@ public class OracleFlashbackQueryTest extends TestCase { String sql = "SELECT salary FROM employees AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' DAY) WHERE last_name = 'Chung';"; String expect = "SELECT salary\n" + "FROM employees\n" + "AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' DAY)\n" - + "WHERE last_name = 'Chung';\n"; + + "WHERE last_name = 'Chung';"; OracleStatementParser parser = new OracleStatementParser(sql); SQLSelectStatement stmt = (SQLSelectStatement) parser.parseStatementList().get(0); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleFlashbackQueryTest2.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleFlashbackQueryTest2.java index ac886d347b..3aef95ee98 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleFlashbackQueryTest2.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleFlashbackQueryTest2.java @@ -32,7 +32,7 @@ public class OracleFlashbackQueryTest2 extends TestCase { String expect = "SELECT salary\n" + "FROM employees\n" + "VERSIONS BETWEEN TIMESTAMP SYSTIMESTAMP - INTERVAL '10' MINUTE AND SYSTIMESTAMP - INTERVAL '1' MINUTE\n" - + "WHERE last_name = 'Chung';\n"; + + "WHERE last_name = 'Chung';"; OracleStatementParser parser = new OracleStatementParser(sql); SQLSelectStatement stmt = (SQLSelectStatement) parser.parseStatementList().get(0); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleFlashbackQueryTest3.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleFlashbackQueryTest3.java index df64ffd51b..ab95032e56 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleFlashbackQueryTest3.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleFlashbackQueryTest3.java @@ -34,7 +34,7 @@ public class OracleFlashbackQueryTest3 extends TestCase { + "DECODE(GROUPING(job_id), 1, 'All Jobs', job_id) AS job, COUNT(*) AS \"Total Empl\", AVG(salary) * 12 AS \"Average Sal\"\n" + "FROM employees e, departments d\n" + "WHERE d.department_id = e.department_id\n" - + "GROUP BY ROLLUP(department_name, job_id);\n"; + + "GROUP BY ROLLUP(department_name, job_id);"; OracleStatementParser parser = new OracleStatementParser(sql); SQLSelectStatement stmt = (SQLSelectStatement) parser.parseStatementList().get(0); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleGrantTest_1.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleGrantTest_1.java index 430f71da14..4ba5bb11c6 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleGrantTest_1.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleGrantTest_1.java @@ -38,7 +38,7 @@ public class OracleGrantTest_1 extends OracleTest { Assert.assertEquals(1, statementList.size()); - Assert.assertEquals("GRANT CREATE SESSION TO hr",// + Assert.assertEquals("GRANT CREATE SESSION TO hr;",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleGrantTest_2.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleGrantTest_2.java index daa449e9a1..4a66de320c 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleGrantTest_2.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleGrantTest_2.java @@ -51,7 +51,7 @@ public class OracleGrantTest_2 extends OracleTest { + " QUERY REWRITE,"// + " GLOBAL QUERY REWRITE"// + " TO dw_manager"// - + " WITH ADMIN OPTION",// + + " WITH ADMIN OPTION;",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleGrantTest_3.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleGrantTest_3.java index e1242cb2af..e2c70e50fb 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleGrantTest_3.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleGrantTest_3.java @@ -38,7 +38,7 @@ public class OracleGrantTest_3 extends OracleTest { Assert.assertEquals(1, statementList.size()); - Assert.assertEquals("GRANT INHERIT PRIVILEGES ON USER sh TO hr",// + Assert.assertEquals("GRANT INHERIT PRIVILEGES ON USER sh TO hr;",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleGrantTest_4.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleGrantTest_4.java index 6d2ebc4665..161e5f4c6b 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleGrantTest_4.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleGrantTest_4.java @@ -43,7 +43,7 @@ public class OracleGrantTest_4 extends OracleTest { Assert.assertEquals("GRANT REFERENCES(employee_id),"// + " UPDATE(employee_id, salary, commission_pct)"// - + " ON hr.employees TO oe",// + + " ON hr.employees TO oe;",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleGroupingSetTest.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleGroupingSetTest.java index 9bc3c40290..5e78938092 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleGroupingSetTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleGroupingSetTest.java @@ -46,7 +46,7 @@ public class OracleGroupingSetTest extends TestCase { + "\n\tAND times.calendar_month_desc IN ('2000-09', '2000-10')" + "\n\tAND co.country_id IN ('UK', 'US')\n" + "GROUP BY GROUPING SETS ((channel_desc, calendar_month_desc, co.country_id), (channel_desc, co.country_id), " - + "(calendar_month_desc, co.country_id));\n"; + + "(calendar_month_desc, co.country_id));"; OracleStatementParser parser = new OracleStatementParser(sql); SQLSelectStatement stmt = (SQLSelectStatement) parser.parseStatementList().get(0); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleGroupingSetsTest.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleGroupingSetsTest.java index f0f4520e1e..b41ca0f500 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleGroupingSetsTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleGroupingSetsTest.java @@ -25,7 +25,7 @@ public class OracleGroupingSetsTest extends OracleTest { Assert.assertEquals("SELECT department_id, job_id, AVG(salary)" + "\nFROM hr.employees" - + "\nGROUP BY GROUPING SETS ((department_id, job_id))", SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); + + "\nGROUP BY GROUPING SETS ((department_id, job_id));", SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); stmt.accept(visitor); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleHintTest.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleHintTest.java index 61bd82f0cd..0abdc4bb6c 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleHintTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleHintTest.java @@ -26,7 +26,7 @@ public class OracleHintTest extends TestCase { stmt.accept(new OracleOutputVisitor(out, true)); String newSQL = out.toString(); - Assert.assertEquals("SELECT /*+leading(e) index(e ORD_ORDER_ITEM_GS_BS_DI_IND)*/ DISTINCT e.id\nFROM ord_order_item e\nWHERE e.F1 = DATE '2011-10-01';\n", newSQL); + Assert.assertEquals("SELECT /*+leading(e) index(e ORD_ORDER_ITEM_GS_BS_DI_IND)*/ DISTINCT e.id\nFROM ord_order_item e\nWHERE e.F1 = DATE '2011-10-01'", newSQL); } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleIntervalTest.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleIntervalTest.java index 31caeaa4d1..0c927254a3 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleIntervalTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleIntervalTest.java @@ -33,7 +33,7 @@ public class OracleIntervalTest extends TestCase { String text = TestUtils.outputOracle(stmt); - Assert.assertEquals("SELECT INTERVAL '123-2' YEAR(3) TO MONTH\nFROM DUAL;\n", text); + Assert.assertEquals("SELECT INTERVAL '123-2' YEAR(3) TO MONTH\nFROM DUAL", text); System.out.println(text); } @@ -46,7 +46,7 @@ public class OracleIntervalTest extends TestCase { String text = TestUtils.outputOracle(stmt); - Assert.assertEquals("SELECT INTERVAL '123' YEAR(3)\nFROM DUAL;\n", text); + Assert.assertEquals("SELECT INTERVAL '123' YEAR(3)\nFROM DUAL", text); System.out.println(text); } @@ -59,7 +59,7 @@ public class OracleIntervalTest extends TestCase { String text = TestUtils.outputOracle(stmt); - Assert.assertEquals("SELECT INTERVAL '5-3' YEAR TO MONTH + INTERVAL '20' MONTH\nFROM DUAL;\n", text); + Assert.assertEquals("SELECT INTERVAL '5-3' YEAR TO MONTH + INTERVAL '20' MONTH\nFROM DUAL", text); System.out.println(text); } @@ -72,7 +72,7 @@ public class OracleIntervalTest extends TestCase { String text = TestUtils.outputOracle(stmt); - Assert.assertEquals("SELECT INTERVAL '6-11' YEAR TO MONTH\nFROM DUAL;\n", text); + Assert.assertEquals("SELECT INTERVAL '6-11' YEAR TO MONTH\nFROM DUAL", text); System.out.println(text); } @@ -85,7 +85,7 @@ public class OracleIntervalTest extends TestCase { String text = TestUtils.outputOracle(stmt); - Assert.assertEquals("SELECT INTERVAL '4 5:12:10.222' DAY TO SECOND(3)\nFROM DUAL;\n", text); + Assert.assertEquals("SELECT INTERVAL '4 5:12:10.222' DAY TO SECOND(3)\nFROM DUAL", text); System.out.println(text); } @@ -98,7 +98,7 @@ public class OracleIntervalTest extends TestCase { String text = TestUtils.outputOracle(stmt); - Assert.assertEquals("SELECT INTERVAL '30.12345' SECOND(2, 4)\nFROM DUAL;\n", text); + Assert.assertEquals("SELECT INTERVAL '30.12345' SECOND(2, 4)\nFROM DUAL", text); System.out.println(text); } @@ -112,7 +112,7 @@ public class OracleIntervalTest extends TestCase { String text = TestUtils.outputOracle(stmt); Assert.assertEquals("SELECT (SYSTIMESTAMP - order_date) DAY(9) TO SECOND\n" + "FROM orders\n" - + "WHERE order_id = 2458;\n", text); + + "WHERE order_id = 2458;", text); System.out.println(text); } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleIsASetTest.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleIsASetTest.java index 4f837575f2..2e98ea2bcc 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleIsASetTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleIsASetTest.java @@ -34,7 +34,7 @@ public class OracleIsASetTest extends TestCase { String text = TestUtils.outputOracle(stmt); Assert.assertEquals("SELECT customer_id, cust_address_ntab\n" + "FROM customers_demo\n" - + "WHERE cust_address_ntab IS A SET;\n", text); + + "WHERE cust_address_ntab IS A SET;", text); System.out.println(text); } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleIsEmptyTest.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleIsEmptyTest.java index 1271d43c7d..26148993cc 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleIsEmptyTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleIsEmptyTest.java @@ -29,15 +29,13 @@ public class OracleIsEmptyTest extends TestCase { String sql = "SELECT product_id, TO_CHAR(ad_finaltext) FROM print_media WHERE ad_textdocs_ntab IS NOT EMPTY;"; String expect = "SELECT product_id, TO_CHAR(ad_finaltext)\n" + "FROM print_media\n" - + "WHERE ad_textdocs_ntab IS NOT EMPTY;\n"; + + "WHERE ad_textdocs_ntab IS NOT EMPTY;"; OracleStatementParser parser = new OracleStatementParser(sql); SQLSelectStatement stmt = (SQLSelectStatement) parser.parseStatementList().get(0); String text = TestUtils.outputOracle(stmt); - Assert.assertEquals(expect, text); - - System.out.println(text); + assertEquals(expect, text); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleListAggTest.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleListAggTest.java index eb7a4520b3..2fcdd5858e 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleListAggTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleListAggTest.java @@ -38,7 +38,7 @@ public class OracleListAggTest extends OracleTest { + "\n\tAND prod_id BETWEEN 15 AND 18" // + "\n\tAND channel_id = 2" // + "\n\tAND time_id > '01-JAN-01'" // - + "\nGROUP BY prod_id",// + + "\nGROUP BY prod_id;",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleLiteralTest.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleLiteralTest.java index 65a30c957c..71b0f729af 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleLiteralTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleLiteralTest.java @@ -28,7 +28,7 @@ public class OracleLiteralTest extends TestCase { public void test_oracle() throws Exception { String sql = "SELECT FROM_TZ(TIMESTAMP '2007-11-20 08:00:00', '3:00') FROM DUAL;"; - String expect = "SELECT FROM_TZ(TIMESTAMP '2007-11-20 08:00:00', '3:00')\n" + "FROM DUAL;\n"; + String expect = "SELECT FROM_TZ(TIMESTAMP '2007-11-20 08:00:00', '3:00')\n" + "FROM DUAL;"; OracleStatementParser parser = new OracleStatementParser(sql); SQLSelectStatement stmt = (SQLSelectStatement) parser.parseStatementList().get(0); @@ -43,7 +43,7 @@ public class OracleLiteralTest extends TestCase { public void test_date() throws Exception { String sql = "SELECT DATE '1998-12-25' FROM DUAL;"; - String expect = "SELECT DATE '1998-12-25'\n" + "FROM DUAL;\n"; + String expect = "SELECT DATE '1998-12-25'\n" + "FROM DUAL;"; OracleStatementParser parser = new OracleStatementParser(sql); SQLSelectStatement stmt = (SQLSelectStatement) parser.parseStatementList().get(0); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleNumberLiteralTest.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleNumberLiteralTest.java index fe05384642..5ec1b51cf2 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleNumberLiteralTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleNumberLiteralTest.java @@ -32,7 +32,7 @@ public class OracleNumberLiteralTest extends TestCase { String text = TestUtils.outputOracle(stmt); - Assert.assertEquals("SELECT 7, 255, 0.5, 6.34, 0.025\n\t, 6.34F, 0.5D, -1.0D\nFROM DUAL;\n", text); + Assert.assertEquals("SELECT 7, 255, 0.5, 6.34, 0.025\n\t, 6.34F, 0.5D, -1.0D\nFROM DUAL", text); System.out.println(text); } @@ -45,7 +45,7 @@ public class OracleNumberLiteralTest extends TestCase { String text = TestUtils.outputOracle(stmt); - Assert.assertEquals("SELECT BINARY_FLOAT_INFINITY\nFROM DUAL;\n", text); + Assert.assertEquals("SELECT BINARY_FLOAT_INFINITY\nFROM DUAL", text); System.out.println(text); } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleOuterTest.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleOuterTest.java index 3e49428d2d..c1b01fec40 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleOuterTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleOuterTest.java @@ -29,7 +29,7 @@ public class OracleOuterTest extends TestCase { + "WHERE employees.manager_id(+) = employees.employee_id;"; String expect = "SELECT employee_id, manager_id\n" + "FROM employees\n" - + "WHERE employees.manager_id(+) = employees.employee_id;\n"; + + "WHERE employees.manager_id(+) = employees.employee_id;"; OracleStatementParser parser = new OracleStatementParser(sql); SQLSelectStatement stmt = (SQLSelectStatement) parser.parseStatementList().get(0); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OraclePivotClauseTest.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OraclePivotClauseTest.java index a59d7f40e0..33d2473995 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OraclePivotClauseTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OraclePivotClauseTest.java @@ -32,14 +32,14 @@ public class OraclePivotClauseTest extends TestCase { String expected = "SELECT *\n" + "FROM pivot_table\n" + "UNPIVOT (yearly_total FOR order_mode IN (store AS 'direct', internet AS 'online'))\n" - + "ORDER BY year, order_mode;\n"; + + "ORDER BY year, order_mode;"; OracleStatementParser parser = new OracleStatementParser(sql); SQLSelectStatement stmt = (SQLSelectStatement) parser.parseStatementList().get(0); String text = TestUtils.outputOracle(stmt); - Assert.assertEquals(expected, text); + assertEquals(expected, text); System.out.println(text); } @@ -52,7 +52,7 @@ public class OraclePivotClauseTest extends TestCase { String expected = "SELECT *\n" + "FROM (\n\tSELECT EXTRACT(YEAR FROM order_date) AS year, order_mode, order_total\n" + "\tFROM orders\n" + ")\n" - + "PIVOT (SUM(order_total) FOR order_mode IN ('direct' AS Store, 'online' AS Internet));\n"; + + "PIVOT (SUM(order_total) FOR order_mode IN ('direct' AS Store, 'online' AS Internet));"; OracleStatementParser parser = new OracleStatementParser(sql); SQLSelectStatement stmt = (SQLSelectStatement) parser.parseStatementList().get(0); @@ -72,7 +72,7 @@ public class OraclePivotClauseTest extends TestCase { String expected = "SELECT *\n" + "FROM (\n\tSELECT EXTRACT(YEAR FROM order_date) AS year, order_mode, order_total\n" + "\tFROM orders\n" + ")\n" - + "PIVOT (SUM(order_total) FOR order_mode IN ('direct' AS Store, 'online' AS Internet));\n"; + + "PIVOT (SUM(order_total) FOR order_mode IN ('direct' AS Store, 'online' AS Internet));"; OracleStatementParser parser = new OracleStatementParser(sql); SQLSelectStatement stmt = (SQLSelectStatement) parser.parseStatementList().get(0); @@ -91,7 +91,7 @@ public class OraclePivotClauseTest extends TestCase { String expected = "SELECT *\n" + "FROM (\n\tSELECT EXTRACT(YEAR FROM order_date) AS day, order_mode, order_total\n" + "\tFROM orders\n" + ")\n" - + "PIVOT (SUM(order_total) FOR order_mode IN ('direct' AS Store, 'online' AS Internet));\n"; + + "PIVOT (SUM(order_total) FOR order_mode IN ('direct' AS Store, 'online' AS Internet));"; OracleStatementParser parser = new OracleStatementParser(sql); SQLSelectStatement stmt = (SQLSelectStatement) parser.parseStatementList().get(0); @@ -111,7 +111,7 @@ public class OraclePivotClauseTest extends TestCase { String expected = "SELECT *\n" + "FROM (\n\tSELECT EXTRACT(YEAR FROM order_date) AS day, order_mode AS YEAR, order_total\n" + "\tFROM orders\n" + ")\n" - + "PIVOT (SUM(order_total) FOR order_mode IN ('direct' AS Store, 'online' AS Internet));\n"; + + "PIVOT (SUM(order_total) FOR order_mode IN ('direct' AS Store, 'online' AS Internet));"; OracleStatementParser parser = new OracleStatementParser(sql); SQLSelectStatement stmt = (SQLSelectStatement) parser.parseStatementList().get(0); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OraclePriorTest.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OraclePriorTest.java index cefa45d073..9a504ba88e 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OraclePriorTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OraclePriorTest.java @@ -28,7 +28,7 @@ public class OraclePriorTest extends TestCase { String sql = "SELECT employee_id, last_name, manager_id FROM employees CONNECT BY PRIOR employee_id = manager_id;"; String expect = "SELECT employee_id, last_name, manager_id\n" + "FROM employees\n" - + "CONNECT BY PRIOR employee_id = manager_id;\n"; + + "CONNECT BY PRIOR employee_id = manager_id;"; OracleStatementParser parser = new OracleStatementParser(sql); SQLSelectStatement stmt = (SQLSelectStatement) parser.parseStatementList().get(0); @@ -47,7 +47,7 @@ public class OraclePriorTest extends TestCase { String expect = "SELECT last_name, employee_id, manager_id, LEVEL\n" + "FROM employees\n" + "START WITH employee_id = 100\n" + "CONNECT BY PRIOR employee_id = manager_id\n" - + "ORDER SIBLINGS BY last_name;\n"; + + "ORDER SIBLINGS BY last_name;"; OracleStatementParser parser = new OracleStatementParser(sql); SQLSelectStatement stmt = (SQLSelectStatement) parser.parseStatementList().get(0); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleSampleClauseTest.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleSampleClauseTest.java index db2febf2a1..d6cb7b628d 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleSampleClauseTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleSampleClauseTest.java @@ -27,31 +27,29 @@ public class OracleSampleClauseTest extends TestCase { public void test_0() throws Exception { String sql = "SELECT COUNT(*) * 10 FROM orders SAMPLE (10);"; - String expected = "SELECT COUNT(*) * 10\n" + "FROM orders SAMPLE (10);\n"; + String expected = "SELECT COUNT(*) * 10\n" + "FROM orders SAMPLE (10);"; OracleStatementParser parser = new OracleStatementParser(sql); SQLSelectStatement stmt = (SQLSelectStatement) parser.parseStatementList().get(0); String text = TestUtils.outputOracle(stmt); - Assert.assertEquals(expected, text); + assertEquals(expected, text); - System.out.println(text); } public void test_1() throws Exception { String sql = "SELECT COUNT(*) * 10 FROM orders SAMPLE (10) SEED (1);"; - String expected = "SELECT COUNT(*) * 10\n" + "FROM orders SAMPLE (10) SEED (1);\n"; + String expected = "SELECT COUNT(*) * 10\n" + "FROM orders SAMPLE (10) SEED (1);"; OracleStatementParser parser = new OracleStatementParser(sql); SQLSelectStatement stmt = (SQLSelectStatement) parser.parseStatementList().get(0); String text = TestUtils.outputOracle(stmt); - Assert.assertEquals(expected, text); + assertEquals(expected, text); - System.out.println(text); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleSubqueryFactoringTest.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleSubqueryFactoringTest.java index d09f664845..4873c29aa8 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleSubqueryFactoringTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleSubqueryFactoringTest.java @@ -54,16 +54,15 @@ public class OracleSubqueryFactoringTest extends TestCase { + "\tSELECT avg\n" // + "\tFROM avg_cost\n" // + "\t)\n" // - + "ORDER BY department_name;\n"; + + "ORDER BY department_name;"; OracleStatementParser parser = new OracleStatementParser(sql); SQLSelectStatement stmt = (SQLSelectStatement) parser.parseStatementList().get(0); String text = TestUtils.outputOracle(stmt); - Assert.assertEquals(expected, text); + assertEquals(expected, text); - System.out.println(text); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleSubqueryFactoringTest2.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleSubqueryFactoringTest2.java index 3179aee1a6..8c50ab59f5 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleSubqueryFactoringTest2.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleSubqueryFactoringTest2.java @@ -53,16 +53,14 @@ public class OracleSubqueryFactoringTest2 extends TestCase { + "\tSEARCH DEPTH FIRST BY emp_last SET order1\n" + "\tCYCLE hire_date SET is_cycle TO 'Y' DEFAULT 'N'\n" + "SELECT lpad(' ', 2 * reportLevel) || emp_last AS emp_name, eid, mgr_id, salary, job_id\n" - + "FROM org_chart\n" + "ORDER BY order1;\n"; + + "FROM org_chart\n" + "ORDER BY order1;"; OracleStatementParser parser = new OracleStatementParser(sql); SQLSelectStatement stmt = (SQLSelectStatement) parser.parseStatementList().get(0); String text = TestUtils.outputOracle(stmt); - Assert.assertEquals(expected, text); - - System.out.println(text); + assertEquals(expected, text); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleTest2.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleTest2.java index 24323ecd85..7f8d0ce08f 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleTest2.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleTest2.java @@ -27,7 +27,7 @@ public class OracleTest2 extends TestCase { public void test_isEmpty() throws Exception { String sql = "SELECT NAME FROM V$ARCHIVED_LOG;"; - String expect = "SELECT NAME\nFROM V$ARCHIVED_LOG;\n"; + String expect = "SELECT NAME\nFROM V$ARCHIVED_LOG;"; OracleStatementParser parser = new OracleStatementParser(sql); SQLSelectStatement stmt = (SQLSelectStatement) parser.parseStatementList().get(0); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/alter/OracleAlterTableTest19.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/alter/OracleAlterTableTest19.java index 7703a414d8..cf49e70ef1 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/alter/OracleAlterTableTest19.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/alter/OracleAlterTableTest19.java @@ -56,7 +56,7 @@ public class OracleAlterTableTest19 extends OracleTest { "\tADD CONSTRAINT wh_unq UNIQUE (warehouse_id, warehouse_name)\n" + "\t\tUSING INDEX\n" + "\t\tPCTFREE 5\n" + - "\t\tEXCEPTIONS INTO wrong_id", SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); + "\t\tEXCEPTIONS INTO wrong_id;", SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); Assert.assertEquals(1, visitor.getTables().size()); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/alter/OracleAlterTableTest20.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/alter/OracleAlterTableTest20.java index 691fdc0bf0..dfaabb1ea1 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/alter/OracleAlterTableTest20.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/alter/OracleAlterTableTest20.java @@ -51,7 +51,7 @@ public class OracleAlterTableTest20 extends OracleTest { System.out.println("orderBy : " + visitor.getOrderByColumns()); Assert.assertEquals("ALTER TABLE sales" // - + "\n\tADD CONSTRAINT sales_pk PRIMARY KEY (prod_id, cust_id) DIABLE", // + + "\n\tADD CONSTRAINT sales_pk PRIMARY KEY (prod_id, cust_id) DIABLE;", // SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); Assert.assertEquals(1, visitor.getTables().size()); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/alter/OracleAlterTableTest21.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/alter/OracleAlterTableTest21.java index 8ba7fabc73..fa3fff0724 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/alter/OracleAlterTableTest21.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/alter/OracleAlterTableTest21.java @@ -50,7 +50,7 @@ public class OracleAlterTableTest21 extends OracleTest { System.out.println("orderBy : " + visitor.getOrderByColumns()); Assert.assertEquals("ALTER TABLE long_tab"// - + "\n\tDROP COLUMN long_pics", // + + "\n\tDROP COLUMN long_pics;", // SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); Assert.assertEquals(1, visitor.getTables().size()); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/alter/OracleAlterTableTest22.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/alter/OracleAlterTableTest22.java index 15257e371a..cb5f5b95e8 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/alter/OracleAlterTableTest22.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/alter/OracleAlterTableTest22.java @@ -52,7 +52,7 @@ public class OracleAlterTableTest22 extends OracleTest { System.out.println("orderBy : " + visitor.getOrderByColumns()); Assert.assertEquals("ALTER TABLE employees" // - + "\n\tADD CONSTRAINT check_comp CHECK (salary + commission_pct * salary <= 5000) DIABLE", // + + "\n\tADD CONSTRAINT check_comp CHECK (salary + commission_pct * salary <= 5000) DIABLE;", // SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); Assert.assertEquals(1, visitor.getTables().size()); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/block/OracleBlockTest15.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/block/OracleBlockTest15.java new file mode 100644 index 0000000000..0dce534daa --- /dev/null +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/block/OracleBlockTest15.java @@ -0,0 +1,89 @@ +/* + * Copyright 1999-2017 Alibaba Group Holding Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.alibaba.druid.bvt.sql.oracle.block; + +import com.alibaba.druid.sql.OracleTest; +import com.alibaba.druid.sql.SQLUtils; +import com.alibaba.druid.sql.ast.SQLStatement; +import com.alibaba.druid.sql.dialect.oracle.parser.OracleStatementParser; +import com.alibaba.druid.sql.dialect.oracle.visitor.OracleSchemaStatVisitor; +import com.alibaba.druid.stat.TableStat; +import com.alibaba.druid.util.JdbcConstants; +import org.junit.Assert; + +import java.util.List; + +public class OracleBlockTest15 extends OracleTest { + + public void test_0() throws Exception { + String sql = "DECLARE\n" + + " sales NUMBER(8,2) := 10100;\n" + + " quota NUMBER(8,2) := 10000;\n" + + " bonus NUMBER(6,2);\n" + + " emp_id NUMBER(6) := 120;\n" + + " BEGIN\n" + + " IF sales > (quota + 200) THEN\n" + + " bonus := (sales - quota)/4;\n" + + " \n" + + " UPDATE employees SET salary =\n" + + " salary + bonus\n" + + " WHERE employee_id = emp_id;\n" + + " END IF;\n" + + " END;"; // + + List stmtList = SQLUtils.parseStatements(sql, JdbcConstants.ORACLE); + assertEquals(1, stmtList.size()); + + String result = SQLUtils.toOracleString(stmtList.get(0)); + System.out.println(result); + assertEquals("DECLARE\n" + + "\tsales NUMBER(8, 2) := 10100;\n" + + "\tquota NUMBER(8, 2) := 10000;\n" + + "\tbonus NUMBER(6, 2);\n" + + "\temp_id NUMBER(6) := 120;\n" + + "BEGIN\n" + + "\tIF sales > quota + 200 THEN\n" + + "\t\tbonus := (sales - quota) / 4;\n" + + "\t\tUPDATE employees\n" + + "\t\tSET salary = salary + bonus\n" + + "\t\tWHERE employee_id = emp_id;\n" + + "\tEND IF;\n" + + "END;", result); + + Assert.assertEquals(1, stmtList.size()); + + OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); + for (SQLStatement statement : stmtList) { + statement.accept(visitor); + } + + System.out.println("Tables : " + visitor.getTables()); + System.out.println("fields : " + visitor.getColumns()); + System.out.println("coditions : " + visitor.getConditions()); + System.out.println("relationships : " + visitor.getRelationships()); + System.out.println("orderBy : " + visitor.getOrderByColumns()); + + Assert.assertEquals(1, visitor.getTables().size()); + + Assert.assertTrue(visitor.getTables().containsKey(new TableStat.Name("employees"))); + + Assert.assertEquals(2, visitor.getColumns().size()); + Assert.assertEquals(2, visitor.getConditions().size()); + Assert.assertEquals(1, visitor.getRelationships().size()); + + // Assert.assertTrue(visitor.getColumns().contains(new TableStat.Column("employees", "salary"))); + } +} diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateDbLinkTest.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateDbLinkTest.java index dd17792fff..6aba9f665e 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateDbLinkTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateDbLinkTest.java @@ -37,7 +37,7 @@ public class OracleCreateDbLinkTest extends OracleTest { SQLStatement statement = statementList.get(0); print(statementList); - Assert.assertEquals("CREATE PUBLIC DATABASE LINK remote USING 'remote'", + Assert.assertEquals("CREATE PUBLIC DATABASE LINK remote USING 'remote';", SQLUtils.toSQLString(statement, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); @@ -55,7 +55,7 @@ public class OracleCreateDbLinkTest extends OracleTest { SQLStatement statement = statementList.get(0); print(statementList); - Assert.assertEquals("CREATE DATABASE LINK local CONNECT TO hr IDENTIFIED BY hr USING 'local'", + Assert.assertEquals("CREATE DATABASE LINK local CONNECT TO hr IDENTIFIED BY hr USING 'local';", SQLUtils.toSQLString(statement, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); @@ -74,7 +74,7 @@ public class OracleCreateDbLinkTest extends OracleTest { SQLStatement statement = statementList.get(0); print(statementList); - Assert.assertEquals("CREATE DATABASE LINK remote.us.oracle.com CONNECT TO CURRENT_USER USING 'remote'", + Assert.assertEquals("CREATE DATABASE LINK remote.us.oracle.com CONNECT TO CURRENT_USER USING 'remote';", SQLUtils.toSQLString(statement, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreatePackageTest0.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreatePackageTest0.java index 7ead6bfb63..de1f46dbcd 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreatePackageTest0.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreatePackageTest0.java @@ -134,8 +134,8 @@ public class OracleCreatePackageTest0 extends OracleTest { "\t\t\t, '18-JUN-02', 'IT_PROG', 90000000, 0, 100\n" + "\t\t\t, 110);\n" + "\t\ttot_emps := tot_emps + 1;\n" + - "\t\tRETURN(new_empno);\n" + - "\tEND\n" + + "\t\tRETURN new_empno;\n" + + "\tEND;\n" + "\tFUNCTION create_dept (\n" + "\t\tdepartment_id NUMBER, \n" + "\t\tlocation_id NUMBER\n" + @@ -150,8 +150,8 @@ public class OracleCreatePackageTest0 extends OracleTest { "\t\tINSERT INTO departments\n" + "\t\tVALUES (new_deptno, 'department name', 100, 1700);\n" + "\t\ttot_depts := tot_depts + 1;\n" + - "\t\tRETURN(new_deptno);\n" + - "\tEND\n" + + "\t\tRETURN new_deptno;\n" + + "\tEND;\n" + "\tPROCEDURE remove_emp (\n" + "\t\temployee_id NUMBER\n" + "\t)\n" + @@ -160,7 +160,7 @@ public class OracleCreatePackageTest0 extends OracleTest { "\t\tDELETE FROM employees\n" + "\t\tWHERE employees.employee_id = remove_emp.employee_id;\n" + "\t\ttot_emps := tot_emps - 1;\n" + - "\tEND\n" + + "\tEND;\n" + "\tPROCEDURE remove_dept (\n" + "\t\tdepartment_id NUMBER\n" + "\t)\n" + @@ -172,7 +172,7 @@ public class OracleCreatePackageTest0 extends OracleTest { "\t\tSELECT COUNT(*)\n" + "\t\tINTO tot_emps\n" + "\t\tFROM employees;\n" + - "\tEND\n" + + "\tEND;\n" + "\tPROCEDURE increase_sal (\n" + "\t\temployee_id NUMBER, \n" + "\t\tsalary_incr NUMBER\n" + @@ -191,7 +191,7 @@ public class OracleCreatePackageTest0 extends OracleTest { "\t\t\tSET salary = salary + salary_incr\n" + "\t\t\tWHERE employee_id = employee_id;\n" + "\t\tEND IF;\n" + - "\tEND\n" + + "\tEND;\n" + "\tPROCEDURE increase_comm (\n" + "\t\temployee_id NUMBER, \n" + "\t\tcomm_incr NUMBER\n" + @@ -209,7 +209,7 @@ public class OracleCreatePackageTest0 extends OracleTest { "\t\t\tUPDATE employees\n" + "\t\t\tSET commission_pct = commission_pct + comm_incr;\n" + "\t\tEND IF;\n" + - "\tEND\n" + + "\tEND;\n" + "END emp_mgmt;",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest18.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest18.java index 96ee00ae45..066df80ff4 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest18.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest18.java @@ -73,7 +73,7 @@ public class OracleCreateTableTest18 extends OracleTest { "MAXTRANS 255\n" + "NOCOMPRESS\n" + "LOGGING\n" + - "TABLESPACE \"USERS\"", // + "TABLESPACE \"USERS\";", // SQLUtils.toSQLString(statement, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest19.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest19.java index dff0d20434..475bd249a1 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest19.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest19.java @@ -93,7 +93,7 @@ public class OracleCreateTableTest19 extends OracleTest { "\tBUFFER_POOL DEFAULT\n" + "\tFLASH_CACHE DEFAULT\n" + "\tCELL_FLASH_CACHE DEFAULT\n" + - ")", // + ");", // SQLUtils.toSQLString(statement, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest20.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest20.java index fb44637009..9a36d992c7 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest20.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest20.java @@ -87,7 +87,7 @@ public class OracleCreateTableTest20 extends OracleTest { "\tCHUNK 8192\n" + "\tNOCACHE\n" + "\tKEEP_DUPLICATES\n" + - ")",// + ");",// SQLUtils.toSQLString(statement, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest21.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest21.java index 7c4b6748b1..fbed783595 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest21.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest21.java @@ -52,7 +52,7 @@ public class OracleCreateTableTest21 extends OracleTest { "STORAGE (\n" + "\tINITIAL 8M\n" + "\tMAXSIZE 1G\n" + - ")",// + ");",// SQLUtils.toSQLString(statement, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest22.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest22.java index 43925dc4ed..38577cfd0b 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest22.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest22.java @@ -64,7 +64,7 @@ public class OracleCreateTableTest22 extends OracleTest { "\t\tSTORAGE (\n" + "\t\t\tINITIAL 8M\n" + "\t\t)\n" + - ")",// + ");",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest23.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest23.java index 3bf4987ca4..276a8919c3 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest23.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest23.java @@ -56,7 +56,7 @@ public class OracleCreateTableTest23 extends OracleTest { + "\n\tpromo_cost NUMBER(10, 2)," // + "\n\tpromo_begin_date DATE," // + "\n\tpromo_end_date DATE" // - + "\n)",// + + "\n);",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest24.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest24.java index 397bc9a076..b07cd4ed8a 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest24.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest24.java @@ -55,7 +55,7 @@ public class OracleCreateTableTest24 extends OracleTest { + "\n\tcity VARCHAR2(30)," // + "\n\tstate_province VARCHAR2(25)," // + "\n\tcountry_id CHAR(2)" // - + "\n)",// + + "\n);",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest25.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest25.java index 14ab3697ab..980517dbd7 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest25.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest25.java @@ -55,7 +55,7 @@ public class OracleCreateTableTest25 extends OracleTest { + "\n\tstate_province VARCHAR2(25)," // + "\n\tcountry_id CHAR(2)," + "\n\tCONSTRAINT loc_id_pk PRIMARY KEY (location_id)" // - + "\n)",// + + "\n);",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); @@ -67,10 +67,10 @@ public class OracleCreateTableTest25 extends OracleTest { System.out.println("relationships : " + visitor.getRelationships()); System.out.println("orderBy : " + visitor.getOrderByColumns()); - Assert.assertEquals(1, visitor.getTables().size()); + assertEquals(1, visitor.getTables().size()); - Assert.assertEquals(6, visitor.getColumns().size()); + assertEquals(6, visitor.getColumns().size()); - Assert.assertTrue(visitor.getColumns().contains(new TableStat.Column("locations_demo", "location_id"))); + assertTrue(visitor.getColumns().contains(new TableStat.Column("locations_demo", "location_id"))); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest26.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest26.java index 8900721818..ccbcb152a3 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest26.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest26.java @@ -47,9 +47,9 @@ public class OracleCreateTableTest26 extends OracleTest { SQLStatement stmt = statementList.get(0); print(statementList); - Assert.assertEquals(1, statementList.size()); + assertEquals(1, statementList.size()); - Assert.assertEquals("CREATE TABLE dept_20 (" // + assertEquals("CREATE TABLE dept_20 (" // + "\n\temployee_id NUMBER(4),"// + "\n\tlast_name VARCHAR2(10),"// + "\n\tjob_id VARCHAR2(9),"// @@ -59,7 +59,7 @@ public class OracleCreateTableTest26 extends OracleTest { + "\n\tcommission_pct NUMBER(7, 2),"// + "\n\tdepartment_id"// + "\n\t\tCONSTRAINT fk_deptno REFERENCES departments (department_id)"// - + "\n)",// + + "\n);",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); @@ -71,10 +71,10 @@ public class OracleCreateTableTest26 extends OracleTest { System.out.println("relationships : " + visitor.getRelationships()); System.out.println("orderBy : " + visitor.getOrderByColumns()); - Assert.assertEquals(1, visitor.getTables().size()); + assertEquals(1, visitor.getTables().size()); - Assert.assertEquals(8, visitor.getColumns().size()); + assertEquals(8, visitor.getColumns().size()); - Assert.assertTrue(visitor.getColumns().contains(new TableStat.Column("dept_20", "employee_id"))); + assertTrue(visitor.getColumns().contains(new TableStat.Column("dept_20", "employee_id"))); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest27.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest27.java index 35f0c4cde2..233427b252 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest27.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest27.java @@ -62,7 +62,7 @@ public class OracleCreateTableTest27 extends OracleTest { "\tdepartment_id,\n" + "\tCONSTRAINT fk_deptno FOREIGN KEY (department_id)\n" + "\t\tREFERENCES departments (department_id)\n" + - ")",// + ");",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest28.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest28.java index 10be45dfeb..2e5a153b50 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest28.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest28.java @@ -57,7 +57,7 @@ public class OracleCreateTableTest28 extends OracleTest { + "\n\t\tCONSTRAINT check_divname CHECK (div_name = UPPER(div_name)) DISABLE," // + "\n\toffice VARCHAR2(10)" // + "\n\t\tCONSTRAINT check_office CHECK (office IN ('DALLAS', 'BOSTON', 'PARIS', 'TOKYO')) DISABLE" // - + "\n)",// + + "\n);",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest29.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest29.java index 540478c241..93445565d0 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest29.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest29.java @@ -57,7 +57,7 @@ public class OracleCreateTableTest29 extends OracleTest { + "\n\tcommission_pct NUMBER(7, 2)," // + "\n\tdepartment_id NUMBER(2)," // + "\n\tCONSTRAINT check_sal CHECK (salary * commission_pct <= 5000)" // - + "\n)",// + + "\n);",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest30.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest30.java index 030182d8c7..144c1008a7 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest30.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest30.java @@ -63,7 +63,7 @@ public class OracleCreateTableTest30 extends OracleTest { + "\n\t\tCONSTRAINT check_qty CHECK (quantity > 0)," // + "\n\tcost NUMBER" // + "\n\t\tCONSTRAINT check_cost CHECK (cost > 0)" // - + "\n)",// + + "\n);",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest31.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest31.java index 653a6ecc00..be7ee2d633 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest31.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest31.java @@ -47,7 +47,7 @@ public class OracleCreateTableTest31 extends OracleTest { + "\n\tage INTEGER," + "\n\tCHECK (name.first_name IS NOT NULL" + "\n\t\tAND name.last_name IS NOT NULL)" - + "\n)",// + + "\n);",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest32.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest32.java index 969f2f222b..c619e1fb9c 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest32.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest32.java @@ -43,7 +43,7 @@ public class OracleCreateTableTest32 extends OracleTest { Assert.assertEquals("CREATE TABLE games (" // + "\n\tscores NUMBER" // + "\n\t\tCHECK (scores >= 0)" // - + "\n)",// + + "\n);",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest33.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest33.java index 79a5b3a01d..a49a252a25 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest33.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest33.java @@ -45,7 +45,7 @@ public class OracleCreateTableTest33 extends OracleTest { Assert.assertEquals("CREATE TABLE games (" // + "\n\tscores NUMBER," // + "\n\tCONSTRAINT unq_num UNIQUE (scores) INITIALLY DEFERRED DEFERRABLE" // - + "\n)",// + + "\n);",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest34.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest34.java index f25c1cdbf9..df1cc3dce5 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest34.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest34.java @@ -43,7 +43,7 @@ public class OracleCreateTableTest34 extends OracleTest { Assert.assertEquals("CREATE TABLE long_tab ("// + "\n\tpic_id NUMBER,"// + "\n\tlong_pics LONG RAW"// - + "\n)",// + + "\n);",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest36.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest36.java index db4e446ed8..10a0ef0f68 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest36.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest36.java @@ -103,7 +103,7 @@ public class OracleCreateTableTest36 extends OracleTest { + "\n\t)," + "\n\tPARTITION SALES_Q4_2000 VALUES LESS THAN (MAXVALUE)" + "\n\t\tSUBPARTITIONS 4" - + "\n)",// + + "\n);",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest37.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest37.java index f542b6bf0d..ce3ca2ff56 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest37.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest37.java @@ -75,7 +75,7 @@ public class OracleCreateTableTest37 extends OracleTest { + "\n\tCONSTRAINT product_status_lov_demo CHECK (product_status IN ('orderable', 'planned', 'under development', 'obsolete'))" + "\n)" + "\nPARTITION BY HASH (product_id) PARTITIONS 4" - + "\nSTORE IN (tbs_01, tbs_02, tbs_03, tbs_04)",// + + "\nSTORE IN (tbs_01, tbs_02, tbs_03, tbs_04);",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest38.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest38.java index 192256580a..ccbab68634 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest38.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest38.java @@ -50,9 +50,9 @@ public class OracleCreateTableTest38 extends OracleTest { SQLStatement stmt = statementList.get(0); print(statementList); - Assert.assertEquals(1, statementList.size()); + assertEquals(1, statementList.size()); - Assert.assertEquals("CREATE TABLE list_customers (" + assertEquals("CREATE TABLE list_customers (" + "\n\tcustomer_id NUMBER(6)," + "\n\tcust_first_name VARCHAR2(20)," + "\n\tcust_last_name VARCHAR2(20)," @@ -67,7 +67,7 @@ public class OracleCreateTableTest38 extends OracleTest { + "\n\tPARTITION west VALUES ('AMERICA'), " + "\n\tPARTITION east VALUES ('INDIA'), " + "\n\tPARTITION rest VALUES (DEFAULT)" - + "\n)",// + + "\n);",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest39.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest39.java index cd27be4aed..17caa794cb 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest39.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest39.java @@ -56,7 +56,7 @@ public class OracleCreateTableTest39 extends OracleTest { + "\nPARTITION BY RANGE (credit_limit) INTERVAL 1000" + "\n(" + "\n\tPARTITION p1 VALUES LESS THAN (5001)" - + "\n)",// + + "\n);",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest40.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest40.java index 5feef5b43f..63e26b5199 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest40.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTableTest40.java @@ -74,7 +74,7 @@ public class OracleCreateTableTest40 extends OracleTest { + "\n\tPARTITION p1 VALUES LESS THAN (1000)," + "\n\tPARTITION p2 VALUES LESS THAN (2500)," + "\n\tPARTITION p3 VALUES LESS THAN (MAXVALUE)" - + "\n)",// + + "\n);",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTriggerTest.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTriggerTest.java index 04df0fc7df..019dfc7867 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTriggerTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/create/OracleCreateTriggerTest.java @@ -44,14 +44,15 @@ public class OracleCreateTriggerTest extends OracleTest { Assert.assertEquals(1, statementList.size()); - Assert.assertEquals("CREATE TRIGGER \"AO_4AEACD_WEBHOOK_D367380484\"" // - + "\n\tBEFORE INSERT"// - + "\n\tON \"AO_4AEACD_WEBHOOK_DAO\""// - + "\n\tFOR EACH ROW"// - + "\nBEGIN"// - + "\n\tSELECT \"AO_4AEACD_WEBHOOK_DAO_ID_SEQ\".NEXTVAL"// - + "\n\tINTO :NEW.\"ID\"" // - + "\n\tFROM DUAL;" + "\nEND",// + Assert.assertEquals("CREATE TRIGGER \"AO_4AEACD_WEBHOOK_D367380484\"\n" + + "\tBEFORE INSERT\n" + + "\tON \"AO_4AEACD_WEBHOOK_DAO\"\n" + + "\tFOR EACH ROW\n" + + "BEGIN\n" + + "\tSELECT \"AO_4AEACD_WEBHOOK_DAO_ID_SEQ\".NEXTVAL\n" + + "\tINTO :NEW.\"ID\"\n" + + "\tFROM DUAL;\n" + + "END;",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/insert/OracleInsertTest10.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/insert/OracleInsertTest10.java index f87526aa39..631dbeb182 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/insert/OracleInsertTest10.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/insert/OracleInsertTest10.java @@ -41,7 +41,7 @@ public class OracleInsertTest10 extends OracleTest { Assert.assertEquals(1, statementList.size()); Assert.assertEquals("INSERT INTO departments\n" + - "VALUES (280, 'Recreation', 121, 1700)",// + "VALUES (280, 'Recreation', 121, 1700);",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/insert/OracleInsertTest11.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/insert/OracleInsertTest11.java index 4d2ed06082..b712ca132c 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/insert/OracleInsertTest11.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/insert/OracleInsertTest11.java @@ -41,7 +41,7 @@ public class OracleInsertTest11 extends OracleTest { Assert.assertEquals(1, statementList.size()); Assert.assertEquals("INSERT INTO departments"// - + "\nVALUES (280, 'Recreation', DEFAULT, 1700)",// + + "\nVALUES (280, 'Recreation', DEFAULT, 1700);",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/insert/OracleInsertTest12.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/insert/OracleInsertTest12.java index 377496a1b7..56d54547ef 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/insert/OracleInsertTest12.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/insert/OracleInsertTest12.java @@ -46,7 +46,7 @@ public class OracleInsertTest12 extends OracleTest { + "\n\t(employee_id, last_name, email, hire_date, job_id" // + "\n\t, salary, commission_pct)" // + "\nVALUES (207, 'Gregory', 'pgregory@example.com', SYSDATE, 'PU_CLERK'" // - + "\n\t, 1.2E+3, NULL)",// + + "\n\t, 1.2E+3, NULL);",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/insert/OracleInsertTest13.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/insert/OracleInsertTest13.java index e6476a3da5..c25bc3cbe5 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/insert/OracleInsertTest13.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/insert/OracleInsertTest13.java @@ -45,7 +45,7 @@ public class OracleInsertTest13 extends OracleTest { Assert.assertEquals("INSERT INTO bonuses" // + "\nSELECT employee_id, salary * 1.1"// + "\nFROM employees"// - + "\nWHERE commission_pct > 0.25",// + + "\nWHERE commission_pct > 0.25;",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/insert/OracleInsertTest14.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/insert/OracleInsertTest14.java index 28b665aa6b..9ad616b7df 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/insert/OracleInsertTest14.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/insert/OracleInsertTest14.java @@ -46,7 +46,7 @@ public class OracleInsertTest14 extends OracleTest { + "\nSELECT employee_id, salary * 1.1"// + "\nFROM employees"// + "\nWHERE commission_pct > 0.2"// - + "\nLOG ERRORS INTO errlog ('my_bad') REJECT LIMIT 10",// + + "\nLOG ERRORS INTO errlog ('my_bad') REJECT LIMIT 10;",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/insert/OracleInsertTest15.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/insert/OracleInsertTest15.java index e3debe362c..af2b5a4c7b 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/insert/OracleInsertTest15.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/insert/OracleInsertTest15.java @@ -45,7 +45,7 @@ public class OracleInsertTest15 extends OracleTest { Assert.assertEquals("INSERT INTO employees@remote" // + "\nVALUES (8002, 'Juan', 'Fernandez', 'juanf@example.com', NULL"// + "\n\t, TO_DATE('04-OCT-1992', 'DD-MON-YYYY'), 'SH_CLERK', 3000, NULL, 121"// - + "\n\t, 20)",// + + "\n\t, 20);",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/insert/OracleInsertTest16.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/insert/OracleInsertTest16.java index 7eb79c5f98..d73286726b 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/insert/OracleInsertTest16.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/insert/OracleInsertTest16.java @@ -41,7 +41,7 @@ public class OracleInsertTest16 extends OracleTest { Assert.assertEquals(1, statementList.size()); Assert.assertEquals("INSERT INTO departments" // - + "\nVALUES (departments_seq.NEXTVAL, 'Entertainment', 162, 1400)",// + + "\nVALUES (departments_seq.NEXTVAL, 'Entertainment', 162, 1400);",// SQLUtils.toSQLString(stmt, JdbcConstants.ORACLE)); OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_0.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_0.java index 7481aa4a14..3527104911 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_0.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_0.java @@ -72,7 +72,7 @@ public class Oracle_pl_0 extends OracleTest { "\tDELETE FROM employees\n" + "\tWHERE employees.employee_id = remove_emp.employee_id;\n" + "\ttot_emps := tot_emps - 1;\n" + - "END", // + "END;", // output); } { @@ -86,7 +86,7 @@ public class Oracle_pl_0 extends OracleTest { "\tdelete from employees\n" + "\twhere employees.employee_id = remove_emp.employee_id;\n" + "\ttot_emps := tot_emps - 1;\n" + - "end", // + "end;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_1.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_1.java index 64a9153693..8a032fbc94 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_1.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_1.java @@ -95,7 +95,7 @@ public class Oracle_pl_1 extends OracleTest { "\tRETURNING first_name, last_name INTO emp_first_name, emp_last_name;\n" + "\tCOMMIT;\n" + "\tDBMS_OUTPUT.PUT_LINE(emp_first_name || ' ' || emp_last_name);\n" + - "END", // + "END;", // output); } { @@ -115,7 +115,7 @@ public class Oracle_pl_1 extends OracleTest { "\treturning first_name, last_name into emp_first_name, emp_last_name;\n" + "\tcommit;\n" + "\tDBMS_OUTPUT.PUT_LINE(emp_first_name || ' ' || emp_last_name);\n" + - "end", // + "end;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_case_0.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_case_0.java index e3916a981b..3c6914e141 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_case_0.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_case_0.java @@ -82,7 +82,7 @@ public class Oracle_pl_case_0 extends OracleTest { "\t\tWHEN grade = 'F' THEN DBMS_OUTPUT.PUT_LINE('Poor');\n" + "\t\tELSE DBMS_OUTPUT.PUT_LINE('No such grade');\n" + "\tEND CASE;\n" + - "END", // + "END;", // output); } { @@ -99,7 +99,7 @@ public class Oracle_pl_case_0 extends OracleTest { "\t\twhen grade = 'F' then DBMS_OUTPUT.PUT_LINE('Poor');\n" + "\t\telse DBMS_OUTPUT.PUT_LINE('No such grade');\n" + "\tend case;\n" + - "end", // + "end;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_case_1.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_case_1.java index 03e0d2a29a..e9a3ab3dc2 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_case_1.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_case_1.java @@ -82,11 +82,10 @@ public class Oracle_pl_case_1 extends OracleTest { "\t\tWHEN grade = 'C' THEN DBMS_OUTPUT.PUT_LINE('Good'); \n" + "\t\tWHEN grade = 'D' THEN DBMS_OUTPUT.PUT_LINE('Fair'); \n" + "\t\tWHEN grade = 'F' THEN DBMS_OUTPUT.PUT_LINE('Poor');\n" + - "\t\tELSE ;\n" + "\tEND CASE;\n" + "EXCEPTION\n" + "\tWHEN CASE_NOT_FOUND THEN DBMS_OUTPUT.PUT_LINE('No such grade');\n" + - "END", // + "END;", // output); } { @@ -101,11 +100,10 @@ public class Oracle_pl_case_1 extends OracleTest { "\t\twhen grade = 'C' then DBMS_OUTPUT.PUT_LINE('Good'); \n" + "\t\twhen grade = 'D' then DBMS_OUTPUT.PUT_LINE('Fair'); \n" + "\t\twhen grade = 'F' then DBMS_OUTPUT.PUT_LINE('Poor');\n" + - "\t\telse ;\n" + "\tend case;\n" + "exception\n" + "\twhen CASE_NOT_FOUND then DBMS_OUTPUT.PUT_LINE('No such grade');\n" + - "end", // + "end;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_case_2.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_case_2.java index 3ca2ecba79..8611d8b3bb 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_case_2.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_case_2.java @@ -75,7 +75,7 @@ public class Oracle_pl_case_2 extends OracleTest { "\tWHEN 'H' THEN award_bonus(l_employee_id); \n" + "\tWHEN 'C' THEN award_commissioned_bonus(l_employee_id);\n" + "\tELSE RAISE invalid_employee_type;\n" + - "END CASE", // + "END CASE;", // output); } { @@ -85,7 +85,7 @@ public class Oracle_pl_case_2 extends OracleTest { "\twhen 'H' then award_bonus(l_employee_id); \n" + "\twhen 'C' then award_commissioned_bonus(l_employee_id);\n" + "\telse raise invalid_employee_type;\n" + - "end case", // + "end case;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_0.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_0.java index 10a5d08478..5d450c5eb2 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_0.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_0.java @@ -111,7 +111,7 @@ public class Oracle_pl_exception_0 extends OracleTest { "\tWHEN OTHERS THEN\n" + "\t\tDBMS_OUTPUT.PUT_LINE('Unexpected error');\n" + "\t\tRAISE;\n" + - "END", // + "END;", // output); } { @@ -140,7 +140,7 @@ public class Oracle_pl_exception_0 extends OracleTest { "\twhen OTHERS then\n" + "\t\tDBMS_OUTPUT.PUT_LINE('Unexpected error');\n" + "\t\traise;\n" + - "end", // + "end;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_1.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_1.java index fce6c1dfec..964b9a7be0 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_1.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_1.java @@ -91,7 +91,7 @@ public class Oracle_pl_exception_1 extends OracleTest { "\tWHERE table_name LIKE 'XYZ%';\n" + "EXCEPTION\n" + "\tWHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('Table name not found in query ' || stmt_no);\n" + - "END", // + "END;", // output); } { @@ -113,7 +113,7 @@ public class Oracle_pl_exception_1 extends OracleTest { "\twhere table_name like 'XYZ%';\n" + "exception\n" + "\twhen NO_DATA_FOUND then DBMS_OUTPUT.PUT_LINE('Table name not found in query ' || stmt_no);\n" + - "end", // + "end;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_2.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_2.java index 3f07d4358b..bd57bd3605 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_2.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_2.java @@ -78,7 +78,7 @@ public class Oracle_pl_exception_2 extends OracleTest { "\tWHEN ZERO_DIVIDE THEN\n" + "\t\tDBMS_OUTPUT.PUT_LINE('Company had zero earnings.');\n" + "\t\tpe_ratio := NULL;\n" + - "END", // + "END;", // output); } { @@ -94,7 +94,7 @@ public class Oracle_pl_exception_2 extends OracleTest { "\twhen ZERO_DIVIDE then\n" + "\t\tDBMS_OUTPUT.PUT_LINE('Company had zero earnings.');\n" + "\t\tpe_ratio := null;\n" + - "end", // + "end;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_3.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_3.java index e7556a67f4..caadfcea6c 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_3.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_3.java @@ -104,7 +104,7 @@ public class Oracle_pl_exception_3 extends OracleTest { "\tWHEN salary_too_high THEN\n" + "\t\tcurrent_salary := max_salary;\n" + "\t\tDBMS_OUTPUT.PUT_LINE('Revising salary from ' || erroneous_salary || ' to ' || current_salary || '.');\n" + - "END", // + "END;", // output); } { @@ -130,7 +130,7 @@ public class Oracle_pl_exception_3 extends OracleTest { "\twhen salary_too_high then\n" + "\t\tcurrent_salary := max_salary;\n" + "\t\tDBMS_OUTPUT.PUT_LINE('Revising salary from ' || erroneous_salary || ' to ' || current_salary || '.');\n" + - "end", // + "end;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_4.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_4.java index 42aac5444d..95e2c93f14 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_4.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_4.java @@ -89,7 +89,7 @@ public class Oracle_pl_exception_4 extends OracleTest { "\tWHEN OTHERS THEN\n" + "\t\tROLLBACK;\n" + "\t\tRAISE;\n" + - "END", // + "END;", // output); } { @@ -110,7 +110,7 @@ public class Oracle_pl_exception_4 extends OracleTest { "\twhen OTHERS then\n" + "\t\trollback;\n" + "\t\traise;\n" + - "end", // + "end;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_5.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_5.java index 9b00131cbb..fe28bbbaf4 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_5.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_5.java @@ -78,7 +78,7 @@ public class Oracle_pl_exception_5 extends OracleTest { "\t\t\tRAISE past_due;\n" + "\t\tEND IF;\n" + "\tEND;\n" + - "END", // + "END;", // output); } { @@ -93,7 +93,7 @@ public class Oracle_pl_exception_5 extends OracleTest { "\t\t\traise past_due;\n" + "\t\tend if;\n" + "\tend;\n" + - "end", // + "end;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_6.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_6.java index b062587008..150857d449 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_6.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_6.java @@ -69,7 +69,7 @@ public class Oracle_pl_exception_6 extends OracleTest { "\tNULL;\n" + "EXCEPTION\n" + "\tWHEN VALUE_ERROR THEN DBMS_OUTPUT.PUT_LINE('Exception raised in declaration.');\n" + - "END", // + "END;", // output); } { @@ -80,7 +80,7 @@ public class Oracle_pl_exception_6 extends OracleTest { "\tnull;\n" + "exception\n" + "\twhen VALUE_ERROR then DBMS_OUTPUT.PUT_LINE('Exception raised in declaration.');\n" + - "end", // + "end;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_7.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_7.java index ad2279a8cb..a947a49494 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_7.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_7.java @@ -75,7 +75,7 @@ public class Oracle_pl_exception_7 extends OracleTest { "\tEND;\n" + "EXCEPTION\n" + "\tWHEN VALUE_ERROR THEN DBMS_OUTPUT.PUT_LINE('Exception raised in declaration.');\n" + - "END", // + "END;", // output); } { @@ -88,7 +88,7 @@ public class Oracle_pl_exception_7 extends OracleTest { "\tend;\n" + "exception\n" + "\twhen VALUE_ERROR then DBMS_OUTPUT.PUT_LINE('Exception raised in declaration.');\n" + - "end", // + "end;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_8.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_8.java index b82154ff55..856083e5ae 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_8.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exception_8.java @@ -103,20 +103,15 @@ public class Oracle_pl_exception_8 extends OracleTest { String output = SQLUtils.toSQLString(statementList, JdbcConstants.ORACLE); System.out.println(output); assertEquals("DROP TABLE results;\n" + - "\n" + "CREATE TABLE results (\n" + "\tres_name VARCHAR(20),\n" + "\tres_answer VARCHAR2(3)\n" + ");\n" + - "\n" + "CREATE UNIQUE INDEX res_name_ix ON results(res_name);\n" + - "\n" + "INSERT INTO results (res_name, res_answer)\n" + "VALUES ('SMYTHE', 'YES');\n" + - "\n" + "INSERT INTO results (res_name, res_answer)\n" + "VALUES ('JONES', 'NO');\n" + - "\n" + "DECLARE\n" + "\tname VARCHAR2(20) := 'SMYTHE';\n" + "\tanswer VARCHAR2(3) := 'NO';\n" + @@ -126,8 +121,7 @@ public class Oracle_pl_exception_8 extends OracleTest { "\tLOOP\n" + "\t\tDBMS_OUTPUT.PUT('Try #' || i);\n" + "\t\tBEGIN\n" + - "\t\t\tROLLBACK;\n" + - "\t\t\tstart_transaction;\n" + + "\t\t\tSAVEPOINT TO start_transaction;\n" + "\t\t\tDELETE FROM results\n" + "\t\t\tWHERE res_answer = 'NO';\n" + "\t\t\tINSERT INTO results (res_name, res_answer)\n" + @@ -143,26 +137,21 @@ public class Oracle_pl_exception_8 extends OracleTest { "\t\t\t\tname := name || TO_CHAR(suffix);\n" + "\t\tEND;\n" + "\tEND LOOP;\n" + - "END;\n", // + "END;", // output); } { String output = SQLUtils.toSQLString(statementList, JdbcConstants.ORACLE, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION); assertEquals("drop table results;\n" + - "\n" + "create table results (\n" + "\tres_name VARCHAR(20),\n" + "\tres_answer VARCHAR2(3)\n" + ");\n" + - "\n" + "create UNIQUE index res_name_ix on results(res_name);\n" + - "\n" + "insert into results (res_name, res_answer)\n" + "values ('SMYTHE', 'YES');\n" + - "\n" + "insert into results (res_name, res_answer)\n" + "values ('JONES', 'NO');\n" + - "\n" + "declare\n" + "\tname VARCHAR2(20) := 'SMYTHE';\n" + "\tanswer VARCHAR2(3) := 'NO';\n" + @@ -172,8 +161,7 @@ public class Oracle_pl_exception_8 extends OracleTest { "\tloop\n" + "\t\tDBMS_OUTPUT.PUT('Try #' || i);\n" + "\t\tbegin\n" + - "\t\t\trollback;\n" + - "\t\t\tstart_transaction;\n" + + "\t\t\tsavepoint to start_transaction;\n" + "\t\t\tdelete from results\n" + "\t\t\twhere res_answer = 'NO';\n" + "\t\t\tinsert into results (res_name, res_answer)\n" + @@ -189,7 +177,7 @@ public class Oracle_pl_exception_8 extends OracleTest { "\t\t\t\tname := name || TO_CHAR(suffix);\n" + "\t\tend;\n" + "\tend loop;\n" + - "end;\n", // + "end;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exit_0.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exit_0.java index db325adcf3..e442599a07 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exit_0.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exit_0.java @@ -80,7 +80,7 @@ public class Oracle_pl_exit_0 extends OracleTest { "\t\tEND IF;\n" + "\tEND LOOP;\n" + "\tDBMS_OUTPUT.PUT_LINE(' After loop: x = ' || TO_CHAR(x));\n" + - "END", // + "END;", // output); } { @@ -96,7 +96,7 @@ public class Oracle_pl_exit_0 extends OracleTest { "\t\tend if;\n" + "\tend loop;\n" + "\tDBMS_OUTPUT.PUT_LINE(' After loop: x = ' || TO_CHAR(x));\n" + - "end", // + "end;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exit_1.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exit_1.java index e7a3969580..d4e551dfb6 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exit_1.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_exit_1.java @@ -76,7 +76,7 @@ public class Oracle_pl_exit_1 extends OracleTest { "\t\tEXIT WHEN x > 3;\n" + "\tEND LOOP;\n" + "\tDBMS_OUTPUT.PUT_LINE('After loop: x = ' || TO_CHAR(x));\n" + - "END", // + "END;", // output); } { @@ -90,7 +90,7 @@ public class Oracle_pl_exit_1 extends OracleTest { "\t\texit when x > 3;\n" + "\tend loop;\n" + "\tDBMS_OUTPUT.PUT_LINE('After loop: x = ' || TO_CHAR(x));\n" + - "end", // + "end;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_external_0.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_external_0.java index 1a4a3f9f74..36d393dc8f 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_external_0.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_external_0.java @@ -65,7 +65,7 @@ public class Oracle_pl_external_0 extends OracleTest { "\tempid NUMBER, \n" + "\tpct NUMBER\n" + ")\n" + - "LANGUAGE JAVA NAME 'Adjuster.raiseSalary (int, float)'", // + "LANGUAGE JAVA NAME 'Adjuster.raiseSalary (int, float)';", // output); } { @@ -74,7 +74,7 @@ public class Oracle_pl_external_0 extends OracleTest { "\tempid NUMBER, \n" + "\tpct NUMBER\n" + ")\n" + - "language java name 'Adjuster.raiseSalary (int, float)'", // + "language java name 'Adjuster.raiseSalary (int, float)';", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_for_0.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_for_0.java index 4f6b328415..6b84ff3aa5 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_for_0.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_for_0.java @@ -79,7 +79,7 @@ public class Oracle_pl_for_0 extends OracleTest { "\tLOOP\n" + "\t\tdisplay_total_sales(l_current_year);\n" + "\tEND LOOP;\n" + - "END", // + "END;", // output); } { @@ -94,7 +94,7 @@ public class Oracle_pl_for_0 extends OracleTest { "\tloop\n" + "\t\tdisplay_total_sales(l_current_year);\n" + "\tend loop;\n" + - "end", // + "end;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_for_1.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_for_1.java index bb14fbe018..b6ca745709 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_for_1.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_for_1.java @@ -98,7 +98,7 @@ public class Oracle_pl_for_1 extends OracleTest { "\tLOOP\n" + "\t\tDBMS_OUTPUT.PUT_LINE('Name = ' || names(i) || ', salary = ' || sals(i));\n" + "\tEND LOOP;\n" + - "END", // + "END;", // output); } { @@ -122,7 +122,7 @@ public class Oracle_pl_for_1 extends OracleTest { "\tloop\n" + "\t\tDBMS_OUTPUT.PUT_LINE('Name = ' || names(i) || ', salary = ' || sals(i));\n" + "\tend loop;\n" + - "end", // + "end;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_for_2.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_for_2.java index a185147e5a..49f10dc784 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_for_2.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_for_2.java @@ -72,12 +72,10 @@ public class Oracle_pl_for_2 extends OracleTest { String output = SQLUtils.toSQLString(statementList, JdbcConstants.ORACLE); System.out.println(output); assertEquals("DROP TABLE employees_temp;\n" + - "\n" + "CREATE TABLE employees_temp\n" + "AS\n" + "SELECT *\n" + "FROM employees;\n" + - "\n" + "DECLARE\n" + "\tTYPE NumList IS VARRAY(20) OF NUMBER;\n" + "\tdepts NumList := NumList(10, 30, 70);\n" + @@ -87,18 +85,16 @@ public class Oracle_pl_for_2 extends OracleTest { "\t\tDELETE FROM employees_temp\n" + "\t\tWHERE department_id = depts(i);\n" + "\tEND LOOP;\n" + - "END;\n", // + "END;", // output); } { String output = SQLUtils.toSQLString(statementList, JdbcConstants.ORACLE, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION); assertEquals("drop table employees_temp;\n" + - "\n" + "create table employees_temp\n" + "as\n" + "select *\n" + "from employees;\n" + - "\n" + "declare\n" + "\ttype NumList is VARRAY(20) OF NUMBER;\n" + "\tdepts NumList := NumList(10, 30, 70);\n" + @@ -108,7 +104,7 @@ public class Oracle_pl_for_2 extends OracleTest { "\t\tdelete from employees_temp\n" + "\t\twhere department_id = depts(i);\n" + "\tend loop;\n" + - "end;\n", // + "end;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_for_3.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_for_3.java index 5a1360a196..a2df832137 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_for_3.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_for_3.java @@ -81,7 +81,7 @@ public class Oracle_pl_for_3 extends OracleTest { "\t\tEXIT WHEN c1%NOTFOUND;\n" + "\tEND LOOP;\n" + "\tCLOSE c1;\n" + - "END", // + "END;", // output); } { @@ -99,7 +99,7 @@ public class Oracle_pl_for_3 extends OracleTest { "\t\texit when c1%NOTFOUND;\n" + "\tend loop;\n" + "\tclose c1;\n" + - "end", // + "end;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_for_4.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_for_4.java index 15ed2d69db..04305e8101 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_for_4.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_for_4.java @@ -91,7 +91,7 @@ public class Oracle_pl_for_4 extends OracleTest { "\t\tEND LOOP;\n" + "\tEND LOOP outer_loop;\n" + "\tCLOSE c1;\n" + - "END", // + "END;", // output); } { @@ -113,7 +113,7 @@ public class Oracle_pl_for_4 extends OracleTest { "\t\tend loop;\n" + "\tend loop outer_loop;\n" + "\tclose c1;\n" + - "end", // + "end;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_forall_0.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_forall_0.java index 960225a100..80462a6021 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_forall_0.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_forall_0.java @@ -66,12 +66,10 @@ public class Oracle_pl_forall_0 extends OracleTest { String output = SQLUtils.toSQLString(statementList, JdbcConstants.ORACLE); System.out.println(output); assertEquals("DROP TABLE employees_temp;\n" + - "\n" + "CREATE TABLE employees_temp\n" + "AS\n" + "SELECT *\n" + "FROM employees;\n" + - "\n" + "DECLARE\n" + "\tTYPE NumList IS VARRAY(20) OF NUMBER;\n" + "\tdepts NumList := NumList(10, 30, 70);\n" + @@ -79,18 +77,16 @@ public class Oracle_pl_forall_0 extends OracleTest { "\tFORALL i IN depts.FIRST..depts.LAST\n" + "\t\tDELETE FROM employees_temp\n" + "\t\tWHERE department_id = depts(i);\n" + - "END;\n", // + "END;", // output); } { String output = SQLUtils.toSQLString(statementList, JdbcConstants.ORACLE, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION); assertEquals("drop table employees_temp;\n" + - "\n" + "create table employees_temp\n" + "as\n" + "select *\n" + "from employees;\n" + - "\n" + "declare\n" + "\ttype NumList is VARRAY(20) OF NUMBER;\n" + "\tdepts NumList := NumList(10, 30, 70);\n" + @@ -98,7 +94,7 @@ public class Oracle_pl_forall_0 extends OracleTest { "\tforall i in depts.FIRST..depts.LAST\n" + "\t\tdelete from employees_temp\n" + "\t\twhere department_id = depts(i);\n" + - "end;\n", // + "end;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_if_0.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_if_0.java index 6fd1fb3be5..1c4c3c2aa0 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_if_0.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_if_0.java @@ -62,14 +62,14 @@ public class Oracle_pl_if_0 extends OracleTest { String output = SQLUtils.toOracleString(stmt); assertEquals("IF l_salary > 40000 THEN\n" + "\tgive_bonus(l_employee_id, 500);\n" + - "END IF", // + "END IF;", // output); } { String output = SQLUtils.toOracleString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION); assertEquals("if l_salary > 40000 then\n" + "\tgive_bonus(l_employee_id, 500);\n" + - "end if", // + "end if;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_if_1.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_if_1.java index 3fe5960471..2d30c8bf12 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_if_1.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_if_1.java @@ -65,7 +65,7 @@ public class Oracle_pl_if_1 extends OracleTest { "\tOR l_salary IS NULL\n" + "THEN\n" + "\tgive_bonus(l_employee_id, 500);\n" + - "END IF", // + "END IF;", // output); } { @@ -74,7 +74,7 @@ public class Oracle_pl_if_1 extends OracleTest { "\tor l_salary is null\n" + "then\n" + "\tgive_bonus(l_employee_id, 500);\n" + - "end if", // + "end if;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_if_2.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_if_2.java index 781f85fbd8..8092f3cf00 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_if_2.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_if_2.java @@ -66,7 +66,7 @@ public class Oracle_pl_if_2 extends OracleTest { "\tgive_bonus(l_employee_id, 0);\n" + "ELSE\n" + "\tgive_bonus(l_employee_id, 500);\n" + - "END IF", // + "END IF;", // output); } { @@ -75,7 +75,7 @@ public class Oracle_pl_if_2 extends OracleTest { "\tgive_bonus(l_employee_id, 0);\n" + "else\n" + "\tgive_bonus(l_employee_id, 500);\n" + - "end if", // + "end if;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_if_3.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_if_3.java index 1c8700a916..853078b74b 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_if_3.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_if_3.java @@ -71,7 +71,7 @@ public class Oracle_pl_if_3 extends OracleTest { "\tgive_bonus(l_employee_id, 500);\n" + "ELSE\n" + "\tgive_bonus(l_employee_id, 0);\n" + - "END IF", // + "END IF;", // output); } { @@ -82,7 +82,7 @@ public class Oracle_pl_if_3 extends OracleTest { "\tgive_bonus(l_employee_id, 500);\n" + "else\n" + "\tgive_bonus(l_employee_id, 0);\n" + - "end if", // + "end if;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_loop_0.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_loop_0.java index dbbab86bf4..8116da7a3b 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_loop_0.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_loop_0.java @@ -78,7 +78,7 @@ public class Oracle_pl_loop_0 extends OracleTest { "\t\tEND IF;\n" + "\tEND LOOP;\n" + "\tDBMS_OUTPUT.PUT_LINE(' After loop: x = ' || TO_CHAR(x));\n" + - "END", // + "END;", // output); } { @@ -94,7 +94,7 @@ public class Oracle_pl_loop_0 extends OracleTest { "\t\tend if;\n" + "\tend loop;\n" + "\tDBMS_OUTPUT.PUT_LINE(' After loop: x = ' || TO_CHAR(x));\n" + - "end", // + "end;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_loop_1.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_loop_1.java index 8632829502..cdd1fe9536 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_loop_1.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_loop_1.java @@ -74,7 +74,7 @@ public class Oracle_pl_loop_1 extends OracleTest { "\t\tEXIT WHEN x > 3;\n" + "\tEND LOOP;\n" + "\tDBMS_OUTPUT.PUT_LINE('After loop: x = ' || TO_CHAR(x));\n" + - "END", // + "END;", // output); } { @@ -88,7 +88,7 @@ public class Oracle_pl_loop_1 extends OracleTest { "\t\texit when x > 3;\n" + "\tend loop;\n" + "\tDBMS_OUTPUT.PUT_LINE('After loop: x = ' || TO_CHAR(x));\n" + - "end", // + "end;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_open_for_0.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_open_for_0.java index 5f794e9280..c7037af125 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_open_for_0.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_open_for_0.java @@ -126,7 +126,7 @@ public class Oracle_pl_open_for_0 extends OracleTest { "\t\tDBMS_OUTPUT.PUT_LINE('sal_multiple = ' || sal_multiple);\n" + "\tEND LOOP;\n" + "\tCLOSE cv;\n" + - "END", // + "END;", // output); } { @@ -161,7 +161,7 @@ public class Oracle_pl_open_for_0 extends OracleTest { "\t\tDBMS_OUTPUT.PUT_LINE('sal_multiple = ' || sal_multiple);\n" + "\tend loop;\n" + "\tclose cv;\n" + - "end", // + "end;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_param_inout_0.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_param_inout_0.java index 6650dcc3a6..28f55872ac 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_param_inout_0.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/pl/Oracle_pl_param_inout_0.java @@ -69,7 +69,7 @@ public class Oracle_pl_param_inout_0 extends OracleTest { ")\n" + "BEGIN\n" + "\tp.change_job(new_job);\n" + - "END", // + "END;", // output); } { @@ -80,7 +80,7 @@ public class Oracle_pl_param_inout_0 extends OracleTest { ")\n" + "begin\n" + "\tp.change_job(new_job);\n" + - "end", // + "end;", // output); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest10.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest10.java index fd02fe0e28..07512ed2b5 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest10.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest10.java @@ -43,12 +43,12 @@ public class OracleSelectTest10 extends OracleTest { Assert.assertEquals("SELECT *" + "\nFROM pivot_table" + "\nUNPIVOT INCLUDE NULLS (yearly_total FOR order_mode IN (store AS 'direct', internet AS 'online'))" - + "\nORDER BY year, order_mode", result); + + "\nORDER BY year, order_mode;", result); Assert.assertEquals("select *" + "\nfrom pivot_table" + "\nunpivot include nulls (yearly_total for order_mode in (store as 'direct', internet as 'online'))" - + "\norder by year, order_mode", result_lcase); + + "\norder by year, order_mode;", result_lcase); Assert.assertEquals(1, statementList.size()); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest42.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest42.java index 3df932a36c..420ec56251 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest42.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest42.java @@ -58,8 +58,7 @@ public class OracleSelectTest42 extends OracleTest { Assert.assertEquals("SELECT ALL *" + // "\nFROM t_department" + // "\nWHERE name IN ('0000', '4444')" + // - "\nORDER BY name ASC;" + // - "\n", text); + "\nORDER BY name ASC", text); // Assert.assertTrue(visitor.getColumns().contains(new TableStat.Column("acduser.vw_acd_info", "xzqh"))); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest44.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest44.java index 15d0c4ddf8..404f7bef26 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest44.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest44.java @@ -58,8 +58,7 @@ public class OracleSelectTest44 extends OracleTest { Assert.assertEquals("SELECT UNIQUE *" + // "\nFROM ONLY (t_department)" + // "\nWHERE name IN ('0000', '4444')" + // - "\nORDER BY name ASC;" + // - "\n", text); + "\nORDER BY name ASC", text); // Assert.assertTrue(visitor.getColumns().contains(new TableStat.Column("acduser.vw_acd_info", "xzqh"))); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest45.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest45.java index 7fb344aa93..9f181d22f1 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest45.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest45.java @@ -70,7 +70,7 @@ public class OracleSelectTest45 extends OracleTest { + "\n\tAND REFUND_STATE = '0'" + "\n\tAND PRODUCT_ORDER_STATE >= 300" + "\n\tAND BC_ID IN (?)" - + "\nGROUP BY BC_ID;\n", text); + + "\nGROUP BY BC_ID", text); // Assert.assertTrue(visitor.getColumns().contains(new TableStat.Column("acduser.vw_acd_info", "xzqh"))); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest46.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest46.java index 31268ff172..5ab1457b14 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest46.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest46.java @@ -63,8 +63,7 @@ public class OracleSelectTest46 extends OracleTest { + "\nWHERE T1.MT_ORDER_ID = T2.MT_ORDER_ID" // + "\n\tAND SELLER_SSOID = 1" // + "\n\tAND T1.MT_ORDER_ID = '1'" // - + "\n\tAND T1.MT_BATCH_ORDER_ID IN ('1');"// - + "\n", text); + + "\n\tAND T1.MT_BATCH_ORDER_ID IN ('1')", text); // Assert.assertTrue(visitor.getColumns().contains(new TableStat.Column("acduser.vw_acd_info", "xzqh"))); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest47.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest47.java index 1883d025e8..c1308c4f89 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest47.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest47.java @@ -55,8 +55,7 @@ public class OracleSelectTest47 extends OracleTest { Assert.assertEquals("SELECT *" // + "\nFROM abc" // - + "\nWHERE model = ?;" // - + "\n", text); + + "\nWHERE model = ?", text); // Assert.assertTrue(visitor.getColumns().contains(new TableStat.Column("acduser.vw_acd_info", "xzqh"))); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest48.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest48.java index 1aa7bce026..6d052b4d19 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest48.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest48.java @@ -63,8 +63,7 @@ public class OracleSelectTest48 extends OracleTest { + "\nSELECT synonym_name" // + "\nFROM all_synonyms us, all_sequences asq" // + "\nWHERE asq.sequence_name = us.table_name" // - + "\n\tAND asq.sequence_owner = us.table_owner;" // - + "\n", text); + + "\n\tAND asq.sequence_owner = us.table_owner", text); // Assert.assertTrue(visitor.getColumns().contains(new TableStat.Column("acduser.vw_acd_info", "xzqh"))); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest49.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest49.java index 10c765b397..e4e4d9ffe7 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest49.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest49.java @@ -56,8 +56,7 @@ public class OracleSelectTest49 extends OracleTest { Assert.assertEquals("SELECT *" // + "\nFROM tab1 t" // - + "\nORDER BY replace(to_char(t.SORTNUM), '0', '9');" - + "\n", text); + + "\nORDER BY replace(to_char(t.SORTNUM), '0', '9')", text); // Assert.assertTrue(visitor.getColumns().contains(new TableStat.Column("acduser.vw_acd_info", "xzqh"))); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest50.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest50.java index 093f302383..86867e8abd 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest50.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest50.java @@ -63,8 +63,7 @@ public class OracleSelectTest50 extends OracleTest { + "\n\tWHERE rownum <= 20"// + "\n\tORDER BY REG_TIME DESC"// + "\n)"// - + "\nWHERE num > 0;"// - + "\n", text); + + "\nWHERE num > 0", text); // Assert.assertTrue(visitor.getColumns().contains(new TableStat.Column("acduser.vw_acd_info", "xzqh"))); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest51.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest51.java index ebb164397e..4c25c25c27 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest51.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/select/OracleSelectTest51.java @@ -56,14 +56,14 @@ public class OracleSelectTest51 extends OracleTest { String text = SQLUtils.toOracleString(stmt); Assert.assertEquals("SELECT TRIM(TRAILING 'M' FROM RTRIM(' testM'))" // - + "\nFROM dual", text); + + "\nFROM dual;", text); } { String text = SQLUtils.toOracleString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION); Assert.assertEquals("select TRIM(TRAILING 'M' from RTRIM(' testM'))" // - + "\nfrom dual", text); + + "\nfrom dual;", text); } // Assert.assertTrue(visitor.getColumns().contains(new TableStat.Column("acduser.vw_acd_info", "xzqh"))); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleASTVisitorAdapterTest.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleASTVisitorAdapterTest.java index 7f3f21c5a1..97f655dbcb 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleASTVisitorAdapterTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleASTVisitorAdapterTest.java @@ -76,7 +76,6 @@ import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleMultiInsertStatement. import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleMultiInsertStatement.InsertIntoClause; import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OraclePLSQLCommitStatement; import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OraclePrimaryKey; -import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleSavePointStatement; import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleSelectPivot; import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleSelectQueryBlock; import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleSelectRestriction.CheckOption; @@ -163,7 +162,6 @@ public class OracleASTVisitorAdapterTest extends TestCase { new OracleDropDbLinkStatement().accept(adapter); new OracleCreateDatabaseDbLinkStatement().accept(adapter); new SQLCreateProcedureStatement().accept(adapter); - new OracleSavePointStatement().accept(adapter); new SQLFetchStatement().accept(adapter); new OracleExitStatement().accept(adapter); new OracleExplainStatement().accept(adapter); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_Aggregate.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_Aggregate.java index 246f960e3f..2ff5853475 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_Aggregate.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_Aggregate.java @@ -50,7 +50,7 @@ public class OracleOutputVisitorTest_Aggregate extends TestCase { StringBuilder buf = new StringBuilder(); OracleOutputVisitor outputVisitor = new OracleOutputVisitor(buf); stmt.accept(outputVisitor); - Assert.assertEquals("SELECT MAX(salary)\nFROM emp\nWHERE F1 = DATE '2011-10-01';\n", buf.toString()); + Assert.assertEquals("SELECT MAX(salary)\nFROM emp\nWHERE F1 = DATE '2011-10-01'", buf.toString()); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_PrettyFormat.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_PrettyFormat.java index 5d7e874f43..38663b4822 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_PrettyFormat.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_PrettyFormat.java @@ -33,7 +33,7 @@ public class OracleOutputVisitorTest_PrettyFormat { statement.accept(visitor); } - String expectResult = "SELECT *\nFROM ge_rms_company\nSTART WITH comcode = '00'\nCONNECT BY NOCYCLE PRIOR comcode = uppercomcode;\n"; + String expectResult = "SELECT *\nFROM ge_rms_company\nSTART WITH comcode = '00'\nCONNECT BY NOCYCLE PRIOR comcode = uppercomcode"; Assert.assertEquals(expectResult, out.toString()); out.setLength(0); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_dblink.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_dblink.java index 802550c957..3142e4dec3 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_dblink.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_dblink.java @@ -49,7 +49,7 @@ public class OracleOutputVisitorTest_dblink extends TestCase { StringBuilder buf = new StringBuilder(); OracleOutputVisitor outputVisitor = new OracleOutputVisitor(buf); stmt.accept(outputVisitor); - Assert.assertEquals("SELECT salary\nFROM master@emp;\n", buf.toString()); + Assert.assertEquals("SELECT salary\nFROM master@emp", buf.toString()); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_delete.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_delete.java index ceeb54186e..64fd807e0f 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_delete.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_delete.java @@ -49,7 +49,7 @@ public class OracleOutputVisitorTest_delete extends TestCase { StringBuilder buf = new StringBuilder(); OracleOutputVisitor outputVisitor = new OracleOutputVisitor(buf); stmt.accept(outputVisitor); - Assert.assertEquals("DELETE FROM employee\nWHERE id = 3;\n", buf.toString()); + Assert.assertEquals("DELETE FROM employee\nWHERE id = 3", buf.toString()); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_forupdate.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_forupdate.java index e17ffc9381..37fdaf406a 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_forupdate.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_forupdate.java @@ -49,7 +49,7 @@ public class OracleOutputVisitorTest_forupdate extends TestCase { StringBuilder buf = new StringBuilder(); OracleOutputVisitor outputVisitor = new OracleOutputVisitor(buf); stmt.accept(outputVisitor); - Assert.assertEquals("SELECT salary\nFROM employee\nFOR UPDATE;\n", buf.toString()); + Assert.assertEquals("SELECT salary\nFROM employee\nFOR UPDATE", buf.toString()); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_orderBy.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_orderBy.java index 4cdbe430e7..33b40aa665 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_orderBy.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_orderBy.java @@ -50,7 +50,7 @@ public class OracleOutputVisitorTest_orderBy extends TestCase { StringBuilder buf = new StringBuilder(); OracleOutputVisitor outputVisitor = new OracleOutputVisitor(buf); stmt.accept(outputVisitor); - Assert.assertEquals("SELECT salary\nFROM employee\nORDER BY name;\n", buf.toString()); + Assert.assertEquals("SELECT salary\nFROM employee\nORDER BY name", buf.toString()); } } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_selectJoin.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_selectJoin.java index 8635bd2394..99c60653ae 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_selectJoin.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_selectJoin.java @@ -52,7 +52,7 @@ public class OracleOutputVisitorTest_selectJoin extends TestCase { StringBuilder buf = new StringBuilder(); OracleOutputVisitor outputVisitor = new OracleOutputVisitor(buf); stmt.accept(outputVisitor); - Assert.assertEquals("SELECT e.salary\nFROM employee e\n\tJOIN department d\nWHERE e.depId = d.id;\n", + Assert.assertEquals("SELECT e.salary\nFROM employee e\n\tJOIN department d\nWHERE e.depId = d.id", buf.toString()); }