Skip to content

Commit

Permalink
0004900: Symmetric upgrade with Firebird database fails to upgrade when
Browse files Browse the repository at this point in the history
upgrading to 3.12
  • Loading branch information
Philip Marzullo committed Mar 16, 2021
1 parent ebede33 commit 91b68ab
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 4 deletions.
Expand Up @@ -315,6 +315,7 @@ public void removeTrigger(StringBuilder sqlBuffer, String catalogName, String sc

public void removeTrigger(StringBuilder sqlBuffer, String catalogName, String schemaName, String triggerName, String tableName,
ISqlTransaction transaction) {
log.info("Dropping {} trigger for {}", triggerName, (schemaName != null ? schemaName + "." : "") + tableName);
String sql = getDropTriggerSql(sqlBuffer, catalogName, schemaName, triggerName, tableName);
logSql(sql, sqlBuffer);
if (parameterService.is(ParameterConstants.AUTO_SYNC_TRIGGERS)) {
Expand Down
Expand Up @@ -211,7 +211,19 @@ public boolean doesTriggerExist(String triggerId) {
}

public boolean doesTriggerExistForTable(String tableName) {
return sqlTemplate.queryForInt(getSql("countTriggerByTableNameSql"), tableName) > 0;
if (tableName.toLowerCase().startsWith(symmetricDialect.getTablePrefix().toLowerCase())) {
return doesTriggerExistForTable(tableName, true);
} else {
return doesTriggerExistForTable(tableName, false);
}
}

public boolean doesTriggerExistForTable(String tableName, boolean useTriggerHist) {
if (useTriggerHist) {
return sqlTemplate.queryForInt(getSql("countTriggerByTableNameFromTriggerHistSql"), tableName.toLowerCase(), tableName.toUpperCase()) > 0;
} else {
return sqlTemplate.queryForInt(getSql("countTriggerByTableNameSql"), tableName.toLowerCase(), tableName.toUpperCase()) > 0;
}
}

public void deleteTrigger(Trigger trigger) {
Expand Down Expand Up @@ -443,7 +455,7 @@ public List<TriggerHistory> getActiveTriggerHistories() {

public List<TriggerHistory> getActiveTriggerHistories(String tableName) {
return sqlTemplate.query(getSql("allTriggerHistSql", "triggerHistBySourceTableWhereSql"),
new TriggerHistoryMapper(), tableName);
new TriggerHistoryMapper(), tableName.toLowerCase(), tableName.toUpperCase());
}

protected List<Trigger> buildTriggersForSymmetricTables(String version,
Expand Down
Expand Up @@ -42,7 +42,10 @@ public TriggerRouterServiceSqlMap(IDatabasePlatform platform,
+ "select count(*) from $(trigger) where trigger_id=? ");

putSql("countTriggerByTableNameSql", ""
+ "select count(*) from $(trigger) where source_table_name=? ");
+ "select count(*) from $(trigger) where source_table_name=? OR source_table_name=? ");

putSql("countTriggerByTableNameFromTriggerHistSql", ""
+ "select count(*) from $(trigger_hist) where (source_table_name=? OR source_table_name=?) and inactive_time is null ");

putSql("deleteRouterSql", "" + "delete from $(router) where router_id=? ");

Expand Down Expand Up @@ -111,7 +114,7 @@ public TriggerRouterServiceSqlMap(IDatabasePlatform platform,
+ "where trigger_id=? and inactive_time is null ");

putSql("triggerHistBySourceTableWhereSql", ""
+ "where source_table_name=? and inactive_time is null ");
+ "where (source_table_name=? OR source_table_name=?) and inactive_time is null ");

putSql("latestTriggerHistSql",
""
Expand Down

0 comments on commit 91b68ab

Please sign in to comment.