Skip to content

Commit

Permalink
0002953: MSSQL Data truncation issue. Fix unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
chenson42 committed Jan 19, 2017
1 parent 4e8f9bf commit 008e8a9
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 23 deletions.
Expand Up @@ -236,7 +236,7 @@ protected String replaceTemplateVariables(DataEventType dml, Trigger trigger,
TriggerHistory history, Channel channel, String tablePrefix, Table originalTable, Table table,
String defaultCatalog, String defaultSchema, String ddl) {
ddl = FormatUtils.replace("oldColumns", trigger.isUseCaptureOldData() ?
super.buildColumnsString(ORIG_TABLE_ALIAS, oldTriggerValue, oldColumnPrefix, table.getColumns(), dml, true, channel, trigger).toString() : "convert(VARCHAR,null)", ddl);
super.buildColumnsString(ORIG_TABLE_ALIAS, oldTriggerValue, oldColumnPrefix, table, table.getColumns(), dml, true, channel, trigger).toString() : "convert(VARCHAR,null)", ddl);
ddl = super.replaceTemplateVariables(dml, trigger, history, channel, tablePrefix, originalTable, table,
defaultCatalog, defaultSchema, ddl);
Column[] columns = table.getPrimaryKeyColumns();
Expand Down
Expand Up @@ -158,7 +158,7 @@ public String createInitalLoadSql(Node node, TriggerRouter triggerRouter, Table
if (concatInCsv) {
sql = sqlTemplates.get(INITIAL_LOAD_SQL_TEMPLATE);
String columnsText = buildColumnsString(tableAlias,
tableAlias, "", columns, DataEventType.INSERT,
tableAlias, "", table, columns, DataEventType.INSERT,
false, channel, triggerRouter.getTrigger()).columnString;
if (isNotBlank(textColumnExpression)) {
columnsText = textColumnExpression.replace("$(columnName)", columnsText);
Expand All @@ -180,7 +180,7 @@ public String createInitalLoadSql(Node node, TriggerRouter triggerRouter, Table
String columnExpression = null;
if (useTriggerTemplateForColumnTemplatesDuringInitialLoad()) {
ColumnString columnString = fillOutColumnTemplate(tableAlias,
tableAlias, "", column, DataEventType.INSERT, false, channel,
tableAlias, "", table, column, DataEventType.INSERT, false, channel,
triggerRouter.getTrigger());
columnExpression = columnString.columnString;
if (isNotBlank(textColumnExpression)
Expand Down Expand Up @@ -297,7 +297,7 @@ public String createCsvDataSql(Trigger trigger, TriggerHistory triggerHistory, T

Column[] columns = table.getColumns();
String columnsText = buildColumnsString(symmetricDialect.getInitialLoadTableAlias(),
symmetricDialect.getInitialLoadTableAlias(), "", columns, DataEventType.INSERT,
symmetricDialect.getInitialLoadTableAlias(), "", table, columns, DataEventType.INSERT,
false, channel, trigger).columnString;
sql = FormatUtils.replace("columns", columnsText, sql);
sql = FormatUtils.replace("oracleToClob",
Expand Down Expand Up @@ -326,7 +326,7 @@ public String createCsvPrimaryKeySql(Trigger trigger, TriggerHistory triggerHist

Column[] columns = table.getPrimaryKeyColumns();
String columnsText = buildColumnsString(symmetricDialect.getInitialLoadTableAlias(),
symmetricDialect.getInitialLoadTableAlias(), "", columns, DataEventType.INSERT,
symmetricDialect.getInitialLoadTableAlias(), "", table, columns, DataEventType.INSERT,
false, channel, trigger).toString();
sql = FormatUtils.replace("columns", columnsText, sql);
sql = FormatUtils.replace("oracleToClob",
Expand Down Expand Up @@ -457,7 +457,7 @@ protected String replaceTemplateVariables(DataEventType dml, Trigger trigger,

Column[] orderedColumns = table.getColumns();
ColumnString columnString = buildColumnsString(ORIG_TABLE_ALIAS, newTriggerValue,
newColumnPrefix, orderedColumns, dml, false, channel, trigger);
newColumnPrefix, table, orderedColumns, dml, false, channel, trigger);
ddl = FormatUtils.replace("columns", columnString.toString(), ddl);

ddl = replaceDefaultSchemaAndCatalog(ddl);
Expand All @@ -467,7 +467,7 @@ protected String replaceTemplateVariables(DataEventType dml, Trigger trigger,
ddl = FormatUtils.replace(
"oldColumns",
trigger.isUseCaptureOldData() ? buildColumnsString(ORIG_TABLE_ALIAS,
oldTriggerValue, oldColumnPrefix, orderedColumns, dml, true, channel,
oldTriggerValue, oldColumnPrefix, table, orderedColumns, dml, true, channel,
trigger).toString() : "null", ddl);
ddl = eval(columnString.isBlobClob, "containsBlobClobColumns", ddl);

Expand All @@ -480,7 +480,7 @@ protected String replaceTemplateVariables(DataEventType dml, Trigger trigger,
ddl = FormatUtils.replace(
"oldKeys",
buildColumnsString(ORIG_TABLE_ALIAS, oldTriggerValue, oldColumnPrefix,
primaryKeyColumns, dml, true, channel, trigger).toString(), ddl);
table, primaryKeyColumns, dml, true, channel, trigger).toString(), ddl);
ddl = FormatUtils.replace(
"oldNewPrimaryKeyJoin",
aliasedPrimaryKeyJoin(oldTriggerValue, newTriggerValue,
Expand Down Expand Up @@ -688,7 +688,7 @@ protected String buildColumnNameString(String tableAlias, boolean quote, Trigger
}

protected ColumnString buildColumnsString(String origTableAlias, String tableAlias,
String columnPrefix, Column[] columns, DataEventType dml, boolean isOld,
String columnPrefix, Table table, Column[] columns, DataEventType dml, boolean isOld,
Channel channel, Trigger trigger) {
String columnsText = "";
boolean containsLob = false;
Expand All @@ -701,7 +701,7 @@ protected ColumnString buildColumnsString(String origTableAlias, String tableAli
Column column = columns[i];
if (column != null) {
ColumnString columnString = fillOutColumnTemplate(origTableAlias, tableAlias,
columnPrefix, column, dml, isOld, channel, trigger);
columnPrefix, table, column, dml, isOld, channel, trigger);
columnsText = columnsText + "\n " + columnString.columnString
+ lastCommandToken;
containsLob |= columnString.isBlobClob;
Expand All @@ -718,7 +718,7 @@ protected ColumnString buildColumnsString(String origTableAlias, String tableAli
}

protected ColumnString fillOutColumnTemplate(String origTableAlias, String tableAlias,
String columnPrefix, Column column, DataEventType dml, boolean isOld, Channel channel,
String columnPrefix, Table table, Column column, DataEventType dml, boolean isOld, Channel channel,
Trigger trigger) {
boolean isLob = symmetricDialect.getPlatform().isLob(column.getMappedTypeCode());
String templateToUse = null;
Expand Down Expand Up @@ -863,11 +863,8 @@ else if (column.getJdbcTypeName() != null
String formattedColumnText = FormatUtils.replace("columnName",
String.format("%s%s", columnPrefix, column.getName()), templateToUse);

Table sourceTable = symmetricDialect.getPlatform().getTableFromCache(trigger.getSourceCatalogName(),
trigger.getSourceSchemaName(), trigger.getSourceTableName(), false);

formattedColumnText = FormatUtils.replace("columnSize",
getColumnSize(sourceTable, column), formattedColumnText);
getColumnSize(table, column), formattedColumnText);

formattedColumnText = FormatUtils.replace("masterCollation",
symmetricDialect.getMasterCollation(), formattedColumnText);
Expand Down
Expand Up @@ -21,7 +21,6 @@
package org.jumpmind.db.platform.sqlite;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
Expand All @@ -39,7 +38,6 @@
import org.jumpmind.db.model.Trigger;
import org.jumpmind.db.model.TypeMap;
import org.jumpmind.db.model.UniqueIndex;
import org.jumpmind.db.model.Trigger.TriggerType;
import org.jumpmind.db.platform.IDatabasePlatform;
import org.jumpmind.db.platform.IDdlReader;
import org.jumpmind.db.sql.ISqlRowMapper;
Expand Down
Expand Up @@ -20,10 +20,7 @@
*/
package org.jumpmind.db.sql;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
Expand Down
6 changes: 3 additions & 3 deletions symmetric-jdbc/src/test/resources/db-test.properties
Expand Up @@ -19,9 +19,9 @@
# under the License.
#

test.server=h2
test.root=h2
test.client=h2
test.server=sqlite
test.root=sqlite
test.client=sqlite

mysql.db.driver=com.mysql.jdbc.Driver
mysql.db.user=root
Expand Down

0 comments on commit 008e8a9

Please sign in to comment.