From 4fa55af55d4e5cc22ed6650246b42aa944b83b0b Mon Sep 17 00:00:00 2001 From: "Hicks, Josh" Date: Wed, 30 Aug 2017 16:32:54 -0400 Subject: [PATCH] 0003244: AS400 support for versions less than 7 --- .../db/db2/Db2As400SymmetricDialect.java | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/symmetric-client/src/main/java/org/jumpmind/symmetric/db/db2/Db2As400SymmetricDialect.java b/symmetric-client/src/main/java/org/jumpmind/symmetric/db/db2/Db2As400SymmetricDialect.java index e030b0c602..251a5a61fb 100644 --- a/symmetric-client/src/main/java/org/jumpmind/symmetric/db/db2/Db2As400SymmetricDialect.java +++ b/symmetric-client/src/main/java/org/jumpmind/symmetric/db/db2/Db2As400SymmetricDialect.java @@ -21,14 +21,18 @@ package org.jumpmind.symmetric.db.db2; import org.jumpmind.db.platform.IDatabasePlatform; +import org.jumpmind.db.sql.ISqlTransaction; import org.jumpmind.symmetric.db.ISymmetricDialect; import org.jumpmind.symmetric.service.IParameterService; public class Db2As400SymmetricDialect extends Db2SymmetricDialect implements ISymmetricDialect { + boolean supportsGlobalVariables = false; + public Db2As400SymmetricDialect(IParameterService parameterService, IDatabasePlatform platform) { super(parameterService, platform); this.triggerTemplate = new Db2As400TriggerTemplate(this); + supportsGlobalVariables = platform.getSqlTemplate().getDatabaseMajorVersion() >= 7; } @Override @@ -40,7 +44,38 @@ protected boolean doesTriggerExistOnPlatform(String catalog, String schema, Stri "SELECT COUNT(*) FROM " + getSystemSchemaName() + ".SYSTRIGGERS WHERE TRIGNAME = ? AND TRIGSCHEMA = ?", new Object[] { triggerName.toUpperCase(), schema.toUpperCase() }) > 0; } + + @Override + public void enableSyncTriggers(ISqlTransaction transaction) { + if (supportsGlobalVariables) { + super.enableSyncTriggers(transaction); + } + } + + @Override + public void disableSyncTriggers(ISqlTransaction transaction, String nodeId) { + if (supportsGlobalVariables) { + super.disableSyncTriggers(transaction, nodeId); + } + } + @Override + public String getSyncTriggersExpression() { + return supportsGlobalVariables ? super.getSyncTriggersExpression() : ""; + } + + @Override + public String getSourceNodeExpression() { + return supportsGlobalVariables ? super.getSourceNodeExpression() : ""; + } + + @Override + public void createRequiredDatabaseObjects() { + if (supportsGlobalVariables) { + super.createRequiredDatabaseObjects(); + } + } + @Override protected String getSystemSchemaName() { return "QSYS2";