Skip to content

Commit

Permalink
0001119: When dead triggers are disabled SymmetricDS attempts to dele…
Browse files Browse the repository at this point in the history
…te triggers that don't exist. Causes warning in log file.
  • Loading branch information
chenson42 committed Mar 18, 2013
1 parent 44b53ad commit 0967f36
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 11 deletions.
Expand Up @@ -1281,12 +1281,20 @@ protected TriggerHistory rebuildTriggerIfNecessary(StringBuilder sqlBuffer,
TriggerHistory newTriggerHist = new TriggerHistory(table, trigger, reason);
int maxTriggerNameLength = symmetricDialect.getMaxTriggerNameLength();

newTriggerHist.setNameForInsertTrigger(getTriggerName(DataEventType.INSERT,
maxTriggerNameLength, trigger, table).toUpperCase());
newTriggerHist.setNameForUpdateTrigger(getTriggerName(DataEventType.UPDATE,
maxTriggerNameLength, trigger, table).toUpperCase());
newTriggerHist.setNameForDeleteTrigger(getTriggerName(DataEventType.DELETE,
maxTriggerNameLength, trigger, table).toUpperCase());
if (trigger.isSyncOnInsert()) {
newTriggerHist.setNameForInsertTrigger(getTriggerName(DataEventType.INSERT,
maxTriggerNameLength, trigger, table).toUpperCase());
}

if (trigger.isSyncOnUpdate()) {
newTriggerHist.setNameForUpdateTrigger(getTriggerName(DataEventType.UPDATE,
maxTriggerNameLength, trigger, table).toUpperCase());
}

if (trigger.isSyncOnDelete()) {
newTriggerHist.setNameForDeleteTrigger(getTriggerName(DataEventType.DELETE,
maxTriggerNameLength, trigger, table).toUpperCase());
}

String oldTriggerName = null;
String oldSourceSchema = null;
Expand All @@ -1303,8 +1311,10 @@ protected TriggerHistory rebuildTriggerIfNecessary(StringBuilder sqlBuffer,
oldTriggerName = newTriggerHist.getTriggerNameForDmlType(dmlType);
oldSourceSchema = trigger.getSourceSchemaName();
oldCatalogName = trigger.getSourceCatalogName();
triggerExists = symmetricDialect.doesTriggerExist(oldCatalogName, oldSourceSchema,
trigger.getSourceTableName(), oldTriggerName);
if (StringUtils.isNotBlank(oldTriggerName)) {
triggerExists = symmetricDialect.doesTriggerExist(oldCatalogName, oldSourceSchema,
trigger.getSourceTableName(), oldTriggerName);
}
}

if (!triggerExists && forceRebuild) {
Expand Down
6 changes: 3 additions & 3 deletions symmetric-core/src/main/resources/symmetric-schema.xml
Expand Up @@ -329,9 +329,9 @@
<column name="source_table_name" type="VARCHAR" size="255" required="true" description="The name of the source table that will have a trigger installed to watch for data changes." />
<column name="source_catalog_name" type="VARCHAR" size="255" description="The catalog name where the source table resides." />
<column name="source_schema_name" type="VARCHAR" size="255" description="The schema name where the source table resides." />
<column name="name_for_update_trigger" type="VARCHAR" size="255" required="true" description="The name used when the insert trigger was created." />
<column name="name_for_insert_trigger" type="VARCHAR" size="255" required="true" description="The name used when the update trigger was created." />
<column name="name_for_delete_trigger" type="VARCHAR" size="255" required="true" description="The name used when the delete trigger was created." />
<column name="name_for_update_trigger" type="VARCHAR" size="255" required="false" description="The name used when the insert trigger was created." />
<column name="name_for_insert_trigger" type="VARCHAR" size="255" required="false" description="The name used when the update trigger was created." />
<column name="name_for_delete_trigger" type="VARCHAR" size="255" required="false" description="The name used when the delete trigger was created." />
<column name="table_hash" type="BIGINT" required="true" description=" A hash of the table definition, used to detect changes in the definition." />
<column name="trigger_row_hash" type="BIGINT" required="true" description="A hash of the trigger definition. If changes are detected to the values that affect a trigger definition, then the trigger will be regenerated." />
<column name="column_names" type="LONGVARCHAR" required="true" description="The column names defined on the table. The column names are stored in comma-separated values (CSV) format." />
Expand Down

0 comments on commit 0967f36

Please sign in to comment.