From ee78c3305d995084689e41a6921e41a01fce130f Mon Sep 17 00:00:00 2001 From: Philip Marzullo Date: Fri, 4 Sep 2020 09:29:40 -0400 Subject: [PATCH] 0004470: Database name with special character like minus sign, fails to create trigger --- .../db/mysql/MySqlSymmetricDialect.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/symmetric-client/src/main/java/org/jumpmind/symmetric/db/mysql/MySqlSymmetricDialect.java b/symmetric-client/src/main/java/org/jumpmind/symmetric/db/mysql/MySqlSymmetricDialect.java index d48ac1c0f9..cfc5449812 100644 --- a/symmetric-client/src/main/java/org/jumpmind/symmetric/db/mysql/MySqlSymmetricDialect.java +++ b/symmetric-client/src/main/java/org/jumpmind/symmetric/db/mysql/MySqlSymmetricDialect.java @@ -175,13 +175,21 @@ protected boolean doesTriggerExistOnPlatform(String catalog, String schema, Stri @Override public void removeTrigger(StringBuilder sqlBuffer, String catalogName, String schemaName, String triggerName, String tableName, ISqlTransaction transaction) { - if (catalogName == null || platform.getDefaultCatalog().equals(catalogName)) { + boolean ignoreCase = + parameterService.is(ParameterConstants.DB_METADATA_IGNORE_CASE); + if (catalogName == null || + (ignoreCase && catalogName.equalsIgnoreCase(platform.getDefaultCatalog())) || + (!ignoreCase && catalogName.equals(platform.getDefaultCatalog()))) + { catalogName = ""; } else { - if (parameterService.is(ParameterConstants.DB_METADATA_IGNORE_CASE)) { - catalogName = platform.alterCaseToMatchDatabaseDefaultCase(catalogName); + if (ignoreCase) { + catalogName = + platform.alterCaseToMatchDatabaseDefaultCase(catalogName); } - catalogName = platform.getDatabaseInfo().getDelimiterToken() + catalogName + platform.getDatabaseInfo().getDelimiterToken() + "."; + catalogName = + platform.getDatabaseInfo().getDelimiterToken() + catalogName + + platform.getDatabaseInfo().getDelimiterToken() + "."; } final String sql = "drop trigger if exists " + catalogName + triggerName; logSql(sql, sqlBuffer);