diff --git a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/ConfigurationService.java b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/ConfigurationService.java index e1e3150343..cb195c2a3a 100644 --- a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/ConfigurationService.java +++ b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/ConfigurationService.java @@ -184,7 +184,7 @@ public void saveNodeGroupLink(NodeGroupLink link) { if (sqlTemplate.update(getSql("updateNodeGroupLinkSql"), link.getDataEventAction().name(), link.isSyncConfigEnabled() ? 1 : 0, link.isReversible() ? 1 : 0, link.getLastUpdateTime(), - link.getLastUpdateBy(), link.getSourceNodeGroupId(), link.getTargetNodeGroupId()) == 0) { + link.getLastUpdateBy(), link.getSourceNodeGroupId(), link.getTargetNodeGroupId()) <= 0) { link.setCreateTime(new Date()); sqlTemplate.update(getSql("insertNodeGroupLinkSql"), link.getDataEventAction().name(), link.getSourceNodeGroupId(), link.getTargetNodeGroupId(), @@ -206,7 +206,7 @@ public boolean doesNodeGroupExist(String nodeGroupId) { public void saveNodeGroup(NodeGroup group) { group.setLastUpdateTime(new Date()); if (sqlTemplate.update(getSql("updateNodeGroupSql"), group.getDescription(), - group.getLastUpdateTime(), group.getLastUpdateBy(), group.getNodeGroupId()) == 0) { + group.getLastUpdateTime(), group.getLastUpdateBy(), group.getNodeGroupId()) <= 0) { group.setCreateTime(new Date()); sqlTemplate.update(getSql("insertNodeGroupSql"), group.getDescription(), group.getNodeGroupId(), group.getLastUpdateTime(), group.getLastUpdateBy(), @@ -284,7 +284,7 @@ public boolean isChannelInUse(String channelId) { public void saveChannel(Channel channel, boolean reloadChannels) { channel.setLastUpdateTime(new Date()); - if (0 == sqlTemplate.update( + if (0 >= sqlTemplate.update( getSql("updateChannelSql"), new Object[] { channel.getProcessingOrder(), channel.getMaxBatchSize(), channel.getMaxBatchToSend(), channel.getMaxDataToRoute(), @@ -327,7 +327,7 @@ public void saveNodeChannel(NodeChannel nodeChannel, boolean reloadChannels) { } public void saveNodeChannelControl(NodeChannel nodeChannel, boolean reloadChannels) { - if (0 == sqlTemplate.update( + if (0 >= sqlTemplate.update( getSql("updateNodeChannelControlSql"), new Object[] { nodeChannel.isSuspendEnabled() ? 1 : 0, nodeChannel.isIgnoreEnabled() ? 1 : 0, nodeChannel.getLastExtractTime(), diff --git a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/ContextService.java b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/ContextService.java index 863be639f2..f22f1fb3e1 100644 --- a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/ContextService.java +++ b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/ContextService.java @@ -87,12 +87,12 @@ public void save(String name, String value) { @Override public void save(ISqlTransaction transaction, String name, String value) { if (transaction != null) { - if (update(transaction, name, value) == 0) { + if (update(transaction, name, value) <= 0) { insert(transaction, name, value); } } else { int count = sqlTemplate.update(getSql("updateSql"), value, name); - if (count == 0) { + if (count <= 0) { sqlTemplate.update(getSql("insertSql"), name, value); } } diff --git a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/DataLoaderService.java b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/DataLoaderService.java index 72119e3382..3cb40c52d5 100644 --- a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/DataLoaderService.java +++ b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/DataLoaderService.java @@ -773,7 +773,7 @@ public void save(ConflictNodeGroupLink setting) { setting.getLastUpdateBy(), setting.getConflictId() }, new int[] { Types.VARCHAR, Types.VARCHAR, Types.VARCHAR, Types.VARCHAR, Types.VARCHAR, Types.VARCHAR, Types.VARCHAR, Types.VARCHAR, Types.VARCHAR, Types.INTEGER, - Types.INTEGER, Types.VARCHAR, Types.VARCHAR, Types.VARCHAR }) == 0) { + Types.INTEGER, Types.VARCHAR, Types.VARCHAR, Types.VARCHAR }) <= 0) { sqlTemplate.update( getSql("insertConflictSettingsSql"), new Object[] { setting.getNodeGroupLink().getSourceNodeGroupId(), diff --git a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/ExtensionService.java b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/ExtensionService.java index 6f3f5ce767..724f0f3960 100644 --- a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/ExtensionService.java +++ b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/ExtensionService.java @@ -287,7 +287,7 @@ public void saveExtension(Extension extension) { Object[] args = { extension.getExtensionType(), extension.getInterfaceName(), extension.getNodeGroupId(), extension.isEnabled() ? 1 : 0, extension.getExtensionOrder(), extension.getExtensionText(), extension.getLastUpdateBy(), extension.getExtensionId() }; - if (sqlTemplate.update(getSql("updateExtensionSql"), args) == 0) { + if (sqlTemplate.update(getSql("updateExtensionSql"), args) <= 0) { sqlTemplate.update(getSql("insertExtensionSql"), args); if (extension.isEnabled()) { registerExtension(extension); diff --git a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/FileSyncService.java b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/FileSyncService.java index 55ea205a32..398f9550b4 100644 --- a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/FileSyncService.java +++ b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/FileSyncService.java @@ -277,7 +277,7 @@ public FileTriggerRouter getFileTriggerRouter(String triggerId, String routerId) public void saveFileTrigger(FileTrigger fileTrigger) { fileTrigger.setLastUpdateTime(new Date()); - if (0 == sqlTemplate.update( + if (0 >= sqlTemplate.update( getSql("updateFileTriggerSql"), new Object[] { fileTrigger.getBaseDir(), fileTrigger.isRecurse() ? 1 : 0, fileTrigger.getIncludesFiles(), fileTrigger.getExcludesFiles(), @@ -319,7 +319,7 @@ public void saveFileTrigger(FileTrigger fileTrigger) { public void saveFileTriggerRouter(FileTriggerRouter fileTriggerRouter) { fileTriggerRouter.setLastUpdateTime(new Date()); - if (0 == sqlTemplate.update( + if (0 >= sqlTemplate.update( getSql("updateFileTriggerRouterSql"), new Object[] { fileTriggerRouter.isEnabled() ? 1 : 0, fileTriggerRouter.isInitialLoadEnabled() ? 1 : 0, diff --git a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/GroupletService.java b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/GroupletService.java index eb9ae1eee7..30ef163c6f 100644 --- a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/GroupletService.java +++ b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/GroupletService.java @@ -251,7 +251,7 @@ public void saveGrouplet(Grouplet grouplet) { grouplet.getCreateTime(), grouplet.getLastUpdateBy(), grouplet.getLastUpdateTime(), grouplet.getGroupletId() }, new int[] { Types.VARCHAR, Types.VARCHAR, Types.TIMESTAMP, Types.VARCHAR, - Types.TIMESTAMP, Types.VARCHAR }) == 0) { + Types.TIMESTAMP, Types.VARCHAR }) <= 0) { grouplet.setCreateTime(new Date()); sqlTemplate.update( getSql("insertGroupletSql"), @@ -295,7 +295,7 @@ public void saveGroupletLink(Grouplet grouplet, GroupletLink link) { new Object[] { link.getCreateTime(), link.getLastUpdateBy(), link.getLastUpdateTime(), grouplet.getGroupletId(), link.getExternalId() }, new int[] { Types.TIMESTAMP, Types.VARCHAR, Types.TIMESTAMP, Types.VARCHAR, - Types.VARCHAR }) == 0) { + Types.VARCHAR }) <= 0) { link.setCreateTime(new Date()); sqlTemplate.update(getSql("insertGroupletLinkSql"), new Object[] { link.getCreateTime(), link.getLastUpdateBy(), link.getLastUpdateTime(), @@ -322,7 +322,7 @@ public void saveTriggerRouterGrouplet(Grouplet grouplet, triggerRouterGrouplet.getAppliesWhen().name(), triggerRouterGrouplet.getTriggerId(), triggerRouterGrouplet.getRouterId() }, new int[] { Types.TIMESTAMP, Types.VARCHAR, Types.TIMESTAMP, Types.VARCHAR, - Types.VARCHAR, Types.VARCHAR, Types.VARCHAR }) == 0) { + Types.VARCHAR, Types.VARCHAR, Types.VARCHAR }) <= 0) { triggerRouterGrouplet.setCreateTime(new Date()); sqlTemplate.update( getSql("insertTriggerRouterGroupletSql"), diff --git a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/LoadFilterService.java b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/LoadFilterService.java index 78ee7aff36..e0cd329969 100644 --- a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/LoadFilterService.java +++ b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/LoadFilterService.java @@ -213,7 +213,7 @@ public void saveLoadFilter(LoadFilterNodeGroupLink loadFilter) { loadFilter.isFilterOnUpdate() ? 1 : 0, loadFilter.isFilterOnDelete() ? 1 : 0, loadFilter.isFailOnError() ? 1 : 0, loadFilter.getLastUpdateBy(), loadFilter.getLastUpdateTime(), loadFilter.getLoadFilterId() }; - if (sqlTemplate.update(getSql("updateLoadFilterSql"), args) == 0) { + if (sqlTemplate.update(getSql("updateLoadFilterSql"), args) <= 0) { sqlTemplate.update(getSql("insertLoadFilterSql"), args); } clearCache(); diff --git a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/NodeCommunicationService.java b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/NodeCommunicationService.java index d5221f2a9e..f97b667c7c 100644 --- a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/NodeCommunicationService.java +++ b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/NodeCommunicationService.java @@ -333,7 +333,7 @@ public boolean delete(NodeCommunication nodeCommunication) { protected void save(NodeCommunication nodeCommunication, boolean force) { if (clusterService.isClusteringEnabled() || force) { - if (0 == sqlTemplate.update(getSql("updateNodeCommunicationSql"), + if (0 >= sqlTemplate.update(getSql("updateNodeCommunicationSql"), nodeCommunication.getLockTime(), nodeCommunication.getLockingServerId(), nodeCommunication.getLastLockMillis(), nodeCommunication.getSuccessCount(), nodeCommunication.getFailCount(), nodeCommunication.getTotalSuccessCount(), diff --git a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/NodeService.java b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/NodeService.java index dc86c7844e..8b03254f96 100644 --- a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/NodeService.java +++ b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/NodeService.java @@ -185,7 +185,7 @@ public void ignoreNodeChannelForExternalId(boolean enabled, String channelId, String nodeGroupId, String externalId) { Node node = findNodeByExternalId(nodeGroupId, externalId); if (sqlTemplate.update(getSql("nodeChannelControlIgnoreSql"), new Object[] { - enabled ? 1 : 0, node.getNodeId(), channelId }) == 0) { + enabled ? 1 : 0, node.getNodeId(), channelId }) <= 0) { sqlTemplate.update(getSql("insertNodeChannelControlSql"), new Object[] { node.getNodeId(), channelId, enabled ? 1 : 0, 0 }); } @@ -218,7 +218,7 @@ public void updateNodeHost(NodeHost nodeHost) { nodeHost.getLastRestartTime(), nodeHost.getNodeId(), nodeHost.getHostName() }; - if (sqlTemplate.update(getSql("updateNodeHostSql"), params) == 0) { + if (sqlTemplate.update(getSql("updateNodeHostSql"), params) <= 0) { sqlTemplate.update(getSql("insertNodeHostSql"), params); } diff --git a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/TriggerRouterService.java b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/TriggerRouterService.java index 0deff3f1ac..ecabe431c0 100644 --- a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/TriggerRouterService.java +++ b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/TriggerRouterService.java @@ -1000,7 +1000,7 @@ public void saveTriggerRouter(TriggerRouter triggerRouter, boolean updateTrigger saveRouter(triggerRouter.getRouter()); } triggerRouter.setLastUpdateTime(new Date()); - if (0 == sqlTemplate.update( + if (0 >= sqlTemplate.update( getSql("updateTriggerRouterSql"), new Object[] { triggerRouter.getInitialLoadOrder(), triggerRouter.getInitialLoadSelect(), @@ -1041,7 +1041,7 @@ protected void resetTriggerRouterCacheByNodeGroupId() { public void saveRouter(Router router) { router.setLastUpdateTime(new Date()); router.nullOutBlankFields(); - if (0 == sqlTemplate.update( + if (0 >= sqlTemplate.update( getSql("updateRouterSql"), new Object[] { router.getTargetCatalogName(), router.getTargetSchemaName(), router.getTargetTableName(), @@ -1094,7 +1094,7 @@ public void deleteAllRouters() { public void saveTrigger(Trigger trigger) { trigger.setLastUpdateTime(new Date()); trigger.nullOutBlankFields(); - if (0 == sqlTemplate.update( + if (0 >= sqlTemplate.update( getSql("updateTriggerSql"), new Object[] { trigger.getSourceCatalogName(), trigger.getSourceSchemaName(), trigger.getSourceTableName(), trigger.getChannelId(), trigger.getReloadChannelId(), diff --git a/symmetric-db/src/main/java/org/jumpmind/db/platform/nuodb/NuoDbDdlBuilder.java b/symmetric-db/src/main/java/org/jumpmind/db/platform/nuodb/NuoDbDdlBuilder.java index 8ee27c9ced..6cc0858487 100644 --- a/symmetric-db/src/main/java/org/jumpmind/db/platform/nuodb/NuoDbDdlBuilder.java +++ b/symmetric-db/src/main/java/org/jumpmind/db/platform/nuodb/NuoDbDdlBuilder.java @@ -69,7 +69,7 @@ public NuoDbDdlBuilder() { databaseInfo.addNativeTypeMapping(Types.CHAR, "CHAR"); databaseInfo.addNativeTypeMapping(Types.VARCHAR, "VARCHAR"); databaseInfo.addNativeTypeMapping(Types.TIMESTAMP, "TIMESTAMP"); - databaseInfo.addNativeTypeMapping(Types.TINYINT, "SMALLINT"); + databaseInfo.addNativeTypeMapping(Types.TINYINT, "SMALLINT",Types.SMALLINT); databaseInfo.addNativeTypeMapping(Types.SMALLINT, "SMALLINT"); databaseInfo.addNativeTypeMapping(Types.INTEGER, "INTEGER"); databaseInfo.addNativeTypeMapping(Types.BIGINT, "BIGINT"); @@ -106,15 +106,26 @@ public NuoDbDdlBuilder() { @Override protected String getFullyQualifiedTableNameShorten(Table table) { String result=""; -// if (StringUtils.isNotBlank(table.getSchema())) { -// result+=getDelimitedIdentifier(table.getSchema()).concat(databaseInfo.getSchemaSeparator()); -// }else{ -// result+=getDelimitedIdentifier(platform.getDefaultSchema()).concat(databaseInfo.getSchemaSeparator()); -// } result+=getDelimitedIdentifier(getTableName(table.getName())); return result; } - + + @Override + public boolean areColumnSizesTheSame(Column sourceColumn, Column targetColumn){ + if(sourceColumn.getMappedType().equals("DECIMAL") && targetColumn.getMappedType().equals("DECIMAL")){ + int targetSize = targetColumn.getSizeAsInt(); + int sourceSize = sourceColumn.getSizeAsInt(); + if (targetSize > 8 && sourceSize == 8 && + targetColumn.getScale() == sourceColumn.getScale()) { + return true; + }else{ + return false; + } + }else{ + return super.areColumnSizesTheSame(sourceColumn, targetColumn); + } + } + @Override protected void dropTable(Table table, StringBuilder ddl, boolean temporary, boolean recreate) { ddl.append("DROP TABLE IF EXISTS "); @@ -193,11 +204,6 @@ protected void writeExternalForeignKeyCreateStmt(Database database, Table table, ddl.append(" FOREIGN KEY ("); writeLocalReferences(key, ddl); ddl.append(") REFERENCES "); -// if (StringUtils.isNotBlank(table.getSchema())) { -// ddl.append(table.getSchema()).append("."); -// }else{ -// ddl.append(platform.getDefaultSchema()).append("."); -// } printIdentifier(getTableName(key.getForeignTableName()), ddl); ddl.append(" ("); writeForeignReferences(key, ddl); diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/nuodb/NuoDbDdlReader.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/nuodb/NuoDbDdlReader.java index d5519579d4..4e2164e5cd 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/nuodb/NuoDbDdlReader.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/nuodb/NuoDbDdlReader.java @@ -75,7 +75,7 @@ protected static Map mapNames(){ values.put("TYPE_NAME", "TYPE_NAME"); values.put("DATA_TYPE", "DATA_TYPE"); values.put("NUM_PREC_RADIX", "NUM_PREC_RADIX"); - values.put("DECIMAL_DIGITS", "DECIMAL_DIGITS"); + values.put("DECIMAL_DIGITS", "SCALE"); values.put("COLUMN_SIZE", "LENGTH"); values.put("IS_NULLABLE", "IS_NULLABLE"); values.put("IS_AUTOINCREMENT", "IS_AUTOINCREMENT"); @@ -244,10 +244,7 @@ protected Integer mapUnknownJdbcTypeForColumn(Map values) { } Integer type = (Integer) values.get("DATA_TYPE"); - if (type != null && type.intValue() == Types.SMALLINT) { - // XML booleanint becomes tinyint on Column but becomes smallint in database - return Types.TINYINT; - } else if (type != null && type.intValue() == Types.CLOB) { + if (type != null && type.intValue() == Types.CLOB) { // XML longvarchar becoms longvarchar on Column but becomes clob in database return Types.LONGVARCHAR; } else {