From 1131bafaa082f7c866edbc97785f1d5caa18953e Mon Sep 17 00:00:00 2001 From: wenshao Date: Thu, 19 May 2011 12:46:57 +0000 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://code.alibabatech.com/svn/druid/trunk@140 b9813039-fb51-4c41-a8b9-e21c2acb5095 --- ....java => OracleSQLParserResourceTest.java} | 43 ++++++++++++++++--- src/test/resources/bvt/parser/oracle-0.txt | 7 ++- src/test/resources/bvt/parser/oracle-1.txt | 10 ++++- src/test/resources/bvt/parser/oracle-2.txt | 7 ++- 4 files changed, 57 insertions(+), 10 deletions(-) rename src/test/java/com/alibaba/druid/sql/oracle/bvt/{OracleSQLParserResourceTest2.java => OracleSQLParserResourceTest.java} (55%) diff --git a/src/test/java/com/alibaba/druid/sql/oracle/bvt/OracleSQLParserResourceTest2.java b/src/test/java/com/alibaba/druid/sql/oracle/bvt/OracleSQLParserResourceTest.java similarity index 55% rename from src/test/java/com/alibaba/druid/sql/oracle/bvt/OracleSQLParserResourceTest2.java rename to src/test/java/com/alibaba/druid/sql/oracle/bvt/OracleSQLParserResourceTest.java index 8a77f2bf45..cfa593ba44 100644 --- a/src/test/java/com/alibaba/druid/sql/oracle/bvt/OracleSQLParserResourceTest2.java +++ b/src/test/java/com/alibaba/druid/sql/oracle/bvt/OracleSQLParserResourceTest.java @@ -13,15 +13,18 @@ import com.alibaba.druid.sql.dialect.oracle.ast.visitor.OracleOutputVisitor; import com.alibaba.druid.sql.dialect.oracle.parser.OracleStatementParser; import com.alibaba.druid.util.JdbcUtils; -public class OracleSQLParserResourceTest2 extends TestCase { +public class OracleSQLParserResourceTest extends TestCase { - public void f_test_1() throws Exception { + 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 sql = JdbcUtils.read(reader); + 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 statementList = parser.parseStatementList(); @@ -29,23 +32,49 @@ public class OracleSQLParserResourceTest2 extends TestCase { Assert.assertEquals(1, statementList.size()); String text = output(statementList); + Assert.assertEquals(expect, text.trim()); + System.out.println(text); + } + + 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 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 { InputStream is = null; - is = Thread.currentThread().getContextClassLoader().getResourceAsStream("bvt/parser/oracle-1.txt"); + is = Thread.currentThread().getContextClassLoader().getResourceAsStream("bvt/parser/oracle-0.txt"); Reader reader = new InputStreamReader(is); - String sql = JdbcUtils.read(reader); + 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 statementList = parser.parseStatementList(); - + Assert.assertEquals(1, statementList.size()); - + String text = output(statementList); + Assert.assertEquals(expect, text.trim()); System.out.println(text); } diff --git a/src/test/resources/bvt/parser/oracle-0.txt b/src/test/resources/bvt/parser/oracle-0.txt index 1bd26cc324..26cb4b4b59 100644 --- a/src/test/resources/bvt/parser/oracle-0.txt +++ b/src/test/resources/bvt/parser/oracle-0.txt @@ -11,4 +11,9 @@ AND             id > :1         AND col2 in     (:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13,:14,:15,:16,:17,:18,:19,:20,:21,:22,:23,:24,:25,:26,:27,:28,:29,:30,:31,:32,:33)       AND rownum<:34   -ORDER BY id   ; \ No newline at end of file +ORDER BY id   ; +--------------------------- +SELECT ID AS id, to_char(GMT_MODIFIED, 'yyyymmdd hh24:mi:ss') AS gmtModified, COL5 AS col5 +FROM BPM_ACTINST +WHERE IS_DELETED = 'n' AND end_time IS NULL AND deadline_time < sysdate AND approval_time IS NULL AND id > :1 AND (col2 IN (:2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, :17, :18, :19, :20, :21, :22, :23, :24, :25, :26, :27, :28, :29, :30, :31, :32, :33) AND rownum < :34) +ORDER BY id; \ No newline at end of file diff --git a/src/test/resources/bvt/parser/oracle-1.txt b/src/test/resources/bvt/parser/oracle-1.txt index a6ecec891e..e847117269 100644 --- a/src/test/resources/bvt/parser/oracle-1.txt +++ b/src/test/resources/bvt/parser/oracle-1.txt @@ -56,4 +56,12 @@ INSERT INTO GLOBAL_ACCOUNT_SMD CUST_GRADE FROM APOLLO_NIR.GLOBAL_ACCOUNT WHERE ACCOUNT_ID = :B2 - AND DOMAIN = :B1 \ No newline at end of file + AND DOMAIN = :B1 +--------------------------- +INSERT INTO GLOBAL_ACCOUNT_SMD (ID, GMT_MODIFIED, MODIFIER, GMT_CREATE, CREATOR, DOMAIN, EMPLOYEE_NUMBER, COMPANY_NAME, HOMEPAGE_URL, BACKGROUND, CATEGORY_ID, REMARK, MEMBER_ID, SALES_OWNER_ID, ACCOUNT_ID, IS_DELETED, CUST_GRADE) (SELECT ID, GMT_MODIFIED, MODIFIER, GMT_CREATE, CREATOR, DOMAIN, EMPLOYEE_NUMBER, COMPANY_NAME, HOMEPAGE_URL, BACKGROUND, CATEGORY_ID, REMARK, MEMBER_ID, SALES_OWNER_ID, ACCOUNT_ID, IS_DELETED, CUST_GRADE + FROM APOLLO_ZEUS.GLOBAL_ACCOUNT + WHERE ACCOUNT_ID = :B2 AND (DOMAIN = :B1) + UNION ALL + SELECT ID, GMT_MODIFIED, MODIFIER, GMT_CREATE, CREATOR, DOMAIN, EMPLOYEE_NUMBER, COMPANY_NAME, HOMEPAGE_URL, BACKGROUND, CATEGORY_ID, REMARK, MEMBER_ID, SALES_OWNER_ID, ACCOUNT_ID, IS_DELETED, CUST_GRADE + FROM APOLLO_NIR.GLOBAL_ACCOUNT + WHERE ACCOUNT_ID = :B2 AND (DOMAIN = :B1)); \ No newline at end of file diff --git a/src/test/resources/bvt/parser/oracle-2.txt b/src/test/resources/bvt/parser/oracle-2.txt index 8dcfa9e33c..b76f02771c 100644 --- a/src/test/resources/bvt/parser/oracle-2.txt +++ b/src/test/resources/bvt/parser/oracle-2.txt @@ -1,2 +1,7 @@ SELECT employee_id FROM (SELECT * FROM employees) - FOR UPDATE OF employee_id; \ No newline at end of file + FOR UPDATE OF employee_id; +--------------------------- +SELECT employee_id +FROM (SELECT * + FROM employees) +FOR UPDATE(employee_id);