diff --git a/symmetric/src/main/java/org/jumpmind/symmetric/db/SqlScript.java b/symmetric/src/main/java/org/jumpmind/symmetric/db/SqlScript.java index 71858cf68f..bf0e581e4a 100644 --- a/symmetric/src/main/java/org/jumpmind/symmetric/db/SqlScript.java +++ b/symmetric/src/main/java/org/jumpmind/symmetric/db/SqlScript.java @@ -157,7 +157,9 @@ public Object doInConnection(Connection connection) line = trimComments(line); if (line.trim().length() > 0) { if (checkStatementEnds(line)) { - sql.append(" "); + if (sql.length() > 0) { + sql.append("\n"); + } sql.append(line.substring(0, line .lastIndexOf(delimiter)).trim()); log.debug("Sql", sql); @@ -186,7 +188,7 @@ public Object doInConnection(Connection connection) } sql.setLength(0); } else { - sql.append(" "); + sql.append("\n"); sql.append(line); } } diff --git a/symmetric/src/test/java/org/jumpmind/symmetric/db/SqlScriptUnitTest.java b/symmetric/src/test/java/org/jumpmind/symmetric/db/SqlScriptUnitTest.java new file mode 100644 index 0000000000..fdc14b95a9 --- /dev/null +++ b/symmetric/src/test/java/org/jumpmind/symmetric/db/SqlScriptUnitTest.java @@ -0,0 +1,29 @@ +package org.jumpmind.symmetric.db; + +import java.sql.Connection; +import java.sql.DriverManager; + +import junit.framework.Assert; + +import org.junit.Test; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.datasource.SingleConnectionDataSource; + +public class SqlScriptUnitTest { + + @Test + public void testSimpleSqlScript() throws Exception { + SingleConnectionDataSource ds = getDataSource(); + SqlScript script = new SqlScript(getClass().getResource("sqlscript-simple.sql"), ds); + script.execute(); + JdbcTemplate template = new JdbcTemplate(ds); + Assert.assertEquals(2, template.queryForInt("select count(*) from test")); + Assert.assertEquals(3, template.queryForObject("select test from test where test_id=2", String.class).split("\r\n|\r|\n").length); + ds.destroy(); + } + + private SingleConnectionDataSource getDataSource() throws Exception { + Connection c = DriverManager.getConnection("jdbc:h2:mem:sqlscript"); + return new SingleConnectionDataSource(c, true); + } +} diff --git a/symmetric/src/test/resources/org/jumpmind/symmetric/db/sqlscript-simple.sql b/symmetric/src/test/resources/org/jumpmind/symmetric/db/sqlscript-simple.sql new file mode 100644 index 0000000000..5b0b353e9c --- /dev/null +++ b/symmetric/src/test/resources/org/jumpmind/symmetric/db/sqlscript-simple.sql @@ -0,0 +1,6 @@ +create table TEST (TEST_ID INTEGER PRIMARY KEY, TEST VARCHAR(100)); + +insert into TEST values(1, 'one'); +insert into TEST values(2, 'line1 +line2 +line3'); \ No newline at end of file