mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
添加测试
git-svn-id: http://code.alibabatech.com/svn/druid/trunk@176 b9813039-fb51-4c41-a8b9-e21c2acb5095
This commit is contained in:
@@ -16,51 +16,13 @@ import com.alibaba.druid.util.JdbcUtils;
|
||||
public class OracleSQLParserResourceTest extends TestCase {
|
||||
|
||||
public void test_0() throws Exception {
|
||||
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");
|
||||
exec_test("bvt/parser/oracle-6.txt"); // PARTITION
|
||||
exec_test("bvt/parser/oracle-7.txt");
|
||||
exec_test("bvt/parser/oracle-8.txt");
|
||||
exec_test("bvt/parser/oracle-9.txt");
|
||||
exec_test("bvt/parser/oracle-10.txt");
|
||||
exec_test("bvt/parser/oracle-11.txt");
|
||||
exec_test("bvt/parser/oracle-12.txt");
|
||||
exec_test("bvt/parser/oracle-13.txt");
|
||||
exec_test("bvt/parser/oracle-14.txt");
|
||||
exec_test("bvt/parser/oracle-15.txt");
|
||||
exec_test("bvt/parser/oracle-16.txt");
|
||||
exec_test("bvt/parser/oracle-17.txt");
|
||||
exec_test("bvt/parser/oracle-18.txt");
|
||||
exec_test("bvt/parser/oracle-19.txt");
|
||||
exec_test("bvt/parser/oracle-20.txt");
|
||||
exec_test("bvt/parser/oracle-21.txt");
|
||||
exec_test("bvt/parser/oracle-22.txt");
|
||||
exec_test("bvt/parser/oracle-23.txt");
|
||||
exec_test("bvt/parser/oracle-24.txt");
|
||||
exec_test("bvt/parser/oracle-25.txt");
|
||||
exec_test("bvt/parser/oracle-26.txt");
|
||||
exec_test("bvt/parser/oracle-27.txt");
|
||||
exec_test("bvt/parser/oracle-28.txt");
|
||||
exec_test("bvt/parser/oracle-29.txt");
|
||||
exec_test("bvt/parser/oracle-30.txt");
|
||||
exec_test("bvt/parser/oracle-31.txt");
|
||||
exec_test("bvt/parser/oracle-32.txt");
|
||||
exec_test("bvt/parser/oracle-33.txt");
|
||||
exec_test("bvt/parser/oracle-34.txt");
|
||||
exec_test("bvt/parser/oracle-35.txt");
|
||||
exec_test("bvt/parser/oracle-36.txt");
|
||||
exec_test("bvt/parser/oracle-37.txt");
|
||||
exec_test("bvt/parser/oracle-38.txt");
|
||||
exec_test("bvt/parser/oracle-39.txt");
|
||||
exec_test("bvt/parser/oracle-40.txt");
|
||||
exec_test("bvt/parser/oracle-41.txt");
|
||||
for (int i = 0; i <= 46; ++i) {
|
||||
String resource = "bvt/parser/oracle-" + i + ".txt";
|
||||
exec_test(resource);
|
||||
}
|
||||
// exec_test("bvt/parser/oracle-0.txt");
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void exec_test(String resource) throws Exception {
|
||||
System.out.println(resource);
|
||||
InputStream is = null;
|
||||
@@ -72,16 +34,16 @@ public class OracleSQLParserResourceTest extends TestCase {
|
||||
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);
|
||||
System.out.println(text);
|
||||
Assert.assertEquals(expect, text.trim());
|
||||
|
||||
|
||||
}
|
||||
|
||||
private String output(List<SQLStatement> stmtList) {
|
||||
|
||||
@@ -14,9 +14,18 @@ import com.alibaba.druid.sql.dialect.oracle.parser.OracleStatementParser;
|
||||
|
||||
public class SQLMergeTest extends TestCase {
|
||||
|
||||
protected String sql;
|
||||
|
||||
protected void setUp() throws Exception {
|
||||
sql = "SELECT /*mark for picman*/ * FROM WP_ALBUM WHERE MEMBER_ID = ? AND ID IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
|
||||
|
||||
sql = "SELECT * FROM my_table WHERE TRUNC(SYSDATE) = DATE '2002-10-03';";
|
||||
}
|
||||
|
||||
public void test_merge_1() throws Exception {
|
||||
String result = merge();
|
||||
System.out.println(result);
|
||||
|
||||
}
|
||||
|
||||
public void test_merge_2() throws Exception {
|
||||
@@ -24,6 +33,12 @@ public class SQLMergeTest extends TestCase {
|
||||
System.out.println(result);
|
||||
}
|
||||
|
||||
public void test_perf() {
|
||||
for (int i = 0; i < 10; ++i) {
|
||||
perf();
|
||||
}
|
||||
}
|
||||
|
||||
void perf() {
|
||||
long startMillis = System.currentTimeMillis();
|
||||
for (int i = 0; i < 1000 * 1000; ++i) {
|
||||
@@ -34,11 +49,8 @@ public class SQLMergeTest extends TestCase {
|
||||
}
|
||||
|
||||
private String merge() {
|
||||
String sql = "SELECT /*mark for picman*/ * FROM WP_ALBUM WHERE MEMBER_ID = ? AND ID IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
|
||||
|
||||
StringBuilder out = new StringBuilder();
|
||||
OracleOutputVisitor visitor = new OracleOutputVisitor(out) {
|
||||
|
||||
public boolean visit(SQLInListExpr x) {
|
||||
x.getExpr().accept(this);
|
||||
|
||||
@@ -147,7 +159,7 @@ public class SQLMergeTest extends TestCase {
|
||||
statement.accept(visitor);
|
||||
visitor.println();
|
||||
}
|
||||
|
||||
|
||||
return out.toString();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
SELECT 3 FROM DUAL
|
||||
INTERSECT
|
||||
SELECT 3f FROM DUAL;
|
||||
---------------------------
|
||||
SELECT 3
|
||||
FROM DUAL
|
||||
INTERSECT
|
||||
SELECT 3.0F
|
||||
FROM DUAL;
|
||||
@@ -0,0 +1,11 @@
|
||||
SELECT location_id, department_name "Department",
|
||||
TO_CHAR(NULL) "Warehouse" FROM departments
|
||||
UNION
|
||||
SELECT location_id, TO_CHAR(NULL) "Department", warehouse_name
|
||||
FROM warehouses;
|
||||
---------------------------
|
||||
SELECT location_id, department_name AS "Department", TO_CHAR(NULL) AS "Warehouse"
|
||||
FROM departments
|
||||
UNION
|
||||
SELECT location_id, TO_CHAR(NULL) AS "Department", warehouse_name
|
||||
FROM warehouses;
|
||||
@@ -0,0 +1,11 @@
|
||||
SELECT location_id FROM locations
|
||||
UNION ALL
|
||||
SELECT location_id FROM departments
|
||||
ORDER BY location_id;
|
||||
---------------------------
|
||||
SELECT location_id
|
||||
FROM locations
|
||||
UNION ALL
|
||||
SELECT location_id
|
||||
FROM departments
|
||||
ORDER BY location_id;
|
||||
@@ -0,0 +1,11 @@
|
||||
SELECT product_id FROM inventories
|
||||
MINUS
|
||||
SELECT product_id FROM order_items
|
||||
ORDER BY product_id;
|
||||
---------------------------
|
||||
SELECT product_id
|
||||
FROM inventories
|
||||
MINUS
|
||||
SELECT product_id
|
||||
FROM order_items
|
||||
ORDER BY product_id;
|
||||
@@ -0,0 +1,7 @@
|
||||
SELECT employee_id, manager_id
|
||||
FROM employees
|
||||
WHERE employees.manager_id(+) = employees.employee_id;
|
||||
---------------------------
|
||||
SELECT employee_id, manager_id
|
||||
FROM employees
|
||||
WHERE manager_id(+) = employees.employee_id;
|
||||
Reference in New Issue
Block a user