This is an automated email from the ASF dual-hosted git repository.

ntimofeev pushed a commit to branch STABLE-4.2
in repository https://gitbox.apache.org/repos/asf/cayenne.git

commit 5378d71cb7e285e660709f8da47ecc272062096c
Author: Jurgen <5031427+ju...@users.noreply.github.com>
AuthorDate: Mon Apr 15 15:33:17 2024 +0200

    Added fix for Derby and Firebird
    
    (cherry picked from commit 19f8a5e976721d35201f290f69ad6e66d09ee519)
---
 .../main/java/org/apache/cayenne/dba/derby/sqltree/DerbyValueNode.java  | 2 +-
 .../java/org/apache/cayenne/dba/firebird/FirebirdSQLTreeProcessor.java  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/dba/derby/sqltree/DerbyValueNode.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/dba/derby/sqltree/DerbyValueNode.java
index 44b5ead05..d9c67abf6 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/dba/derby/sqltree/DerbyValueNode.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/dba/derby/sqltree/DerbyValueNode.java
@@ -37,7 +37,7 @@ public class DerbyValueNode extends ValueNode {
 
     protected void appendStringValue(QuotingAppendable buffer, CharSequence 
value) {
         if(getAttribute() == null || (getAttribute() != null && 
getAttribute().getType() == Types.CLOB)) {
-            buffer.append(" CAST(? AS 
VARCHAR(").append(value.length()).append("))");
+            buffer.append(" CAST(? AS 
VARCHAR(").append(Math.max(1,value.length())).append("))");
         } else {
             buffer.append(" ?");
         }
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/dba/firebird/FirebirdSQLTreeProcessor.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/dba/firebird/FirebirdSQLTreeProcessor.java
index 17e471533..a5e646c85 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/dba/firebird/FirebirdSQLTreeProcessor.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/dba/firebird/FirebirdSQLTreeProcessor.java
@@ -54,7 +54,7 @@ public class FirebirdSQLTreeProcessor extends 
BaseSQLTreeProcessor {
             protected void appendStringValue(QuotingAppendable buffer, 
CharSequence value) {
                 buffer.append("CAST(");
                 super.appendStringValue(buffer, value);
-                buffer.append(" AS 
VARCHAR(").append(value.length()).append("))");
+                buffer.append(" AS 
VARCHAR(").append(Math.max(1,value.length())).append("))");
             }
         });
     }

Reply via email to