diff --git a/symmetric-client/src/main/java/org/jumpmind/symmetric/db/ase/Ase16TriggerTemplate.java b/symmetric-client/src/main/java/org/jumpmind/symmetric/db/ase/Ase16TriggerTemplate.java new file mode 100644 index 0000000000..b51e7b0603 --- /dev/null +++ b/symmetric-client/src/main/java/org/jumpmind/symmetric/db/ase/Ase16TriggerTemplate.java @@ -0,0 +1,36 @@ +/** + * Licensed to JumpMind Inc under one or more contributor + * license agreements. See the NOTICE file distributed + * with this work for additional information regarding + * copyright ownership. JumpMind Inc licenses this file + * to you under the GNU General Public License, version 3.0 (GPLv3) + * (the "License"); you may not use this file except in compliance + * with the License. + * + * You should have received a copy of the GNU General Public License, + * version 3.0 (GPLv3) along with this library; if not, see + * . + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.jumpmind.symmetric.db.ase; + +import org.jumpmind.symmetric.db.ISymmetricDialect; + +public class Ase16TriggerTemplate extends AseTriggerTemplate { + + public Ase16TriggerTemplate(ISymmetricDialect symmetricDialect) { + super(symmetricDialect); + } + + @Override + protected String getOrderClause() { + return "order 1"; + } + +} 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 0fc2745552..7bcbaf425b 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 @@ -53,7 +53,11 @@ public class AseSymmetricDialect extends AbstractSymmetricDialect implements ISy public AseSymmetricDialect(IParameterService parameterService, IDatabasePlatform platform) { super(parameterService, platform); - this.triggerTemplate = new AseTriggerTemplate(this); + if (getMajorVersion() >= 16) { + this.triggerTemplate = new Ase16TriggerTemplate(this); + } else { + this.triggerTemplate = new AseTriggerTemplate(this); + } } @Override 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 ce47deab3e..1a0ef4699e 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 @@ -60,7 +60,7 @@ public AseTriggerTemplate(ISymmetricDialect symmetricDialect) { sqlTemplates = new HashMap(); sqlTemplates.put("insertTriggerTemplate" , -"create trigger $(triggerName) on $(schemaName)$(tableName) for insert as \n" + +"create trigger $(triggerName) on $(schemaName)$(tableName) for insert " + getOrderClause() + " as\n" + " begin \n" + " set nocount on \n" + " declare @clientapplname varchar(50) \n" + @@ -100,7 +100,7 @@ public AseTriggerTemplate(ISymmetricDialect symmetricDialect) { sqlTemplates.put("updateTriggerTemplate" , -"create trigger $(triggerName) on $(schemaName)$(tableName) for update as \n" + +"create trigger $(triggerName) on $(schemaName)$(tableName) for update " + getOrderClause() + " as\n" + " begin \n" + " set nocount on \n" + " declare @DataRow varchar(16384) \n" + @@ -140,7 +140,7 @@ public AseTriggerTemplate(ISymmetricDialect symmetricDialect) { " end " ); sqlTemplates.put("updateHandleKeyUpdatesTriggerTemplate" , -"create trigger $(triggerName) on $(schemaName)$(tableName) for update as \n" + +"create trigger $(triggerName) on $(schemaName)$(tableName) for update " + getOrderClause() + " as\n" + " begin \n" + " set nocount on \n" + " declare @TransactionId varchar(1000) \n" + @@ -192,7 +192,7 @@ public AseTriggerTemplate(ISymmetricDialect symmetricDialect) { sqlTemplates.put("deleteTriggerTemplate" , -"create trigger $(triggerName) on $(schemaName)$(tableName) for delete as \n" + +"create trigger $(triggerName) on $(schemaName)$(tableName) for delete " + getOrderClause() + " as\n" + " begin \n" + " set nocount on \n" + " declare @OldPk varchar(2000) \n" + @@ -229,6 +229,10 @@ public AseTriggerTemplate(ISymmetricDialect symmetricDialect) { "select $(columns) from $(schemaName)$(tableName) t where $(whereClause) " ); } + protected String getOrderClause() { + return ""; + } + @Override protected String replaceTemplateVariables(DataEventType dml, Trigger trigger, TriggerHistory history, Channel channel, String tablePrefix, Table originalTable, Table table,