添加测试

git-svn-id: http://code.alibabatech.com/svn/druid/trunk@141 b9813039-fb51-4c41-a8b9-e21c2acb5095
This commit is contained in:
wenshao
2011-05-19 13:05:46 +00:00
parent 1131bafaa0
commit d978062542
6 changed files with 53 additions and 46 deletions
@@ -350,6 +350,11 @@ public class OracleSelectParser extends SQLSelectParser {
lexer.nextToken();
joinType = OracleSelectJoin.JoinType.JOIN;
}
if (lexer.token() == (Token.COMMA)) {
lexer.nextToken();
joinType = OracleSelectJoin.JoinType.COMMA;
}
if (joinType != null) {
OracleSelectJoin join = new OracleSelectJoin();
@@ -369,7 +374,7 @@ public class OracleSelectParser extends SQLSelectParser {
return join;
}
return tableSource;
}
@@ -16,51 +16,19 @@ import com.alibaba.druid.util.JdbcUtils;
public class OracleSQLParserResourceTest extends TestCase {
public void test_0() throws Exception {
InputStream is = null;
is = Thread.currentThread().getContextClassLoader().getResourceAsStream("bvt/parser/oracle-0.txt");
Reader reader = new InputStreamReader(is);
String input = JdbcUtils.read(reader);
JdbcUtils.close(reader);
String[] items = input.split("---------------------------");
String sql = items[0].trim();
String expect = items[1].trim();
OracleStatementParser parser = new OracleStatementParser(sql);
List<SQLStatement> statementList = parser.parseStatementList();
Assert.assertEquals(1, statementList.size());
String text = output(statementList);
Assert.assertEquals(expect, text.trim());
System.out.println(text);
exec_test("bvt/parser/oracle-0.txt");
exec_test("bvt/parser/oracle-1.txt");
exec_test("bvt/parser/oracle-2.txt");
exec_test("bvt/parser/oracle-3.txt");
exec_test("bvt/parser/oracle-4.txt");
exec_test("bvt/parser/oracle-5.txt");
}
public void test_1() throws Exception {
InputStream is = null;
is = Thread.currentThread().getContextClassLoader().getResourceAsStream("bvt/parser/oracle-0.txt");
Reader reader = new InputStreamReader(is);
String input = JdbcUtils.read(reader);
JdbcUtils.close(reader);
String[] items = input.split("---------------------------");
String sql = items[0].trim();
String expect = items[1].trim();
OracleStatementParser parser = new OracleStatementParser(sql);
List<SQLStatement> statementList = parser.parseStatementList();
Assert.assertEquals(1, statementList.size());
String text = output(statementList);
Assert.assertEquals(expect, text.trim());
System.out.println(text);
}
public void test_2() throws Exception {
public void exec_test(String resource) throws Exception {
InputStream is = null;
is = Thread.currentThread().getContextClassLoader().getResourceAsStream("bvt/parser/oracle-0.txt");
is = Thread.currentThread().getContextClassLoader().getResourceAsStream(resource);
Reader reader = new InputStreamReader(is);
String input = JdbcUtils.read(reader);
JdbcUtils.close(reader);
@@ -74,8 +42,9 @@ public class OracleSQLParserResourceTest extends TestCase {
Assert.assertEquals(1, statementList.size());
String text = output(statementList);
Assert.assertEquals(expect, text.trim());
System.out.println(text);
Assert.assertEquals(expect, text.trim());
}
private String output(List<SQLStatement> stmtList) {
+4 -4
View File
@@ -1,7 +1,7 @@
SELECT employee_id FROM (SELECT * FROM employees)
FOR UPDATE OF employee_id;
SELECT employee_id FROM (SELECT employee_id+1 AS employee_id FROM employees)
FOR UPDATE;
---------------------------
SELECT employee_id
FROM (SELECT *
FROM (SELECT employee_id + 1 AS employee_id
FROM employees)
FOR UPDATE(employee_id);
FOR UPDATE;
@@ -0,0 +1,7 @@
SELECT employee_id FROM (SELECT employee_id+1 AS employee_id FROM employees)
FOR UPDATE;
---------------------------
SELECT employee_id
FROM (SELECT employee_id + 1 AS employee_id
FROM employees)
FOR UPDATE;
@@ -0,0 +1,9 @@
SELECT *
FROM employees
WHERE department_id = 30
ORDER BY last_name;
---------------------------
SELECT *
FROM employees
WHERE department_id = 30
ORDER BY last_name;
@@ -0,0 +1,17 @@
SELECT a.department_id "Department",
a.num_emp/b.total_count "%_Employees",
a.sal_sum/b.total_sal "%_Salary"
FROM
(SELECT department_id, COUNT(*) num_emp, SUM(salary) sal_sum
FROM employees
GROUP BY department_id) a,
(SELECT COUNT(*) total_count, SUM(salary) total_sal
FROM employees) b
ORDER BY a.department_id;
---------------------------
SELECT a.department_id AS 'department_id', a.num_emp / b.total_count AS 'total_count', a.sal_sum / b.total_sal AS 'total_sal'
FROM (SELECT department_id, COUNT(*) AS 'num_emp', SUM(salary) AS 'sal_sum'
FROM employees
GROUP BY department_id) 'a' , (SELECT COUNT(*) AS 'total_count', SUM(salary) AS 'total_sal'
FROM employees) 'b'
ORDER BY a.department_id;