diff --git a/symmetric-client/src/main/java/org/jumpmind/symmetric/DbFill.java b/symmetric-client/src/main/java/org/jumpmind/symmetric/DbFill.java index e830b78d15..33cbc51360 100644 --- a/symmetric-client/src/main/java/org/jumpmind/symmetric/DbFill.java +++ b/symmetric-client/src/main/java/org/jumpmind/symmetric/DbFill.java @@ -87,17 +87,22 @@ private void fillTables(Table... tables) { for (Table table : tables) { DmlStatement statement = platform.createDmlStatement(DmlType.INSERT, table); - Column[] columns = table.getColumns(); - Object[] values = generateRandomValues(insertedColumns, table); - for (int j = 0; j < columns.length; j++) { - String qualifiedColumnName = table.getName() + "." + columns[j].getName(); - insertedColumns.put(qualifiedColumnName, values[j]); + Column[] tableColumns = table.getColumns(); + Object[] columnValues = generateRandomValues(insertedColumns, table); + for (int j = 0; j < tableColumns.length; j++) { + insertedColumns.put(table.getQualifiedColumnName(tableColumns[j]), + columnValues[j]); } - int rows = sqlTemplate.update(statement.getSql(), values); - if (log.isDebugEnabled()) { - log.debug("{} inserted by {} in {}", new Object[] { rows, - getClass().getSimpleName(), table.getFullyQualifiedTableName() }); + + Column[] statementColumns = statement.getMetaData(); + Object[] statementValues = new Object[statementColumns.length]; + for (int j = 0; j < statementColumns.length; j++) { + statementValues[j] = insertedColumns.get(table + .getQualifiedColumnName(statementColumns[j])); } + + sqlTemplate.update(statement.getSql(), statementValues); + } insertedColumns.clear(); @@ -136,9 +141,9 @@ private Object[] generateRandomValues(Map insertedColumns, Table } else if (type == Types.INTEGER) { objectValue = randomInt(); } else if (type == Types.BIT) { - objectValue = randomBit(); + objectValue = randomBit(); } else if (type == Types.SMALLINT) { - objectValue = randomSmallInt(); + objectValue = randomSmallInt(); } else if (type == Types.TINYINT) { objectValue = randomTinyInt(); } else if (type == Types.NUMERIC || type == Types.DECIMAL || type == Types.FLOAT @@ -163,10 +168,10 @@ private Object[] generateRandomValues(Map insertedColumns, Table } return list.toArray(); } - + private Object randomSmallInt() { - // TINYINT (-32768 32767) - return new Integer(new java.util.Random().nextInt(65535) - 32768); + // TINYINT (-32768 32767) + return new Integer(new java.util.Random().nextInt(65535) - 32768); } private Object randomTinyInt() { @@ -216,10 +221,10 @@ private Date randomDate() { private Integer randomInt() { return new Integer(new java.util.Random().nextInt(1000000)); } - + private Integer randomBit() { return new Integer(new java.util.Random().nextInt(1)); - } + } protected String getSchemaToUse() { if (StringUtils.isBlank(schema)) { diff --git a/symmetric-client/src/main/java/org/jumpmind/symmetric/DbImport.java b/symmetric-client/src/main/java/org/jumpmind/symmetric/DbImport.java index cbf3da7cc5..b6b1dd1b7e 100644 --- a/symmetric-client/src/main/java/org/jumpmind/symmetric/DbImport.java +++ b/symmetric-client/src/main/java/org/jumpmind/symmetric/DbImport.java @@ -26,12 +26,10 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.util.LinkedHashMap; -import java.util.List; import java.util.Map; import javax.sql.DataSource; -import org.apache.commons.io.IOUtils; import org.jumpmind.db.model.Database; import org.jumpmind.db.model.Table; import org.jumpmind.db.platform.DdlException; @@ -40,10 +38,11 @@ import org.jumpmind.db.sql.DmlStatement; import org.jumpmind.db.sql.DmlStatement.DmlType; import org.jumpmind.db.sql.ISqlTemplate; -import org.jumpmind.db.sql.SqlScript; import org.jumpmind.db.util.BinaryEncoding; +import org.jumpmind.exception.IoException; import org.jumpmind.symmetric.io.data.DataProcessor; import org.jumpmind.symmetric.io.data.reader.CsvTableDataReader; +import org.jumpmind.symmetric.io.data.reader.SqlDataReader; import org.jumpmind.symmetric.io.data.writer.Conflict; import org.jumpmind.symmetric.io.data.writer.Conflict.DetectConflict; import org.jumpmind.symmetric.io.data.writer.Conflict.ResolveConflict; @@ -88,9 +87,9 @@ public enum Format { private boolean ignoreCollisions = false; private boolean alterCaseToMatchDatabaseDefaultCase = false; - + private boolean alterTables = false; - + private boolean dropIfExists = false; protected IDatabasePlatform platform; @@ -105,24 +104,33 @@ public DbImport(IDatabasePlatform platform) { public DbImport(DataSource dataSource) { platform = JdbcDatabasePlatformFactory.createNewPlatformInstance(dataSource, null, true); } - - public void importTables(String importData, String tableName) throws IOException { - ByteArrayInputStream in = new ByteArrayInputStream(importData.getBytes()); - importTables(in, tableName); - in.close(); - } - public void importTables(String importData) throws IOException { - ByteArrayInputStream in = new ByteArrayInputStream(importData.getBytes()); - importTables(in); - in.close(); + public void importTables(String importData, String tableName) { + try { + ByteArrayInputStream in = new ByteArrayInputStream(importData.getBytes()); + importTables(in, tableName); + in.close(); + } catch (IOException e) { + throw new IoException(e); + } + } + + public void importTables(String importData) { + try { + ByteArrayInputStream in = new ByteArrayInputStream(importData.getBytes()); + importTables(in); + in.close(); + } catch (IOException e) { + throw new IoException(e); + } + } - public void importTables(InputStream in) throws IOException { + public void importTables(InputStream in) { importTables(in, null); } - public void importTables(InputStream in, String tableName) throws IOException { + public void importTables(InputStream in, String tableName) { if (format == Format.SQL) { importTablesFromSql(in); } else if (format == Format.CSV) { @@ -158,7 +166,7 @@ protected DatabaseWriterSettings buildDatabaseWriterSettings() { return settings; } - protected void importTablesFromCsv(InputStream in, String tableName) throws IOException { + protected void importTablesFromCsv(InputStream in, String tableName) { Table table = platform.readTableFromDatabase(catalog, schema, tableName); if (table == null) { throw new RuntimeException("Unable to find table"); @@ -172,13 +180,13 @@ protected void importTablesFromCsv(InputStream in, String tableName) throws IOEx } protected void importTablesFromXml(InputStream in) { - Database database = platform.readDatabaseFromXml(in, alterCaseToMatchDatabaseDefaultCase); + Database database = platform.readDatabaseFromXml(in, alterCaseToMatchDatabaseDefaultCase); if (alterTables) { - platform.alterDatabase(database, forceImport); + platform.alterDatabase(database, forceImport); } else { platform.createDatabase(database, dropIfExists, forceImport); } - + // TODO: read in data from XML also } @@ -270,14 +278,11 @@ protected void importTablesFromSymXml(InputStream in) { } - protected void importTablesFromSql(InputStream in) throws IOException { - // TODO: SqlScript should be able to stream from standard input to run - // large SQL script - List lines = IOUtils.readLines(in); - - SqlScript script = new SqlScript(lines, platform.getSqlTemplate(), true, - SqlScript.QUERY_ENDS, platform.getSqlScriptReplacementTokens()); - script.execute(); + protected void importTablesFromSql(InputStream in) { + SqlDataReader reader = new SqlDataReader(in); + DatabaseWriter writer = new DatabaseWriter(platform, buildDatabaseWriterSettings()); + DataProcessor dataProcessor = new DataProcessor(reader, writer); + dataProcessor.process(); } public Format getFormat() { @@ -355,27 +360,27 @@ public void setIgnoreCollisions(boolean ignoreConflicts) { public boolean isIgnoreCollisions() { return ignoreCollisions; } - + public void setReplaceRows(boolean replaceRows) { this.replaceRows = replaceRows; } - + public boolean isReplaceRows() { return replaceRows; } - + public void setAlterTables(boolean alterTables) { this.alterTables = alterTables; } - + public boolean isAlterTables() { return alterTables; } - + public void setDropIfExists(boolean dropIfExists) { this.dropIfExists = dropIfExists; } - + public boolean isDropIfExists() { return dropIfExists; } diff --git a/symmetric-client/src/test/java/org/jumpmind/symmetric/DbExportImportTest.java b/symmetric-client/src/test/java/org/jumpmind/symmetric/DbExportImportTest.java index 60946c729b..4738efe096 100644 --- a/symmetric-client/src/test/java/org/jumpmind/symmetric/DbExportImportTest.java +++ b/symmetric-client/src/test/java/org/jumpmind/symmetric/DbExportImportTest.java @@ -102,15 +102,11 @@ public void exportThenImportCsv() throws Exception { IDatabasePlatform platform = engine.getSymmetricDialect().getPlatform(); Database testTables = platform.readDatabaseFromXml("/test-dbimport.xml", true); Table table = testTables.findTable("test_db_import_1", false); - - DbImport reCreateTablesImport = new DbImport(ds); - reCreateTablesImport.setFormat(DbImport.Format.XML); - reCreateTablesImport.setDropIfExists(true); - reCreateTablesImport.setAlterCaseToMatchDatabaseDefaultCase(true); - reCreateTablesImport.importTables(getClass().getResourceAsStream("/test-dbimport.xml")); - + + recreateImportTable(); + final int RECORD_COUNT = 100; - + DbFill fill = new DbFill(platform); fill.setRecordCount(RECORD_COUNT); fill.fillTables(table.getName()); @@ -120,23 +116,69 @@ public void exportThenImportCsv() throws Exception { export.setNoCreateInfo(true); export.setNoData(false); String csvOutput = export.exportTables(new String[] { table.getName() }); - - reCreateTablesImport.importTables(getClass().getResourceAsStream("/test-dbimport.xml")); - + + recreateImportTable(); + DbImport importCsv = new DbImport(ds); importCsv.setFormat(DbImport.Format.CSV); importCsv.importTables(csvOutput, table.getName()); - - DmlStatement dml = new DmlStatement(DmlType.COUNT, table.getCatalog(), table.getSchema(), table.getName(), null, table.getColumns(), false, null, null); + + DmlStatement dml = new DmlStatement(DmlType.COUNT, table.getCatalog(), table.getSchema(), + table.getName(), null, table.getColumns(), false, null, null); Assert.assertEquals(RECORD_COUNT, platform.getSqlTemplate().queryForInt(dml.getSql())); // TODO test error - + // TODO test replace - + // TODO test ignore - + // TODO test force } + protected void recreateImportTable() throws Exception { + ISymmetricEngine engine = getSymmetricEngine(); + DataSource ds = engine.getDataSource(); + DbImport reCreateTablesImport = new DbImport(ds); + reCreateTablesImport.setFormat(DbImport.Format.XML); + reCreateTablesImport.setDropIfExists(true); + reCreateTablesImport.setAlterCaseToMatchDatabaseDefaultCase(true); + reCreateTablesImport.importTables(getClass().getResourceAsStream("/test-dbimport.xml")); + } + + protected void assertCountDbImportTableRecords(int expected) { + ISymmetricEngine engine = getSymmetricEngine(); + IDatabasePlatform platform = engine.getSymmetricDialect().getPlatform(); + Database testTables = platform.readDatabaseFromXml("/test-dbimport.xml", true); + Table table = testTables.findTable("test_db_import_1", false); + DmlStatement dml = new DmlStatement(DmlType.COUNT, table.getCatalog(), table.getSchema(), + table.getName(), null, table.getColumns(), false, null, null); + Assert.assertEquals(expected, platform.getSqlTemplate().queryForInt(dml.getSql())); + } + + @Test + public void importSqlData() throws Exception { + ISymmetricEngine engine = getSymmetricEngine(); + DataSource ds = engine.getDataSource(); + + recreateImportTable(); + + assertCountDbImportTableRecords(0); + + DbImport importCsv = new DbImport(ds); + importCsv.setFormat(DbImport.Format.SQL); + importCsv.importTables(getClass().getResourceAsStream("/test-dbimport-1-good.sql")); + + assertCountDbImportTableRecords(5); + + // TODO test error + + // TODO test replace + + // TODO test ignore + + // TODO test force + + } + } diff --git a/symmetric-client/src/test/resources/test-dbimport-1-bad-line-2.sql b/symmetric-client/src/test/resources/test-dbimport-1-bad-line-2.sql new file mode 100644 index 0000000000..2be42a4074 --- /dev/null +++ b/symmetric-client/src/test/resources/test-dbimport-1-bad-line-2.sql @@ -0,0 +1,6 @@ +-- Test Script +INSERT INTO TEST_DB_IMPORT_1 (ID,STRING_VALUE,STRING_REQUIRED_VALUE,CHAR_VALUE,CHAR_REQUIRED_VALUE,DATE_VALUE,TIME_VALUE,BOOLEAN_VALUE,INTEGER_VALUE,DECIMAL_VALUE,DOUBLE_VALUE) VALUES (963261,'HvSSVaJVyVCYDZrUirFqQJjWyQglXyEFvTsETaIGxGxRRSaYrp','RBvLcOuBlIXrhOmFXzmUNTVpUPGPVRUbeISJmUUlJLmaFlaXFY','j','j',{d '1989-09-21'},{ts '1997-11-06 08:02:33.324000000'},0,48440,0.83,0.5306078975099197); +INSERT INTO NO_TABLE (ID,STRING_VALUE,STRING_REQUIRED_VALUE,CHAR_VALUE,CHAR_REQUIRED_VALUE,DATE_VALUE,TIME_VALUE,BOOLEAN_VALUE,INTEGER_VALUE,DECIMAL_VALUE,DOUBLE_VALUE) VALUES (963416,'CwBsJsyxThbvZQnrfqZkMEJBrnnSYOoBHAtxcScQmaojHYBDeo','LeSWSyKoPGACBlXgmXGDzzjBrInbZQJzjULTbPgWISOMKvGBIA','E','X',{d '2002-06-28'},{ts '1983-11-13 18:32:48.510000000'},0,991474,0.99,0.25859735923859273); +INSERT INTO TEST_DB_IMPORT_1 (ID,STRING_VALUE,STRING_REQUIRED_VALUE,CHAR_VALUE,CHAR_REQUIRED_VALUE,DATE_VALUE,TIME_VALUE,BOOLEAN_VALUE,INTEGER_VALUE,DECIMAL_VALUE,DOUBLE_VALUE) VALUES (970293,'lmLGiYcgBqesYhHekppknCflOHwMJidwlcBsELKUefXVCgNjdX','jfUejWwMSgZAGIRsAKdtFXKEnBYZmHSDltfsEEgchQOlEqoPfh','G','H',{d '1980-12-02'},{ts '2014-01-18 14:29:47.687000000'},0,860563,0.20,0.7443149905394701); +INSERT INTO TEST_DB_IMPORT_1 (ID,STRING_VALUE,STRING_REQUIRED_VALUE,CHAR_VALUE,CHAR_REQUIRED_VALUE,DATE_VALUE,TIME_VALUE,BOOLEAN_VALUE,INTEGER_VALUE,DECIMAL_VALUE,DOUBLE_VALUE) VALUES (982811,'QrjhBYcEEnfOXmNpnRuMJmZPfZtJjYCBrhgwODXyfhaPEKkuct','ZdiUYvqNzxaNKsglNbhSWWGxNlBbyJbQWnHoZHbDJgGIoGQKRK','G','v',{d '1979-11-12'},{ts '1987-11-24 10:37:00.462000000'},0,928805,0.81,0.8746972467103193); +INSERT INTO TEST_DB_IMPORT_1 (ID,STRING_VALUE,STRING_REQUIRED_VALUE,CHAR_VALUE,CHAR_REQUIRED_VALUE,DATE_VALUE,TIME_VALUE,BOOLEAN_VALUE,INTEGER_VALUE,DECIMAL_VALUE,DOUBLE_VALUE) VALUES (997658,'TiUGEHICEplStWjGquHWDkYNhNRwLhYdsTABLQrkWwryRqXyiy','pSxDPMAtpXjFaairTeqMyOEuqSMQxuAUTUDoEcRSXWQicKdATS','n','o',{d '1978-01-19'},{ts '1985-03-05 15:43:22.248000000'},0,575117,0.52,0.36237140348235275); diff --git a/symmetric-client/src/test/resources/test-dbimport-1-good.sql b/symmetric-client/src/test/resources/test-dbimport-1-good.sql new file mode 100644 index 0000000000..9b74dac67e --- /dev/null +++ b/symmetric-client/src/test/resources/test-dbimport-1-good.sql @@ -0,0 +1,6 @@ +-- Test Script +INSERT INTO TEST_DB_IMPORT_1 (ID,STRING_VALUE,STRING_REQUIRED_VALUE,CHAR_VALUE,CHAR_REQUIRED_VALUE,DATE_VALUE,TIME_VALUE,BOOLEAN_VALUE,INTEGER_VALUE,DECIMAL_VALUE,DOUBLE_VALUE) VALUES (963261,'HvSSVaJVyVCYDZrUirFqQJjWyQglXyEFvTsETaIGxGxRRSaYrp','RBvLcOuBlIXrhOmFXzmUNTVpUPGPVRUbeISJmUUlJLmaFlaXFY','j','j',{d '1989-09-21'},{ts '1997-11-06 08:02:33.324000000'},0,48440,0.83,0.5306078975099197); +INSERT INTO TEST_DB_IMPORT_1 (ID,STRING_VALUE,STRING_REQUIRED_VALUE,CHAR_VALUE,CHAR_REQUIRED_VALUE,DATE_VALUE,TIME_VALUE,BOOLEAN_VALUE,INTEGER_VALUE,DECIMAL_VALUE,DOUBLE_VALUE) VALUES (963416,'CwBsJsyxThbvZQnrfqZkMEJBrnnSYOoBHAtxcScQmaojHYBDeo','LeSWSyKoPGACBlXgmXGDzzjBrInbZQJzjULTbPgWISOMKvGBIA','E','X',{d '2002-06-28'},{ts '1983-11-13 18:32:48.510000000'},0,991474,0.99,0.25859735923859273); +INSERT INTO TEST_DB_IMPORT_1 (ID,STRING_VALUE,STRING_REQUIRED_VALUE,CHAR_VALUE,CHAR_REQUIRED_VALUE,DATE_VALUE,TIME_VALUE,BOOLEAN_VALUE,INTEGER_VALUE,DECIMAL_VALUE,DOUBLE_VALUE) VALUES (970293,'lmLGiYcgBqesYhHekppknCflOHwMJidwlcBsELKUefXVCgNjdX','jfUejWwMSgZAGIRsAKdtFXKEnBYZmHSDltfsEEgchQOlEqoPfh','G','H',{d '1980-12-02'},{ts '2014-01-18 14:29:47.687000000'},0,860563,0.20,0.7443149905394701); +INSERT INTO TEST_DB_IMPORT_1 (ID,STRING_VALUE,STRING_REQUIRED_VALUE,CHAR_VALUE,CHAR_REQUIRED_VALUE,DATE_VALUE,TIME_VALUE,BOOLEAN_VALUE,INTEGER_VALUE,DECIMAL_VALUE,DOUBLE_VALUE) VALUES (982811,'QrjhBYcEEnfOXmNpnRuMJmZPfZtJjYCBrhgwODXyfhaPEKkuct','ZdiUYvqNzxaNKsglNbhSWWGxNlBbyJbQWnHoZHbDJgGIoGQKRK','G','v',{d '1979-11-12'},{ts '1987-11-24 10:37:00.462000000'},0,928805,0.81,0.8746972467103193); +INSERT INTO TEST_DB_IMPORT_1 (ID,STRING_VALUE,STRING_REQUIRED_VALUE,CHAR_VALUE,CHAR_REQUIRED_VALUE,DATE_VALUE,TIME_VALUE,BOOLEAN_VALUE,INTEGER_VALUE,DECIMAL_VALUE,DOUBLE_VALUE) VALUES (997658,'TiUGEHICEplStWjGquHWDkYNhNRwLhYdsTABLQrkWwryRqXyiy','pSxDPMAtpXjFaairTeqMyOEuqSMQxuAUTUDoEcRSXWQicKdATS','n','o',{d '1978-01-19'},{ts '1985-03-05 15:43:22.248000000'},0,575117,0.52,0.36237140348235275); diff --git a/symmetric-client/src/test/resources/test-dbimport.xml b/symmetric-client/src/test/resources/test-dbimport.xml index fd161e7cd0..eb8bd32908 100644 --- a/symmetric-client/src/test/resources/test-dbimport.xml +++ b/symmetric-client/src/test/resources/test-dbimport.xml @@ -14,7 +14,7 @@ required="true" /> - + diff --git a/symmetric-db/src/main/java/org/jumpmind/db/model/Table.java b/symmetric-db/src/main/java/org/jumpmind/db/model/Table.java index 4ea246a49b..db4f03791f 100644 --- a/symmetric-db/src/main/java/org/jumpmind/db/model/Table.java +++ b/symmetric-db/src/main/java/org/jumpmind/db/model/Table.java @@ -897,6 +897,10 @@ public static String getFullyQualifiedTableName(String catalogName, String schem String tableName) { return getFullyQualifiedTableName(catalogName, schemaName, tableName, null); } + + public String getQualifiedColumnName(Column column) { + return getFullyQualifiedTableName() + "." + column.getName(); + } public static String getQualifiedTablePrefix(String catalogName, String schemaName) { return getQualifiedTablePrefix(catalogName, schemaName, null); diff --git a/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/reader/AbstractTableDataReader.java b/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/reader/AbstractTableDataReader.java index 52b221be22..5653b79778 100644 --- a/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/reader/AbstractTableDataReader.java +++ b/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/reader/AbstractTableDataReader.java @@ -68,7 +68,9 @@ public AbstractTableDataReader(Batch batch, String catalogName, String schemaNam String tableName, Reader reader) { this.reader = reader; this.batch = batch; - this.table = new Table(catalogName, schemaName, tableName); + if (StringUtils.isNotBlank(tableName)) { + this.table = new Table(catalogName, schemaName, tableName); + } } public AbstractTableDataReader(BinaryEncoding binaryEncoding, String catalogName, @@ -123,9 +125,9 @@ public void open(DataContext context) { abstract protected void init(); abstract protected CsvData readNext(); - + abstract protected void finish(); - + protected CsvData buildCsvData(String[] tokens, DataEventType dml) { statistics.increment(DataReaderStatistics.READ_BYTE_COUNT, logDebugAndCountBytes(tokens)); return new CsvData(dml, tokens); @@ -136,7 +138,7 @@ public CsvData nextData() { CsvData data = readNext(); if (data != null) { lineNumber++; - context.put(CTX_LINE_NUMBER, lineNumber); + context.put(CTX_LINE_NUMBER, lineNumber); return data; } else { batch.setComplete(true); diff --git a/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/reader/CsvTableDataReader.java b/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/reader/CsvTableDataReader.java index eef8c3bd2c..559e3bff92 100644 --- a/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/reader/CsvTableDataReader.java +++ b/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/reader/CsvTableDataReader.java @@ -1,6 +1,5 @@ package org.jumpmind.symmetric.io.data.reader; -import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.Reader; @@ -9,7 +8,6 @@ import org.jumpmind.db.util.BinaryEncoding; import org.jumpmind.exception.IoException; import org.jumpmind.symmetric.csv.CsvReader; -import org.jumpmind.symmetric.io.data.Batch; import org.jumpmind.symmetric.io.data.CsvData; import org.jumpmind.symmetric.io.data.CsvUtils; import org.jumpmind.symmetric.io.data.DataEventType; @@ -22,31 +20,6 @@ public class CsvTableDataReader extends AbstractTableDataReader { protected CsvReader csvReader; - public CsvTableDataReader(Batch batch, String catalogName, String schemaName, String tableName, - File file) { - super(batch, catalogName, schemaName, tableName, file); - } - - public CsvTableDataReader(Batch batch, String catalogName, String schemaName, String tableName, - InputStream is) { - super(batch, catalogName, schemaName, tableName, is); - } - - public CsvTableDataReader(Batch batch, String catalogName, String schemaName, String tableName, - Reader reader) { - super(batch, catalogName, schemaName, tableName, reader); - } - - public CsvTableDataReader(Batch batch, String catalogName, String schemaName, String tableName, - String input) { - super(batch, catalogName, schemaName, tableName, input); - } - - public CsvTableDataReader(Batch batch, String catalogName, String schemaName, String tableName, - StringBuilder input) { - super(batch, catalogName, schemaName, tableName, input); - } - public CsvTableDataReader(BinaryEncoding binaryEncoding, String catalogName, String schemaName, String tableName, InputStream is) { super(binaryEncoding, catalogName, schemaName, tableName, is); diff --git a/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/reader/SqlDataReader.java b/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/reader/SqlDataReader.java index 4387950fd5..3782b0a948 100644 --- a/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/reader/SqlDataReader.java +++ b/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/reader/SqlDataReader.java @@ -1,13 +1,11 @@ package org.jumpmind.symmetric.io.data.reader; -import java.io.File; import java.io.InputStream; import java.io.Reader; import org.apache.commons.io.IOUtils; import org.jumpmind.db.sql.SqlScriptReader; import org.jumpmind.db.util.BinaryEncoding; -import org.jumpmind.symmetric.io.data.Batch; import org.jumpmind.symmetric.io.data.CsvData; import org.jumpmind.symmetric.io.data.DataEventType; @@ -19,39 +17,12 @@ public class SqlDataReader extends AbstractTableDataReader { protected SqlScriptReader sqlScriptReader; - public SqlDataReader(Batch batch, String catalogName, String schemaName, String tableName, - File file) { - super(batch, catalogName, schemaName, tableName, file); + public SqlDataReader(InputStream is) { + super(BinaryEncoding.HEX, null, null, null, is); } - public SqlDataReader(Batch batch, String catalogName, String schemaName, String tableName, - InputStream is) { - super(batch, catalogName, schemaName, tableName, is); - } - - public SqlDataReader(Batch batch, String catalogName, String schemaName, String tableName, - Reader reader) { - super(batch, catalogName, schemaName, tableName, reader); - } - - public SqlDataReader(Batch batch, String catalogName, String schemaName, String tableName, - String input) { - super(batch, catalogName, schemaName, tableName, input); - } - - public SqlDataReader(Batch batch, String catalogName, String schemaName, String tableName, - StringBuilder input) { - super(batch, catalogName, schemaName, tableName, input); - } - - public SqlDataReader(BinaryEncoding binaryEncoding, String catalogName, String schemaName, - String tableName, InputStream is) { - super(binaryEncoding, catalogName, schemaName, tableName, is); - } - - public SqlDataReader(BinaryEncoding binaryEncoding, String catalogName, String schemaName, - String tableName, Reader reader) { - super(binaryEncoding, catalogName, schemaName, tableName, reader); + public SqlDataReader(Reader reader) { + super(BinaryEncoding.HEX, null, null, null, reader); } @Override diff --git a/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/writer/DatabaseWriter.java b/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/writer/DatabaseWriter.java index 86cf8ad250..e23ce93c33 100644 --- a/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/writer/DatabaseWriter.java +++ b/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/writer/DatabaseWriter.java @@ -732,7 +732,9 @@ protected boolean script(CsvData data) { } } - log.info("About to run: {}", script); + if (log.isDebugEnabled()) { + log.debug("About to run: {}", script); + } interpreter.eval(script); statistics.get(batch).increment(DataWriterStatisticConstants.SCRIPTCOUNT); } catch (EvalError e) {