• R/O
  • SSH
  • HTTPS

amateras: Commit


Commit MetaInfo

Revisión592 (tree)
Tiempo2011-11-10 00:30:52
Autortakezoe

Log Message

Removes semicolon from end of the SQL file.

Cambiar Resumen

Diferencia incremental

--- mirage/trunk/mirage/src/test/java/jp/sf/amateras/mirage/SqlManagerImplTest.java (revision 591)
+++ mirage/trunk/mirage/src/test/java/jp/sf/amateras/mirage/SqlManagerImplTest.java (revision 592)
@@ -110,9 +110,23 @@
110110 }
111111
112112 /**
113+ * Removing semicolon.
114+ */
115+ public void testRemoveSemicolon() throws Exception {
116+ MirageTestContext.initMirageTestContext();
117+ MockSqlManager sqlManager = new MockSqlManager();
118+
119+ sqlManager.getResultList(
120+ Book.class, SQL_PREFIX + "SqlManagerImplTest_removeSemicolon.sql");
121+
122+ MirageTestContext.verifySqlNumber(1);
123+ ExecutedSQLInfo info = MirageTestContext.getExecutedSQLInfo(0);
124+ assertEquals("SELECT BOOK_ID, BOOK_NAME, AUTHOR, PRICE FROM BOOK", info.getSql());
125+ }
126+ /**
113127 * for Oracle hint
114128 * <p>
115- * TODO Should it be written as SqlParserImplTest?
129+ * TODO Should it be written in SqlParserImplTest?
116130 */
117131 public void testIOracleHint1() throws Exception {
118132 MirageTestContext.initMirageTestContext();
@@ -129,7 +143,7 @@
129143 /**
130144 * for Oracle hint
131145 * <p>
132- * TODO Should it be written as SqlParserImplTest?
146+ * TODO Should it be written in SqlParserImplTest?
133147 */
134148 public void testIOracleHint2() throws Exception {
135149 MirageTestContext.initMirageTestContext();
--- mirage/trunk/mirage/src/test/resources/jp/sf/amateras/mirage/SqlManagerImplTest_removeSemicolon.sql (nonexistent)
+++ mirage/trunk/mirage/src/test/resources/jp/sf/amateras/mirage/SqlManagerImplTest_removeSemicolon.sql (revision 592)
@@ -0,0 +1,2 @@
1+ SELECT BOOK_ID, BOOK_NAME, AUTHOR, PRICE FROM BOOK;
2+
--- mirage/trunk/mirage/src/main/java/jp/sf/amateras/mirage/SqlManagerImpl.java (revision 591)
+++ mirage/trunk/mirage/src/main/java/jp/sf/amateras/mirage/SqlManagerImpl.java (revision 592)
@@ -1,6 +1,5 @@
11 package jp.sf.amateras.mirage;
22
3-import java.io.ByteArrayOutputStream;
43 import java.io.InputStream;
54 import java.util.ArrayList;
65 import java.util.List;
@@ -24,6 +23,7 @@
2423 import jp.sf.amateras.mirage.provider.ConnectionProvider;
2524 import jp.sf.amateras.mirage.type.DefaultValueType;
2625 import jp.sf.amateras.mirage.type.ValueType;
26+import jp.sf.amateras.mirage.util.IOUtil;
2727 import jp.sf.amateras.mirage.util.MirageUtil;
2828
2929 public class SqlManagerImpl implements SqlManager {
@@ -105,19 +105,16 @@
105105
106106 String sql = null;
107107 try {
108- byte[] buf = new byte[1024 * 8];
109- int length = 0;
110- ByteArrayOutputStream out = new ByteArrayOutputStream();
111- while((length = in.read(buf)) != -1){
112- out.write(buf, 0, length);
113- }
114-
115- sql = new String(out.toByteArray(), "UTF-8");
116-
108+ sql = new String(IOUtil.readStream(in), "UTF-8");
117109 } catch(Exception ex){
118110 throw new RuntimeException(String.format("Failed to load SQL from: %s", sqlPath));
119111 }
120112
113+ sql = sql.trim();
114+ if(sql.endsWith(";")){
115+ sql = sql.substring(0, sql.length() - 1);
116+ }
117+
121118 Node node = new SqlParserImpl(sql).parse();
122119
123120 if(cacheMode){
Show on old repository browser