mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
重构测试并且修正bug
git-svn-id: http://code.alibabatech.com/svn/druid/trunk@966 b9813039-fb51-4c41-a8b9-e21c2acb5095
This commit is contained in:
@@ -332,7 +332,7 @@ public class OracleExprParser extends SQLExprParser {
|
||||
|
||||
lexer.nextToken();
|
||||
|
||||
if (identifierEquals("SIBINGS")) {
|
||||
if (identifierEquals("SIBLINGS")) {
|
||||
lexer.nextToken();
|
||||
orderBy.setSibings(true);
|
||||
}
|
||||
|
||||
+14
-12
@@ -359,10 +359,12 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS
|
||||
}
|
||||
|
||||
public boolean visit(OracleSelectHierachicalQueryClause x) {
|
||||
print("START WITH ");
|
||||
x.getStartWith().accept(this);
|
||||
if (x.getStartWith() != null) {
|
||||
print("START WITH ");
|
||||
x.getStartWith().accept(this);
|
||||
println();
|
||||
}
|
||||
|
||||
println();
|
||||
print("CONNECT BY ");
|
||||
|
||||
if (x.isPrior()) {
|
||||
@@ -1325,19 +1327,19 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS
|
||||
print(opt.name);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (x.getIterate() != null) {
|
||||
print(" ITERATE (");
|
||||
x.getIterate().accept(this);
|
||||
print(")");
|
||||
|
||||
|
||||
if (x.getUntil() != null) {
|
||||
print(" UNTIL (");
|
||||
x.getUntil().accept(this);
|
||||
print(")");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
print(" (");
|
||||
printAndAccept(x.getCellAssignmentItems(), ", ");
|
||||
print(")");
|
||||
@@ -1356,23 +1358,23 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS
|
||||
print(x.getOption().name);
|
||||
print(" ");
|
||||
}
|
||||
|
||||
|
||||
x.getCellAssignment().accept(this);
|
||||
|
||||
|
||||
if (x.getOrderBy() != null) {
|
||||
print(" ");
|
||||
x.getOrderBy().accept(this);
|
||||
}
|
||||
|
||||
|
||||
print(" = ");
|
||||
x.getExpr().accept(this);
|
||||
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void endVisit(CellAssignmentItem x) {
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1386,6 +1388,6 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS
|
||||
|
||||
@Override
|
||||
public void endVisit(CellAssignment x) {
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
+1
-2
@@ -5,10 +5,9 @@ import junit.framework.TestCase;
|
||||
|
||||
import com.alibaba.druid.sql.ast.statement.SQLSelectStatement;
|
||||
import com.alibaba.druid.sql.dialect.oracle.parser.OracleStatementParser;
|
||||
import com.alibaba.druid.sql.parser.SQLStatementParser;
|
||||
import com.alibaba.druid.sql.test.TestUtils;
|
||||
|
||||
public class OracleIsLiteralTest extends TestCase {
|
||||
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;";
|
||||
@@ -0,0 +1,46 @@
|
||||
package com.alibaba.druid.bvt.sql.oracle;
|
||||
|
||||
import junit.framework.Assert;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import com.alibaba.druid.sql.ast.statement.SQLSelectStatement;
|
||||
import com.alibaba.druid.sql.dialect.oracle.parser.OracleStatementParser;
|
||||
import com.alibaba.druid.sql.test.TestUtils;
|
||||
|
||||
public class OraclePriorTest extends TestCase {
|
||||
|
||||
public void test_oracle() throws Exception {
|
||||
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";
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
public void test_oracle_2() throws Exception {
|
||||
String sql = "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;";
|
||||
|
||||
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";
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user