diff --git a/symmetric-db/src/main/java/org/jumpmind/db/platform/IDdlReader.java b/symmetric-db/src/main/java/org/jumpmind/db/platform/IDdlReader.java index 68ebb9b178..66bb421a09 100644 --- a/symmetric-db/src/main/java/org/jumpmind/db/platform/IDdlReader.java +++ b/symmetric-db/src/main/java/org/jumpmind/db/platform/IDdlReader.java @@ -55,7 +55,7 @@ public interface IDdlReader { public Collection getExportedKeys(Table table); - public List getExportedForeignTableRows(ISqlTransaction transaction, List tableRows, Set visited); + public List getExportedForeignTableRows(ISqlTransaction transaction, List tableRows, Set visited, BinaryEncoding encoding); public List getImportedForeignTableRows(List tableRows, Set visited, BinaryEncoding encoding); diff --git a/symmetric-db/src/main/java/org/jumpmind/db/platform/bigquery/BigQueryDdlReader.java b/symmetric-db/src/main/java/org/jumpmind/db/platform/bigquery/BigQueryDdlReader.java index 7431a1cca6..eff0731e97 100644 --- a/symmetric-db/src/main/java/org/jumpmind/db/platform/bigquery/BigQueryDdlReader.java +++ b/symmetric-db/src/main/java/org/jumpmind/db/platform/bigquery/BigQueryDdlReader.java @@ -128,7 +128,7 @@ public Collection getExportedKeys(Table table) { } @Override - public List getExportedForeignTableRows(ISqlTransaction transaction, List tableRows, Set visited) { + public List getExportedForeignTableRows(ISqlTransaction transaction, List tableRows, Set visited, BinaryEncoding encoding) { return null; } diff --git a/symmetric-db/src/main/java/org/jumpmind/db/platform/cassandra/CassandraDdlReader.java b/symmetric-db/src/main/java/org/jumpmind/db/platform/cassandra/CassandraDdlReader.java index 07445951b1..6b96e68dbc 100644 --- a/symmetric-db/src/main/java/org/jumpmind/db/platform/cassandra/CassandraDdlReader.java +++ b/symmetric-db/src/main/java/org/jumpmind/db/platform/cassandra/CassandraDdlReader.java @@ -75,7 +75,7 @@ public Collection getExportedKeys(Table table) { } @Override - public List getExportedForeignTableRows(ISqlTransaction transaction, List tableRows, Set visited) { + public List getExportedForeignTableRows(ISqlTransaction transaction, List tableRows, Set visited, BinaryEncoding encoding) { return null; } diff --git a/symmetric-db/src/main/java/org/jumpmind/db/platform/kafka/KafkaDdlReader.java b/symmetric-db/src/main/java/org/jumpmind/db/platform/kafka/KafkaDdlReader.java index 8b76c745d7..a3f0867f1c 100644 --- a/symmetric-db/src/main/java/org/jumpmind/db/platform/kafka/KafkaDdlReader.java +++ b/symmetric-db/src/main/java/org/jumpmind/db/platform/kafka/KafkaDdlReader.java @@ -72,7 +72,7 @@ public Collection getExportedKeys(Table table) { } @Override - public List getExportedForeignTableRows(ISqlTransaction transaction, List tableRows, Set visited) { + public List getExportedForeignTableRows(ISqlTransaction transaction, List tableRows, Set visited, BinaryEncoding encoding) { return null; } diff --git a/symmetric-db/src/main/java/org/jumpmind/db/platform/sqlite/SqliteDdlReader.java b/symmetric-db/src/main/java/org/jumpmind/db/platform/sqlite/SqliteDdlReader.java index a411971906..99185420dc 100644 --- a/symmetric-db/src/main/java/org/jumpmind/db/platform/sqlite/SqliteDdlReader.java +++ b/symmetric-db/src/main/java/org/jumpmind/db/platform/sqlite/SqliteDdlReader.java @@ -285,7 +285,7 @@ public Collection getExportedKeys(Table table) { } @Override - public List getExportedForeignTableRows(ISqlTransaction transaction, List tableRows, Set visited) { + public List getExportedForeignTableRows(ISqlTransaction transaction, List tableRows, Set visited, BinaryEncoding encoding) { return null; } diff --git a/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/DbFill.java b/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/DbFill.java index 92eeac7767..d7992ba8e6 100644 --- a/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/DbFill.java +++ b/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/DbFill.java @@ -818,7 +818,7 @@ private void deleteRandomRecord(ISqlTransaction tran, Table table) { private void deleteForeignKeyChildren(ISqlTransaction tran, Table table, Row row) { List tableRows = new ArrayList(); tableRows.add(new TableRow(table, row, null, null, null)); - tableRows = platform.getDdlReader().getExportedForeignTableRows(tran, tableRows, new HashSet()); + tableRows = platform.getDdlReader().getExportedForeignTableRows(tran, tableRows, new HashSet(), BinaryEncoding.HEX); if (!tableRows.isEmpty()) { Collections.reverse(tableRows); Set visited = new HashSet(); diff --git a/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/writer/DefaultDatabaseWriterConflictResolver.java b/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/writer/DefaultDatabaseWriterConflictResolver.java index 246b78a61d..ad6b3cd98e 100644 --- a/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/writer/DefaultDatabaseWriterConflictResolver.java +++ b/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/writer/DefaultDatabaseWriterConflictResolver.java @@ -558,7 +558,7 @@ protected boolean deleteForeignKeyChildren(IDatabasePlatform platform, ISqlTempl tableRows.add(new TableRow(targetTable, values, null, null, null)); List foreignTableRows = doInTransaction(platform, databaseWriter, new ITransactionCallback>() { public List execute(ISqlTransaction transaction) { - return platform.getDdlReader().getExportedForeignTableRows(transaction, tableRows, new HashSet()); + return platform.getDdlReader().getExportedForeignTableRows(transaction, tableRows, new HashSet(), databaseWriter.getBatch().getBinaryEncoding()); } }); diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/AbstractJdbcDdlReader.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/AbstractJdbcDdlReader.java index ce6e6bb5a4..12a4db6f63 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/AbstractJdbcDdlReader.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/AbstractJdbcDdlReader.java @@ -1699,7 +1699,7 @@ public Collection execute(Connection connection) throws SQLException } @Override - public List getExportedForeignTableRows(ISqlTransaction transaction, List tableRows, Set visited) { + public List getExportedForeignTableRows(ISqlTransaction transaction, List tableRows, Set visited, BinaryEncoding encoding) { List fkDepList = new ArrayList(); for (TableRow tableRow : tableRows) { if (!visited.contains(tableRow)) { @@ -1730,7 +1730,7 @@ public List getExportedForeignTableRows(ISqlTransaction transaction, L DmlStatement selectSt = platform.createDmlStatement(DmlType.SELECT, foreignTable.getCatalog(), foreignTable.getSchema(), foreignTable.getName(), keyColumns, foreignTable.getColumns(), nullValues, null); - Object[] selectValues = platform.getObjectValues(BinaryEncoding.HEX, selectRow.toStringArray(selectRow.keySet().toArray(new String[0])), + Object[] selectValues = platform.getObjectValues(encoding, selectRow.toStringArray(selectRow.keySet().toArray(new String[0])), keyColumns); List rows = transaction.query(selectSt.getSql(), new RowMapper(), selectValues, selectSt.getTypes()); @@ -1759,7 +1759,7 @@ public List getExportedForeignTableRows(ISqlTransaction transaction, L log.debug("Foreign table '{}' not found for foreign key '{}'", fk.getForeignTableName(), fk.getName()); } if (fkDepList.size() > 0) { - fkDepList.addAll(getExportedForeignTableRows(transaction, fkDepList, visited)); + fkDepList.addAll(getExportedForeignTableRows(transaction, fkDepList, visited, encoding)); } } }