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

asf-gitbox-commits pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git

commit 35675565d9aa3ff53168587fa946851b99353f9b
Author: Andrus Adamchik <[email protected]>
AuthorDate: Mon Jul 6 08:50:19 2026 -0400

    CAY-2912 Compact SQL logger
    
    proper byte[] param logging
---
 .../java/org/apache/cayenne/log/SQLBindingRenderer.java   |  6 ++++++
 .../java/org/apache/cayenne/log/Slf4jSQLLoggerTest.java   | 15 +++++++++++++++
 2 files changed, 21 insertions(+)

diff --git 
a/cayenne/src/main/java/org/apache/cayenne/log/SQLBindingRenderer.java 
b/cayenne/src/main/java/org/apache/cayenne/log/SQLBindingRenderer.java
index 6a103aa54..409dc460f 100644
--- a/cayenne/src/main/java/org/apache/cayenne/log/SQLBindingRenderer.java
+++ b/cayenne/src/main/java/org/apache/cayenne/log/SQLBindingRenderer.java
@@ -27,6 +27,7 @@ import 
org.apache.cayenne.access.translator.TranslatedProcedure;
 import org.apache.cayenne.access.translator.TranslatedSQL;
 import org.apache.cayenne.access.translator.TranslatedSelect;
 import org.apache.cayenne.access.translator.TranslatedStatement;
+import org.apache.cayenne.access.types.ByteArrayType;
 import org.apache.cayenne.access.types.ExtendedType;
 
 import java.util.Map;
@@ -168,6 +169,11 @@ class SQLBindingRenderer {
         if (value instanceof Number || value instanceof Boolean) {
             return value.toString();
         }
+        if (value instanceof byte[] bytes) {
+            StringBuilder buffer = new StringBuilder();
+            ByteArrayType.logBytes(buffer, bytes);
+            return buffer.toString();
+        }
         return "'" + value + "'";
     }
 }
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/log/Slf4jSQLLoggerTest.java 
b/cayenne/src/test/java/org/apache/cayenne/log/Slf4jSQLLoggerTest.java
index 8b0cbc1e2..0c6853f24 100644
--- a/cayenne/src/test/java/org/apache/cayenne/log/Slf4jSQLLoggerTest.java
+++ b/cayenne/src/test/java/org/apache/cayenne/log/Slf4jSQLLoggerTest.java
@@ -143,6 +143,21 @@ public class Slf4jSQLLoggerTest {
                 line(logger, batch, "updated:", 1));
     }
 
+    @Test
+    public void batchLineRendersByteArrayAsHex() {
+        PSBatchParameter binId = new PSBatchParameter(
+                new Object[]{new byte[]{1, 2, (byte) 0xAB}}, 1, Types.BINARY, 
0, new DbAttribute("BIN_ID"));
+        PSBatchParameter name = new PSBatchParameter(
+                new Object[]{"master1"}, 2, Types.VARCHAR, 0, new 
DbAttribute("NAME"));
+
+        TranslatedBatch batch = new TranslatedBatch(
+                "INSERT INTO BINARY_PK_TEST1(BIN_ID, NAME) VALUES(?, ?)", new 
PSBatchParameter[]{binId, name});
+
+        assertEquals(
+                "INSERT INTO BINARY_PK_TEST1(BIN_ID, NAME) VALUES(?, ?) | 
bind:[BIN_ID:<0102AB>,NAME:'master1'] updated:1",
+                line(logger, batch, "updated:", 1));
+    }
+
     @Test
     public void batchLineShowsAllRowsBelowThreshold() {
         PSBatchParameter id = new PSBatchParameter(

Reply via email to