From 491bcb3e435609fa7381b1ac47de6c6f74199616 Mon Sep 17 00:00:00 2001 From: chenson42 Date: Mon, 10 Nov 2014 23:46:01 +0000 Subject: [PATCH] 0002062: Slow SYM_DATA reads on Firebird --- .../db/firebird/FirebirdSymmetricDialect.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/symmetric-client/src/main/java/org/jumpmind/symmetric/db/firebird/FirebirdSymmetricDialect.java b/symmetric-client/src/main/java/org/jumpmind/symmetric/db/firebird/FirebirdSymmetricDialect.java index 2e37785784..486874cbea 100644 --- a/symmetric-client/src/main/java/org/jumpmind/symmetric/db/firebird/FirebirdSymmetricDialect.java +++ b/symmetric-client/src/main/java/org/jumpmind/symmetric/db/firebird/FirebirdSymmetricDialect.java @@ -29,6 +29,7 @@ import org.jumpmind.db.util.BinaryEncoding; import org.jumpmind.symmetric.db.AbstractSymmetricDialect; import org.jumpmind.symmetric.db.ISymmetricDialect; +import org.jumpmind.symmetric.model.Channel; import org.jumpmind.symmetric.model.Trigger; import org.jumpmind.symmetric.service.IParameterService; import org.springframework.jdbc.UncategorizedSQLException; @@ -164,4 +165,14 @@ public void cleanupTriggers() { log.info("Remove {} triggers", count); } } + + @Override + public String massageDataExtractionSql(String sql, Channel channel) { + if (channel != null && !channel.isContainsBigLob()) { + sql = StringUtils.replace(sql, "d.row_data", "cast(d.row_data as varchar(10000))"); + sql = StringUtils.replace(sql, "d.old_data", "cast(d.old_data as varchar(10000))"); + sql = StringUtils.replace(sql, "d.pk_data", "cast(d.pk_data as varchar(500))"); + } + return sql; + } }