From d999c457481d004681b69a1a48588ff4f493ee54 Mon Sep 17 00:00:00 2001 From: chenson42 Date: Sun, 23 Jun 2013 21:52:12 +0000 Subject: [PATCH] 0000949: reload table doesn't work with wildcard triggers --- .../service/impl/TriggerRouterService.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) 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);