From 4030b2e4d91f7f95bc8ca63d4b2ea6317313a8ab Mon Sep 17 00:00:00 2001 From: Philip Marzullo Date: Fri, 22 Nov 2019 10:42:40 -0500 Subject: [PATCH] 0004159: INTERBASE Length of ROW_DATA and OLD_DATA are now only varchar(3840) !! --- .../interbase/InterbaseSymmetricDialect.java | 19 +++++++++++++++++++ .../interbase/InterbaseDdlBuilder.java | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/symmetric-client/src/main/java/org/jumpmind/symmetric/db/interbase/InterbaseSymmetricDialect.java b/symmetric-client/src/main/java/org/jumpmind/symmetric/db/interbase/InterbaseSymmetricDialect.java index ffa4a18966..830b7fc3c9 100644 --- a/symmetric-client/src/main/java/org/jumpmind/symmetric/db/interbase/InterbaseSymmetricDialect.java +++ b/symmetric-client/src/main/java/org/jumpmind/symmetric/db/interbase/InterbaseSymmetricDialect.java @@ -20,9 +20,13 @@ */ package org.jumpmind.symmetric.db.interbase; +import java.sql.Types; import java.util.List; import org.apache.commons.lang.StringUtils; +import org.jumpmind.db.model.Column; +import org.jumpmind.db.model.Database; +import org.jumpmind.db.model.TypeMap; import org.jumpmind.db.platform.IDatabasePlatform; import org.jumpmind.db.sql.ISqlTransaction; import org.jumpmind.db.sql.mapper.StringMapper; @@ -228,4 +232,19 @@ public String massageDataExtractionSql(String sql, boolean isContainsBigLob) { public long getCurrentSequenceValue(SequenceIdentifier identifier) { return platform.getSqlTemplate().queryForLong("select gen_id(GEN_" + getSequenceName(identifier) + ", 0) from rdb$database"); } + + @Override + public Database readSymmetricSchemaFromXml() { + Database db = super.readSymmetricSchemaFromXml(); + // Change sym_trigger table column description to only allow 1024 characters to make row width less than 64K characters + String prefix = parameterService.getTablePrefix(); + if (StringUtils.isNotBlank(prefix) && !prefix.endsWith("_")) { + prefix = prefix + "_"; + } + Column description = db.findTable(prefix+"trigger").findColumn("description"); + description.setJdbcTypeCode(Types.VARCHAR); + description.setMappedType(TypeMap.VARCHAR); + description.setSize("1024"); + return db; + } } diff --git a/symmetric-db/src/main/java/org/jumpmind/db/platform/interbase/InterbaseDdlBuilder.java b/symmetric-db/src/main/java/org/jumpmind/db/platform/interbase/InterbaseDdlBuilder.java index 0ad4da34f9..65fb7e5f3a 100644 --- a/symmetric-db/src/main/java/org/jumpmind/db/platform/interbase/InterbaseDdlBuilder.java +++ b/symmetric-db/src/main/java/org/jumpmind/db/platform/interbase/InterbaseDdlBuilder.java @@ -46,7 +46,7 @@ */ public class InterbaseDdlBuilder extends AbstractDdlBuilder { - public static int SWITCH_TO_LONGVARCHAR_SIZE = 3840; + public static int SWITCH_TO_LONGVARCHAR_SIZE = 4096; public InterbaseDdlBuilder() {