From c450f5e1471c0ba9e5b426b2b0e57ee2caff6c17 Mon Sep 17 00:00:00 2001 From: Philip Marzullo Date: Wed, 28 Apr 2021 07:49:27 -0400 Subject: [PATCH] 0004964: Sybase: change trigger to be more efficient and to allow use of tx_id_expression in sym_trigger --- .../symmetric/db/ase/AseSymmetricDialect.java | 2 +- .../symmetric/db/ase/AseTriggerTemplate.java | 22 ++++++++----------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/symmetric-client/src/main/java/org/jumpmind/symmetric/db/ase/AseSymmetricDialect.java b/symmetric-client/src/main/java/org/jumpmind/symmetric/db/ase/AseSymmetricDialect.java index 7bcbaf425b..129608cbc0 100644 --- a/symmetric-client/src/main/java/org/jumpmind/symmetric/db/ase/AseSymmetricDialect.java +++ b/symmetric-client/src/main/java/org/jumpmind/symmetric/db/ase/AseSymmetricDialect.java @@ -214,7 +214,7 @@ public boolean supportsTransactionId() { @Override public boolean isTransactionIdOverrideSupported() { - return false; + return true; } public void cleanDatabase() { diff --git a/symmetric-client/src/main/java/org/jumpmind/symmetric/db/ase/AseTriggerTemplate.java b/symmetric-client/src/main/java/org/jumpmind/symmetric/db/ase/AseTriggerTemplate.java index 1a0ef4699e..e22c54c5a7 100644 --- a/symmetric-client/src/main/java/org/jumpmind/symmetric/db/ase/AseTriggerTemplate.java +++ b/symmetric-client/src/main/java/org/jumpmind/symmetric/db/ase/AseTriggerTemplate.java @@ -63,14 +63,13 @@ public AseTriggerTemplate(ISymmetricDialect symmetricDialect) { "create trigger $(triggerName) on $(schemaName)$(tableName) for insert " + getOrderClause() + " as\n" + " begin \n" + " set nocount on \n" + -" declare @clientapplname varchar(50) \n" + -" select @clientapplname = clientapplname from master.dbo.sysprocesses where spid = @@spid \n" + " declare @txid varchar(50) \n" + " if (@@TRANCOUNT > 0) begin \n" + " select @txid = $(txIdExpression) \n" + " end \n" + +" declare @clientapplname varchar(50) \n" + " declare @clientname varchar(50) \n" + -" select @clientname = clientname from master.dbo.sysprocesses where spid = @@spid and clientapplname = 'SymmetricDS' \n" + +" select @clientapplname = clientapplname, @clientname = case when clientapplname = 'SymmetricDS' then clientname else null end from master.dbo.sysprocesses where spid = @@spid \n" + " declare @DataRow varchar(16384) \n" + " declare @ChannelId varchar(128) \n" + " $(declareNewKeyVariables) \n" + @@ -106,15 +105,14 @@ public AseTriggerTemplate(ISymmetricDialect symmetricDialect) { " declare @DataRow varchar(16384) \n" + " declare @OldPk varchar(2000) \n" + " declare @OldDataRow varchar(16384) \n" + -" declare @clientapplname varchar(50) \n" + " declare @ChannelId varchar(128) \n" + -" select @clientapplname = clientapplname from master.dbo.sysprocesses where spid = @@spid \n" + " declare @txid varchar(50) \n" + " if (@@TRANCOUNT > 0) begin \n" + " select @txid = $(txIdExpression) \n" + " end \n" + +" declare @clientapplname varchar(50) \n" + " declare @clientname varchar(50) \n" + -" select @clientname = clientname from master.dbo.sysprocesses where spid = @@spid and clientapplname = 'SymmetricDS' \n" + +" select @clientapplname = clientapplname, @clientname = case when clientapplname = 'SymmetricDS' then clientname else null end from master.dbo.sysprocesses where spid = @@spid \n" + " $(declareOldKeyVariables) \n" + " $(declareNewKeyVariables) \n" + " $(custom_before_update_text) \n" + @@ -147,10 +145,9 @@ public AseTriggerTemplate(ISymmetricDialect symmetricDialect) { " declare @DataRow varchar(16384) \n" + " declare @OldPk varchar(2000) \n" + " declare @OldDataRow varchar(16384) \n" + -" declare @clientapplname varchar(50) \n" + -" select @clientapplname = clientapplname from master.dbo.sysprocesses where spid = @@spid \n" + -" declare @clientname varchar(50) \n" + -" select @clientname = clientname from master.dbo.sysprocesses where spid = @@spid and clientapplname = 'SymmetricDS' \n" + +" declare @clientapplname varchar(50) \n" + +" declare @clientname varchar(50) \n" + +" select @clientapplname = clientapplname, @clientname = case when clientapplname = 'SymmetricDS' then clientname else null end from master.dbo.sysprocesses where spid = @@spid \n" + " declare @ChannelId varchar(128) \n" + " $(declareOldKeyVariables) \n" + " $(declareNewKeyVariables) \n" + @@ -197,15 +194,14 @@ public AseTriggerTemplate(ISymmetricDialect symmetricDialect) { " set nocount on \n" + " declare @OldPk varchar(2000) \n" + " declare @OldDataRow varchar(16384) \n" + -" declare @clientapplname varchar(50) \n" + " declare @ChannelId varchar(128) \n" + -" select @clientapplname = clientapplname from master.dbo.sysprocesses where spid = @@spid \n" + " declare @txid varchar(50) \n" + " if (@@TRANCOUNT > 0) begin \n" + " select @txid = $(txIdExpression) \n" + " end \n" + +" declare @clientapplname varchar(50) \n" + " declare @clientname varchar(50) \n" + -" select @clientname = clientname from master.dbo.sysprocesses where spid = @@spid and clientapplname = 'SymmetricDS' \n" + +" select @clientapplname = clientapplname, @clientname = case when clientapplname = 'SymmetricDS' then clientname else null end from master.dbo.sysprocesses where spid = @@spid \n" + " $(declareOldKeyVariables) \n" + " $(custom_before_delete_text) \n" + " if ($(syncOnIncomingBatchCondition)) begin \n" +