Skip to content

Commit

Permalink
0002152: DDL errors on DB2 i5 AS/400
Browse files Browse the repository at this point in the history
  • Loading branch information
chenson42 committed Jan 29, 2015
1 parent de75f49 commit 46a6506
Showing 1 changed file with 35 additions and 26 deletions.
Expand Up @@ -403,39 +403,48 @@ public boolean createOrAlterTablesIfNecessary(String... tableNames) {
List<IAlterDatabaseInterceptor> alterDatabaseInterceptors = extensionService.getExtensionPointList(IAlterDatabaseInterceptor.class);
IAlterDatabaseInterceptor[] interceptors = alterDatabaseInterceptors.toArray(new IAlterDatabaseInterceptor[alterDatabaseInterceptors.size()]);
if (builder.isAlterDatabase(modelFromDatabase, modelFromXml, interceptors)) {
log.info("There are SymmetricDS tables that needed altered");
String delimiter = platform.getDatabaseInfo().getSqlCommandDelimiter();

ISqlResultsListener resultsListener = new LogSqlResultsListener(log);
List<IDatabaseUpgradeListener> databaseUpgradeListeners = extensionService.getExtensionPointList(IDatabaseUpgradeListener.class);

for (IDatabaseUpgradeListener listener : databaseUpgradeListeners) {
String sql = listener
.beforeUpgrade(this, this.parameterService.getTablePrefix(),
modelFromDatabase, modelFromXml);
SqlScript script = new SqlScript(sql, getPlatform().getSqlTemplate(), true, false, false, delimiter, null);
script.setListener(resultsListener);
script.execute(platform.getDatabaseInfo().isRequiresAutoCommitForDdl());
}

String alterSql = builder.alterDatabase(modelFromDatabase, modelFromXml, interceptors);

log.debug("Alter SQL generated: {}", alterSql);
ISqlResultsListener resultsListener = new LogSqlResultsListener(log);
List<IDatabaseUpgradeListener> databaseUpgradeListeners = extensionService
.getExtensionPointList(IDatabaseUpgradeListener.class);

String alterSql = builder.alterDatabase(modelFromDatabase, modelFromXml,
interceptors);
if (isNotBlank(alterSql)) {
log.info("There are SymmetricDS tables that needed altered");

for (IDatabaseUpgradeListener listener : databaseUpgradeListeners) {
String sql = listener.beforeUpgrade(this,
this.parameterService.getTablePrefix(), modelFromDatabase,
modelFromXml);
SqlScript script = new SqlScript(sql, getPlatform().getSqlTemplate(), true,
false, false, delimiter, null);
script.setListener(resultsListener);
script.execute(platform.getDatabaseInfo().isRequiresAutoCommitForDdl());
}

SqlScript script = new SqlScript(alterSql, getPlatform().getSqlTemplate(), true, false, false, delimiter, null);
script.setListener(resultsListener);
script.execute(platform.getDatabaseInfo().isRequiresAutoCommitForDdl());
log.debug("Alter SQL generated: {}", alterSql);

for (IDatabaseUpgradeListener listener : databaseUpgradeListeners) {
String sql = listener.afterUpgrade(this,
this.parameterService.getTablePrefix(), modelFromXml);
script = new SqlScript(sql, getPlatform().getSqlTemplate(), true, false, false, delimiter, null);
SqlScript script = new SqlScript(alterSql, getPlatform().getSqlTemplate(),
true, false, false, delimiter, null);
script.setListener(resultsListener);
script.execute(platform.getDatabaseInfo().isRequiresAutoCommitForDdl());
}

log.info("Done with auto update of SymmetricDS tables");
return true;
for (IDatabaseUpgradeListener listener : databaseUpgradeListeners) {
String sql = listener.afterUpgrade(this,
this.parameterService.getTablePrefix(), modelFromXml);
script = new SqlScript(sql, getPlatform().getSqlTemplate(), true, false,
false, delimiter, null);
script.setListener(resultsListener);
script.execute(platform.getDatabaseInfo().isRequiresAutoCommitForDdl());
}

log.info("Done with auto update of SymmetricDS tables");
return true;
} else {
return false;
}
} else {
return false;
}
Expand Down

0 comments on commit 46a6506

Please sign in to comment.