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 ab9ea30420..ea124e7936 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 @@ -61,6 +61,7 @@ import org.jumpmind.symmetric.service.INodeService; import org.jumpmind.symmetric.service.ITriggerRouterService; import org.jumpmind.symmetric.statistic.IStatisticManager; +import org.jumpmind.util.FormatUtils; /** * @see ITriggerRouterService @@ -236,19 +237,24 @@ public TriggerHistory findTriggerHistory(String catalogName, String schemaName, public List findTriggerHistories(String catalogName, String schemaName, String tableName) { List listToReturn = new ArrayList(); - List triggerHistories = sqlTemplate - .query(getSql("allTriggerHistSql", "triggerHistBySourceTableWhereSql"), - new TriggerHistoryMapper(), new Object[] { tableName }, - new int[] { Types.VARCHAR }); + List triggerHistories = getActiveTriggerHistories(); if (triggerHistories != null && triggerHistories.size() > 0) { for (TriggerHistory triggerHistory : triggerHistories) { boolean matches = true; if (StringUtils.isNotBlank(catalogName)) { matches = catalogName.equals(triggerHistory.getSourceCatalogName()); } + if (matches && StringUtils.isNotBlank(schemaName)) { matches = schemaName.equals(triggerHistory.getSourceSchemaName()); } + + if (matches && StringUtils.isNotBlank(tableName)) { + boolean ignoreCase = parameterService.is(ParameterConstants.DB_METADATA_IGNORE_CASE) && + !FormatUtils.isMixedCase(tableName); + matches = ignoreCase ? triggerHistory.getSourceTableName().equalsIgnoreCase(tableName) : + triggerHistory.getSourceTableName().equals(tableName); + } if (matches) { listToReturn.add(triggerHistory);