From efe189c21db7b1ac367828b7ab173d261e34e705 Mon Sep 17 00:00:00 2001 From: Orange flavored banana <106858113+moonwhistle@users.noreply.github.com> Date: Wed, 5 Nov 2025 11:39:48 +0900 Subject: [PATCH] refactor(jdbc): adjust empty stream handling and memory usage in setBinaryStream and setUnicodeStream --- .../main/java/tech/turso/jdbc4/JDBC4PreparedStatement.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/bindings/java/src/main/java/tech/turso/jdbc4/JDBC4PreparedStatement.java b/bindings/java/src/main/java/tech/turso/jdbc4/JDBC4PreparedStatement.java index 0a698eb24..17ffecc15 100644 --- a/bindings/java/src/main/java/tech/turso/jdbc4/JDBC4PreparedStatement.java +++ b/bindings/java/src/main/java/tech/turso/jdbc4/JDBC4PreparedStatement.java @@ -217,7 +217,7 @@ public final class JDBC4PreparedStatement extends JDBC4Statement implements Prep offset += readBytes; } if (offset == 0) { - this.statement.bindNull(parameterIndex); + this.statement.bindText(parameterIndex, ""); } else { String text = new String(buffer, 0, offset, StandardCharsets.UTF_8); this.statement.bindText(parameterIndex, text); @@ -249,9 +249,10 @@ public final class JDBC4PreparedStatement extends JDBC4Statement implements Prep } if (offset == 0) { this.statement.bindNull(parameterIndex); + } else if (offset == buffer.length) { + this.statement.bindBlob(parameterIndex, buffer); } else { - byte[] actualData = Arrays.copyOf(buffer, offset); - this.statement.bindBlob(parameterIndex, actualData); + this.statement.bindBlob(parameterIndex, Arrays.copyOf(buffer, offset)); } } catch (IOException e) { throw new SQLException("Error reading binary stream", e);