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]