Skip to content

Commit

Permalink
0004201: Failed to create update trigger for triggers that use and
Browse files Browse the repository at this point in the history
external_select with $(curTriggerValue)
# Conflicts:
#	symmetric-client/src/main/java/org/jumpmind/symmetric/db/ase/AseTriggerTemplate.java
#	symmetric-core/src/main/java/org/jumpmind/symmetric/db/AbstractTriggerTemplate.java
  • Loading branch information
Philip Marzullo committed Jul 13, 2022
1 parent 8d5510c commit e37808e
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 6 deletions.
Expand Up @@ -220,7 +220,7 @@ public AseTriggerTemplate(ISymmetricDialect symmetricDialect) {
+
" insert into $(defaultCatalog)$(defaultSchema)$(prefixName)_data (table_name, event_type, trigger_hist_id, pk_data, old_data, channel_id, transaction_id, source_node_id, external_data, create_time) \n"
+
" values('$(targetTableName)','D', $(triggerHistoryId), @OldPk, @OldDataRow, @ChannelId, @txid, @clientname, $(externalSelect), getdate())\n"
" values('$(targetTableName)','D', $(triggerHistoryId), @OldPk, @OldDataRow, @ChannelId, @txid, @clientname, $(externalSelectForDelete), getdate())\n"
+
" fetch DeleteDataCursor into @OldPk,@OldDataRow $(oldKeyVariables), @ChannelId \n"
+
Expand Down Expand Up @@ -250,7 +250,7 @@ public AseTriggerTemplate(ISymmetricDialect symmetricDialect) {
+
" insert into $(defaultCatalog)$(defaultSchema)$(prefixName)_data (table_name, event_type, trigger_hist_id, row_data, channel_id, transaction_id, source_node_id, external_data, create_time) \n"
+
" values('$(targetTableName)','I', $(triggerHistoryId), @DataRow, @ChannelId, @txid, @clientname, $(externalSelect), getdate()) \n"
" values('$(targetTableName)','I', $(triggerHistoryId), @DataRow, @ChannelId, @txid, @clientname, $(externalSelectForInsert), getdate()) \n"
+
" fetch InsertDataCursor into @DataRow $(newKeyVariables), @ChannelId \n"
+
Expand Down
Expand Up @@ -188,7 +188,7 @@ public MsSqlTriggerTemplate(ISymmetricDialect symmetricDialect) {
" select '$(targetTableName)','D', $(triggerHistoryId), $(oldKeys), \n" +
" $(specialSqlServerSybaseChannelExpression), $(txIdExpression), \n" +
defaultCatalog + "dbo.$(prefixName)_node_disabled(), \n" +
" $(externalSelect), current_timestamp \n" +
" $(externalSelectForDelete), current_timestamp \n" +
" from deleted \n" +
" where $(syncOnDeleteCondition) \n" +
" insert into " + defaultCatalog + "$(defaultSchema)$(prefixName)_data \n" +
Expand All @@ -197,7 +197,7 @@ public MsSqlTriggerTemplate(ISymmetricDialect symmetricDialect) {
" select '$(targetTableName)','I', $(triggerHistoryId), $(columns), \n" +
" $(channelExpression), $(txIdExpression), \n" +
defaultCatalog + "dbo.$(prefixName)_node_disabled(), \n" +
" $(externalSelect), current_timestamp \n" +
" $(externalSelectForInsert), current_timestamp \n" +
" $(if:containsBlobClobColumns) \n" +
" from inserted \n" +
" inner join $(schemaName)$(tableName) $(origTableAlias) on $(tableNewPrimaryKeyJoin) \n" +
Expand Down Expand Up @@ -282,7 +282,7 @@ public MsSqlTriggerTemplate(ISymmetricDialect symmetricDialect) {
" select '$(targetTableName)','D', $(triggerHistoryId), $(oldKeys), \n" +
" $(specialSqlServerSybaseChannelExpression), \n" +
" $(txIdExpression), " + defaultCatalog + "dbo.$(prefixName)_node_disabled(), \n" +
" $(externalSelect), current_timestamp \n" +
" $(externalSelectForDelete), current_timestamp \n" +
" from deleted \n" +
" where $(syncOnDeleteCondition) \n" +
" insert into " + defaultCatalog + "$(defaultSchema)$(prefixName)_data \n" +
Expand All @@ -291,7 +291,7 @@ public MsSqlTriggerTemplate(ISymmetricDialect symmetricDialect) {
" select '$(targetTableName)','R', $(triggerHistoryId), $(newKeys), \n" +
" $(channelExpression), $(txIdExpression), \n" +
defaultCatalog + "dbo.$(prefixName)_node_disabled(), \n" +
" $(externalSelect), current_timestamp \n" +
" $(externalSelectForInsert), current_timestamp \n" +
" $(if:containsBlobClobColumns) \n" +
" from inserted \n" +
" inner join $(schemaName)$(tableName) $(origTableAlias) on $(tableNewPrimaryKeyJoin) \n" +
Expand Down
Expand Up @@ -415,6 +415,12 @@ protected String replaceTemplateVariables(DataEventType dml, Trigger trigger,
symmetricDialect.preProcessTriggerSqlClause(triggerExpression), ddl);
ddl = FormatUtils.replace("channelExpression", symmetricDialect.preProcessTriggerSqlClause(
getChannelExpression(trigger, history, originalTable)), ddl);
ddl = FormatUtils.replace("externalSelectForDelete", (StringUtils.isBlank(trigger.getExternalSelect()) ? "null"
: "(" + convertExternalSelectToDelete(symmetricDialect.preProcessTriggerSqlClause(trigger.getExternalSelect()))
+ ")"), ddl);
ddl = FormatUtils.replace("externalSelectForInsert", (StringUtils.isBlank(trigger.getExternalSelect()) ? "null"
: "(" + convertExternalSelectToInsert(symmetricDialect.preProcessTriggerSqlClause(trigger.getExternalSelect()))
+ ")"), ddl);
ddl = FormatUtils.replace("externalSelect", (StringUtils.isBlank(trigger.getExternalSelect()) ? "null"
: "(" + symmetricDialect.preProcessTriggerSqlClause(trigger.getExternalSelect())
+ ")"), ddl);
Expand Down Expand Up @@ -559,6 +565,18 @@ protected String replaceTemplateVariables(DataEventType dml, Trigger trigger,
}
return ddl;
}

private String convertExternalSelectToDelete(String externalSelect) {
externalSelect = FormatUtils.replace("curTriggerValue", oldTriggerValue, externalSelect);
externalSelect = FormatUtils.replace("curColumnPrefix", oldColumnPrefix, externalSelect);
return externalSelect;
}

private String convertExternalSelectToInsert(String externalSelect) {
externalSelect = FormatUtils.replace("curTriggerValue", newTriggerValue, externalSelect);
externalSelect = FormatUtils.replace("curColumnPrefix", newColumnPrefix, externalSelect);
return externalSelect;
}

private String getChannelExpression() {
return null;
Expand Down

0 comments on commit e37808e

Please sign in to comment.