Changeset: 0a22044eee9c for monetdb-java
URL: https://dev.monetdb.org/hg/monetdb-java/rev/0a22044eee9c
Modified Files:
        src/main/java/org/monetdb/jdbc/MonetPreparedStatement.java
Branch: default
Log Message:

Optimize setBytes() implementation. For the 16 hex codes use a char[] and 
direct array indexing instead of a String and calling charAt().


diffs (24 lines):

diff --git a/src/main/java/org/monetdb/jdbc/MonetPreparedStatement.java 
b/src/main/java/org/monetdb/jdbc/MonetPreparedStatement.java
--- a/src/main/java/org/monetdb/jdbc/MonetPreparedStatement.java
+++ b/src/main/java/org/monetdb/jdbc/MonetPreparedStatement.java
@@ -764,7 +764,7 @@ public class MonetPreparedStatement
                setValue(parameterIndex, Byte.toString(x));
        }
 
-       static final String HEXES = "0123456789ABCDEF";
+       static final char[] HEXES = 
{'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
        /**
         * Sets the designated parameter to the given Java array of bytes. The
         * driver converts this to an SQL VARBINARY or LONGVARBINARY (depending
@@ -787,8 +787,9 @@ public class MonetPreparedStatement
                hex.append("blob '");   // add a casting prefix
                // convert the bytes into hex codes
                for (int i = 0; i < len; i++) {
-                       hex.append(HEXES.charAt((x[i] & 0xF0) >> 4))
-                          .append(HEXES.charAt((x[i] & 0x0F)));
+                       byte b = x[i];
+                       hex.append(HEXES[(b & 0xF0) >> 4])
+                          .append(HEXES[(b & 0x0F)]);
                }
                hex.append("'");        // end of hex string value
                setValue(parameterIndex, hex.toString());
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to