Skip to content

Commit

Permalink
0003772: Cannot inactive table for sync when one of triggers is missing
Browse files Browse the repository at this point in the history
  • Loading branch information
erilong committed Oct 29, 2018
1 parent d8c6675 commit 3b03c85
Showing 1 changed file with 16 additions and 12 deletions.
Expand Up @@ -1343,20 +1343,14 @@ public void dropTriggers(TriggerHistory history) {

protected void dropTriggers(TriggerHistory history, StringBuilder sqlBuffer) {
try {
if (StringUtils.isNotBlank(history.getNameForInsertTrigger())) {
symmetricDialect.removeTrigger(sqlBuffer, history.getSourceCatalogName(), history.getSourceSchemaName(),
history.getNameForInsertTrigger(), history.getSourceTableName());
}
dropTrigger(sqlBuffer, history.getSourceCatalogName(), history.getSourceSchemaName(),
history.getNameForInsertTrigger(), history.getSourceTableName());

if (StringUtils.isNotBlank(history.getNameForDeleteTrigger())) {
symmetricDialect.removeTrigger(sqlBuffer, history.getSourceCatalogName(), history.getSourceSchemaName(),
history.getNameForDeleteTrigger(), history.getSourceTableName());
}
dropTrigger(sqlBuffer, history.getSourceCatalogName(), history.getSourceSchemaName(),
history.getNameForDeleteTrigger(), history.getSourceTableName());

if (StringUtils.isNotBlank(history.getNameForUpdateTrigger())) {
symmetricDialect.removeTrigger(sqlBuffer, history.getSourceCatalogName(), history.getSourceSchemaName(),
history.getNameForUpdateTrigger(), history.getSourceTableName());
}
dropTrigger(sqlBuffer, history.getSourceCatalogName(), history.getSourceSchemaName(),
history.getNameForUpdateTrigger(), history.getSourceTableName());

if (parameterService.is(ParameterConstants.AUTO_SYNC_TRIGGERS)) {
for (ITriggerCreationListener l : extensionService.getExtensionPointList(ITriggerCreationListener.class)) {
Expand All @@ -1381,6 +1375,16 @@ protected void dropTriggers(TriggerHistory history, StringBuilder sqlBuffer) {
log.error("Error while dropping triggers for table {}", history.getSourceTableName(), ex);
}
}

protected void dropTrigger(StringBuilder sqlBuffer, String catalog, String schema, String triggerName, String tableName) {
if (StringUtils.isNotBlank(triggerName)) {
try {
symmetricDialect.removeTrigger(sqlBuffer, catalog, schema, triggerName, tableName);
} catch (Throwable e) {
log.error("Error while dropping trigger {} for table {}", triggerName, tableName, e);
}
}
}

protected List<TriggerRouter> toList(Collection<List<TriggerRouter>> source) {
ArrayList<TriggerRouter> list = new ArrayList<TriggerRouter>();
Expand Down

0 comments on commit 3b03c85

Please sign in to comment.