重构测试并且修正bug

git-svn-id: http://code.alibabatech.com/svn/druid/trunk@966 b9813039-fb51-4c41-a8b9-e21c2acb5095
This commit is contained in:
wenshao
2011-10-15 01:48:43 +00:00
parent 1f57c0f205
commit 3be4bf5335
4 changed files with 62 additions and 15 deletions
@@ -332,7 +332,7 @@ public class OracleExprParser extends SQLExprParser {
lexer.nextToken();
if (identifierEquals("SIBINGS")) {
if (identifierEquals("SIBLINGS")) {
lexer.nextToken();
orderBy.setSibings(true);
}
@@ -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) {
}
}
@@ -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);
}
}