From 51a9a616dc346aee6f6932f4eef1feeb14ad006e Mon Sep 17 00:00:00 2001 From: wenshao Date: Fri, 25 Nov 2016 17:28:26 +0800 Subject: [PATCH] improved sql parser. bug fixed for oracle extract function. issue #1481 --- .../sql/ast/expr/SQLMethodInvokeExpr.java | 67 ++++++------- .../oracle/ast/expr/OracleExtractExpr.java | 94 ------------------- .../oracle/parser/OracleExprParser.java | 19 ---- .../oracle/visitor/OracleASTVisitor.java | 5 - .../visitor/OracleASTVisitorAdapter.java | 13 --- .../oracle/visitor/OracleOutputVisitor.java | 16 ---- .../visitor/OracleSchemaStatVisitor.java | 13 --- .../druid/sql/parser/SQLExprParser.java | 7 ++ .../sql/visitor/SQLASTOutputVisitor.java | 7 ++ .../bvt/sql/EqualTest_extract_oracle.java | 14 +-- .../bvt/sql/oracle/OracleEXTRACTTest2.java | 44 +++++++++ .../visitor/OracleASTVisitorAdapterTest.java | 2 - .../SQLServerStartTransactionTest.java | 2 +- 13 files changed, 93 insertions(+), 210 deletions(-) delete mode 100644 src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/expr/OracleExtractExpr.java create mode 100644 src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleEXTRACTTest2.java diff --git a/src/main/java/com/alibaba/druid/sql/ast/expr/SQLMethodInvokeExpr.java b/src/main/java/com/alibaba/druid/sql/ast/expr/SQLMethodInvokeExpr.java index f353907056..708dcba4da 100644 --- a/src/main/java/com/alibaba/druid/sql/ast/expr/SQLMethodInvokeExpr.java +++ b/src/main/java/com/alibaba/druid/sql/ast/expr/SQLMethodInvokeExpr.java @@ -31,6 +31,8 @@ public class SQLMethodInvokeExpr extends SQLExprImpl implements Serializable { private SQLExpr owner; private final List parameters = new ArrayList(); + private SQLExpr from; + public SQLMethodInvokeExpr(){ } @@ -64,6 +66,14 @@ public class SQLMethodInvokeExpr extends SQLExprImpl implements Serializable { this.owner = owner; } + public SQLExpr getFrom() { + return from; + } + + public void setFrom(SQLExpr from) { + this.from = from; + } + public List getParameters() { return this.parameters; } @@ -113,48 +123,25 @@ public class SQLMethodInvokeExpr extends SQLExprImpl implements Serializable { } @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((methodName == null) ? 0 : methodName.hashCode()); - result = prime * result + ((owner == null) ? 0 : owner.hashCode()); - result = prime * result + ((parameters == null) ? 0 : parameters.hashCode()); - return result; + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + SQLMethodInvokeExpr that = (SQLMethodInvokeExpr) o; + + if (methodName != null ? !methodName.equals(that.methodName) : that.methodName != null) return false; + if (owner != null ? !owner.equals(that.owner) : that.owner != null) return false; + if (parameters != null ? !parameters.equals(that.parameters) : that.parameters != null) return false; + return from != null ? from.equals(that.from) : that.from == null; + } @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - SQLMethodInvokeExpr other = (SQLMethodInvokeExpr) obj; - if (methodName == null) { - if (other.methodName != null) { - return false; - } - } else if (!methodName.equals(other.methodName)) { - return false; - } - if (owner == null) { - if (other.owner != null) { - return false; - } - } else if (!owner.equals(other.owner)) { - return false; - } - if (parameters == null) { - if (other.parameters != null) { - return false; - } - } else if (!parameters.equals(other.parameters)) { - return false; - } - return true; + public int hashCode() { + int result = methodName != null ? methodName.hashCode() : 0; + result = 31 * result + (owner != null ? owner.hashCode() : 0); + result = 31 * result + (parameters != null ? parameters.hashCode() : 0); + result = 31 * result + (from != null ? from.hashCode() : 0); + return result; } } diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/expr/OracleExtractExpr.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/expr/OracleExtractExpr.java deleted file mode 100644 index 0a6f6fe064..0000000000 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/expr/OracleExtractExpr.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright 1999-2101 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.expr; - -import com.alibaba.druid.sql.ast.SQLExpr; -import com.alibaba.druid.sql.ast.SQLExprImpl; -import com.alibaba.druid.sql.dialect.oracle.visitor.OracleASTVisitor; -import com.alibaba.druid.sql.visitor.SQLASTVisitor; - -public class OracleExtractExpr extends SQLExprImpl implements OracleExpr { - - private OracleDateTimeUnit unit; - private SQLExpr from; - - public OracleExtractExpr(){ - - } - - public OracleDateTimeUnit getUnit() { - return this.unit; - } - - public void setUnit(OracleDateTimeUnit unit) { - this.unit = unit; - } - - public SQLExpr getFrom() { - return this.from; - } - - public void setFrom(SQLExpr from) { - this.from = from; - } - - protected void accept0(SQLASTVisitor visitor) { - this.accept0((OracleASTVisitor) visitor); - } - - public void accept0(OracleASTVisitor visitor) { - if (visitor.visit(this)) { - acceptChild(visitor, this.from); - } - - visitor.endVisit(this); - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((from == null) ? 0 : from.hashCode()); - result = prime * result + ((unit == null) ? 0 : unit.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - OracleExtractExpr other = (OracleExtractExpr) obj; - if (from == null) { - if (other.from != null) { - return false; - } - } else if (!from.equals(other.from)) { - return false; - } - if (unit != other.unit) { - return false; - } - return true; - } - -} diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/parser/OracleExprParser.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/parser/OracleExprParser.java index 0face25d03..28c59af630 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/parser/OracleExprParser.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/parser/OracleExprParser.java @@ -59,11 +59,8 @@ import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleArgumentExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleBinaryDoubleExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleBinaryFloatExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleCursorExpr; -import com.alibaba.druid.sql.ast.expr.SQLDateExpr; -import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleDateTimeUnit; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleDatetimeExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleDbLinkExpr; -import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleExtractExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleIntervalExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleIntervalType; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleIsSetExpr; @@ -325,22 +322,6 @@ public class OracleExprParser extends SQLExprParser { String alias = '"' + lexer.stringVal() + '"'; lexer.nextToken(); return primaryRest(new SQLIdentifierExpr(alias)); - case EXTRACT: - lexer.nextToken(); - OracleExtractExpr extract = new OracleExtractExpr(); - - accept(Token.LPAREN); - - extract.setUnit(OracleDateTimeUnit.valueOf(lexer.stringVal().toUpperCase())); - lexer.nextToken(); - - accept(Token.FROM); - - extract.setFrom(expr()); - - accept(Token.RPAREN); - - return primaryRest(extract); case BINARY_FLOAT: OracleBinaryFloatExpr floatExpr = new OracleBinaryFloatExpr(); floatExpr.setValue(Float.parseFloat(lexer.numberString())); 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 4f49025da0..d3b400f791 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 @@ -39,7 +39,6 @@ import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleCursorExpr; import com.alibaba.druid.sql.ast.expr.SQLDateExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleDatetimeExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleDbLinkExpr; -import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleExtractExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleIntervalExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleIsSetExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleOuterExpr; @@ -114,8 +113,6 @@ public interface OracleASTVisitor extends SQLASTVisitor { void endVisit(OracleDeleteStatement x); - void endVisit(OracleExtractExpr x); - void endVisit(OracleIntervalExpr x); void endVisit(OracleOuterExpr x); @@ -152,8 +149,6 @@ public interface OracleASTVisitor extends SQLASTVisitor { boolean visit(OracleDeleteStatement x); - boolean visit(OracleExtractExpr x); - boolean visit(OracleIntervalExpr x); boolean visit(OracleOuterExpr 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 62906fde2f..89e3d63d06 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 @@ -46,10 +46,8 @@ import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleArgumentExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleBinaryDoubleExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleBinaryFloatExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleCursorExpr; -import com.alibaba.druid.sql.ast.expr.SQLDateExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleDatetimeExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleDbLinkExpr; -import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleExtractExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleIntervalExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleIsSetExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleOuterExpr; @@ -146,11 +144,6 @@ public class OracleASTVisitorAdapter extends SQLASTVisitorAdapter implements Ora } - @Override - public void endVisit(OracleExtractExpr x) { - - } - @Override public void endVisit(OracleIntervalExpr x) { @@ -241,12 +234,6 @@ public class OracleASTVisitorAdapter extends SQLASTVisitorAdapter implements Ora return true; } - @Override - public boolean visit(OracleExtractExpr x) { - - return true; - } - @Override public boolean visit(OracleIntervalExpr x) { diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleOutputVisitor.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleOutputVisitor.java index 79d6a30d4c..af530adfab 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 @@ -57,10 +57,8 @@ import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleArgumentExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleBinaryDoubleExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleBinaryFloatExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleCursorExpr; -import com.alibaba.druid.sql.ast.expr.SQLDateExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleDatetimeExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleDbLinkExpr; -import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleExtractExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleIntervalExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleIsSetExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleOuterExpr; @@ -273,15 +271,6 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS return false; } - public boolean visit(OracleExtractExpr x) { - print0(ucase ? "EXTRACT(" : "extract("); - print0(x.getUnit().name()); - print0(ucase ? " FROM " : " from "); - x.getFrom().accept(this); - print(')'); - return false; - } - public boolean visit(OracleIntervalExpr x) { if (x.getValue() instanceof SQLLiteralExpr) { print0(ucase ? "INTERVAL " : "interval "); @@ -777,11 +766,6 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS } - @Override - public void endVisit(OracleExtractExpr x) { - - } - @Override public void endVisit(OracleIntervalExpr x) { diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleSchemaStatVisitor.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleSchemaStatVisitor.java index 392bcdf4c0..a983154851 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 @@ -69,10 +69,8 @@ import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleArgumentExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleBinaryDoubleExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleBinaryFloatExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleCursorExpr; -import com.alibaba.druid.sql.ast.expr.SQLDateExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleDatetimeExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleDbLinkExpr; -import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleExtractExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleIntervalExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleIsSetExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleOuterExpr; @@ -365,11 +363,6 @@ public class OracleSchemaStatVisitor extends SchemaStatVisitor implements Oracle } - @Override - public void endVisit(OracleExtractExpr x) { - - } - @Override public void endVisit(OracleIntervalExpr x) { @@ -449,12 +442,6 @@ public class OracleSchemaStatVisitor extends SchemaStatVisitor implements Oracle return true; } - @Override - public boolean visit(OracleExtractExpr x) { - - return true; - } - @Override public boolean visit(OracleIntervalExpr x) { diff --git a/src/main/java/com/alibaba/druid/sql/parser/SQLExprParser.java b/src/main/java/com/alibaba/druid/sql/parser/SQLExprParser.java index dba62a6d3e..ec62b89e24 100644 --- a/src/main/java/com/alibaba/druid/sql/parser/SQLExprParser.java +++ b/src/main/java/com/alibaba/druid/sql/parser/SQLExprParser.java @@ -351,6 +351,7 @@ public class SQLExprParser extends SQLParser { case EXCEPTION: case FUNCTION: case IDENTITY: + case EXTRACT: sqlExpr = new SQLIdentifierExpr(lexer.stringVal()); lexer.nextToken(); break; @@ -801,6 +802,12 @@ public class SQLExprParser extends SQLParser { exprList(methodInvokeExpr.getParameters(), methodInvokeExpr); } + if (lexer.token() == Token.FROM) { + lexer.nextToken(); + SQLExpr from = this.expr(); + methodInvokeExpr.setFrom(from); + } + accept(Token.RPAREN); if (lexer.token() == Token.OVER) { 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 e5c9e05337..636cb92c4c 100644 --- a/src/main/java/com/alibaba/druid/sql/visitor/SQLASTOutputVisitor.java +++ b/src/main/java/com/alibaba/druid/sql/visitor/SQLASTOutputVisitor.java @@ -631,6 +631,13 @@ public class SQLASTOutputVisitor extends SQLASTVisitorAdapter implements Paramet printFunctionName(x.getMethodName()); print('('); printAndAccept(x.getParameters(), ", "); + + SQLExpr from = x.getFrom(); + if (from != null) { + print0(ucase ? " FROM " : " from "); + from.accept(this); + } + print(')'); return false; } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/EqualTest_extract_oracle.java b/src/test/java/com/alibaba/druid/bvt/sql/EqualTest_extract_oracle.java index b5aeab6d98..cd9f864350 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/EqualTest_extract_oracle.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/EqualTest_extract_oracle.java @@ -1,10 +1,10 @@ package com.alibaba.druid.bvt.sql; +import com.alibaba.druid.sql.ast.expr.SQLMethodInvokeExpr; import junit.framework.TestCase; import org.junit.Assert; -import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleExtractExpr; import com.alibaba.druid.sql.dialect.oracle.parser.OracleExprParser; public class EqualTest_extract_oracle extends TestCase { @@ -12,18 +12,18 @@ public class EqualTest_extract_oracle extends TestCase { public void test_exits() throws Exception { String sql = "EXTRACT(MONTH FROM x)"; String sql_c = "EXTRACT(MONTH FROM 7)"; - OracleExtractExpr exprA, exprB, exprC; + SQLMethodInvokeExpr exprA, exprB, exprC; { OracleExprParser parser = new OracleExprParser(sql); - exprA = (OracleExtractExpr) parser.expr(); + exprA = (SQLMethodInvokeExpr) parser.expr(); } { OracleExprParser parser = new OracleExprParser(sql); - exprB = (OracleExtractExpr) parser.expr(); + exprB = (SQLMethodInvokeExpr) parser.expr(); } { OracleExprParser parser = new OracleExprParser(sql_c); - exprC = (OracleExtractExpr) parser.expr(); + exprC = (SQLMethodInvokeExpr) parser.expr(); } Assert.assertEquals(exprA, exprB); Assert.assertNotEquals(exprA, exprC); @@ -31,7 +31,7 @@ public class EqualTest_extract_oracle extends TestCase { Assert.assertFalse(exprA.equals(new Object())); Assert.assertEquals(exprA.hashCode(), exprB.hashCode()); - Assert.assertEquals(new OracleExtractExpr(), new OracleExtractExpr()); - Assert.assertEquals(new OracleExtractExpr().hashCode(), new OracleExtractExpr().hashCode()); + Assert.assertEquals(new SQLMethodInvokeExpr(), new SQLMethodInvokeExpr()); + Assert.assertEquals(new SQLMethodInvokeExpr().hashCode(), new SQLMethodInvokeExpr().hashCode()); } } 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 new file mode 100644 index 0000000000..f22ef5c912 --- /dev/null +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleEXTRACTTest2.java @@ -0,0 +1,44 @@ +/* + * Copyright 1999-2101 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; + +import com.alibaba.druid.sql.ast.statement.SQLSelectStatement; +import com.alibaba.druid.sql.dialect.oracle.parser.OracleStatementParser; +import com.alibaba.druid.sql.test.TestUtils; +import junit.framework.TestCase; +import org.junit.Assert; + +public class OracleEXTRACTTest2 extends TestCase { + + public void test_Extract() throws Exception { + String sql = "SELECT warehouse_name, EXTRACT(warehouse_spec, '/Warehouse/Docks')\n" + + " \"Number of Docks\"\n" + + " FROM warehouses\n" + + " WHERE warehouse_spec IS NOT NULL;"; + + 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" + + ""; + + OracleStatementParser parser = new OracleStatementParser(sql); + SQLSelectStatement stmt = (SQLSelectStatement) parser.parseStatementList().get(0); + + String text = TestUtils.outputOracle(stmt); + + assertEquals(expect, text); + } +} 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 9f2cbb795a..7438d73c6e 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 @@ -37,7 +37,6 @@ import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleCursorExpr; import com.alibaba.druid.sql.ast.expr.SQLDateExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleDatetimeExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleDbLinkExpr; -import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleExtractExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleIntervalExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleIsSetExpr; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleRangeExpr; @@ -102,7 +101,6 @@ public class OracleASTVisitorAdapterTest extends TestCase { new OracleAnalyticWindowing().accept(adapter); new SQLDateExpr().accept(adapter); new OracleDbLinkExpr().accept(adapter); - new OracleExtractExpr().accept(adapter); new OracleSelectForUpdate().accept(adapter); new OracleSelectHierachicalQueryClause().accept(adapter); new OracleSelectPivot.Item().accept(adapter); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/sqlserver/SQLServerStartTransactionTest.java b/src/test/java/com/alibaba/druid/bvt/sql/sqlserver/SQLServerStartTransactionTest.java index 39f25c9a17..6751017724 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/sqlserver/SQLServerStartTransactionTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/sqlserver/SQLServerStartTransactionTest.java @@ -26,7 +26,7 @@ public class SQLServerStartTransactionTest extends TestCase { public void test_stmt() throws Exception { String sql = "BEGIN TRAN T1;"; - + SQLServerStatementParser parser = new SQLServerStatementParser(sql); SQLStatement stmt = parser.parseStatementList().get(0);