diff --git a/symmetric-client/src/main/java/org/jumpmind/symmetric/db/nuodb/NuoDbSymmetricDialect.java b/symmetric-client/src/main/java/org/jumpmind/symmetric/db/nuodb/NuoDbSymmetricDialect.java index c804d52a37..e2b6a492ec 100644 --- a/symmetric-client/src/main/java/org/jumpmind/symmetric/db/nuodb/NuoDbSymmetricDialect.java +++ b/symmetric-client/src/main/java/org/jumpmind/symmetric/db/nuodb/NuoDbSymmetricDialect.java @@ -20,9 +20,12 @@ */ package org.jumpmind.symmetric.db.nuodb; +import java.util.List; + import org.jumpmind.db.platform.IDatabasePlatform; import org.jumpmind.db.platform.PermissionType; import org.jumpmind.db.sql.ISqlTransaction; +import org.jumpmind.db.sql.mapper.StringMapper; import org.jumpmind.db.util.BinaryEncoding; import org.jumpmind.symmetric.common.ParameterConstants; import org.jumpmind.symmetric.db.AbstractSymmetricDialect; @@ -132,6 +135,18 @@ public void removeTrigger(StringBuilder sqlBuffer, String catalogName, String sc } } } + + @Override + public void cleanupTriggers() { + List names = platform.getSqlTemplate().query("select triggername from system.triggers where triggername like '"+parameterService.getTablePrefix().toUpperCase()+"_%'", new StringMapper()); + int count = 0; + for (String name : names) { + count += platform.getSqlTemplate().update("drop trigger " + name + " if exists"); + } + if (count > 0) { + log.info("Remove {} triggers", count); + } + } public void disableSyncTriggers(ISqlTransaction transaction, String nodeId) { transaction.prepareAndExecute("select " + this.parameterService.getTablePrefix() + "_set_session_variable('" + SYNC_TRIGGERS_DISABLED_USER_VARIABLE + "', '1') from dual");