Changeset: 32f246853ec4 for monetdb-java
URL: https://dev.monetdb.org/hg/monetdb-java/rev/32f246853ec4
Modified Files:
src/main/java/org/monetdb/jdbc/MonetPreparedStatement.java
src/main/java/org/monetdb/jdbc/MonetResultSet.java
src/main/java/org/monetdb/jdbc/MonetResultSetMetaData.java
Branch: default
Log Message:
Optimisation, call connection.mapClobAsVarChar() and
connection.mapBlobAsVarBinary() outside the for-loop, as it does not change.
diffs (82 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
@@ -179,6 +179,8 @@ public class MonetPreparedStatement
final ResultSet rs = super.getResultSet();
if (rs != null) {
// System.out.println("After super.getResultSet();");
+ final boolean mapClobAsVarChar =
connection.mapClobAsVarChar();
+ final boolean mapBlobAsVarBinary =
connection.mapBlobAsVarBinary();
final int type_colnr = rs.findColumn("type");
final int digits_colnr = rs.findColumn("digits");
final int scale_colnr = rs.findColumn("scale");
@@ -188,13 +190,11 @@ public class MonetPreparedStatement
for (int i = 0; rs.next() && i < size; i++) {
monetdbType[i] = rs.getString(type_colnr);
javaType[i] =
MonetDriver.getJdbcSQLType(monetdbType[i]);
- if (javaType[i] == Types.CLOB) {
- if (connection.mapClobAsVarChar())
- javaType[i] = Types.VARCHAR;
+ if (javaType[i] == Types.CLOB &&
mapClobAsVarChar) {
+ javaType[i] = Types.VARCHAR;
} else
- if (javaType[i] == Types.BLOB) {
- if (connection.mapBlobAsVarBinary())
- javaType[i] = Types.VARBINARY;
+ if (javaType[i] == Types.BLOB &&
mapBlobAsVarBinary) {
+ javaType[i] = Types.VARBINARY;
}
digits[i] = rs.getInt(digits_colnr);
scale[i] = rs.getInt(scale_colnr);
diff --git a/src/main/java/org/monetdb/jdbc/MonetResultSet.java
b/src/main/java/org/monetdb/jdbc/MonetResultSet.java
--- a/src/main/java/org/monetdb/jdbc/MonetResultSet.java
+++ b/src/main/java/org/monetdb/jdbc/MonetResultSet.java
@@ -215,15 +215,15 @@ public class MonetResultSet
connection = (MonetConnection)
statement.getConnection();
} catch (SQLException se) { /* ignore it */ }
+ final boolean mapClobAsVarChar = connection != null &&
connection.mapClobAsVarChar();
+ final boolean mapBlobAsVarBinary = connection != null &&
connection.mapBlobAsVarBinary();
for (int i = 0; i < types.length; i++) {
int javaSQLtype = MonetDriver.getJdbcSQLType(types[i]);
- if (javaSQLtype == Types.CLOB) {
- if (connection != null &&
connection.mapClobAsVarChar())
- javaSQLtype = Types.VARCHAR;
+ if (javaSQLtype == Types.CLOB && mapClobAsVarChar) {
+ javaSQLtype = Types.VARCHAR;
} else
- if (javaSQLtype == Types.BLOB) {
- if (connection != null &&
connection.mapBlobAsVarBinary())
- javaSQLtype = Types.VARBINARY;
+ if (javaSQLtype == Types.BLOB && mapBlobAsVarBinary) {
+ javaSQLtype = Types.VARBINARY;
}
JdbcSQLTypes[i] = javaSQLtype;
}
diff --git a/src/main/java/org/monetdb/jdbc/MonetResultSetMetaData.java
b/src/main/java/org/monetdb/jdbc/MonetResultSetMetaData.java
--- a/src/main/java/org/monetdb/jdbc/MonetResultSetMetaData.java
+++ b/src/main/java/org/monetdb/jdbc/MonetResultSetMetaData.java
@@ -121,17 +121,17 @@ final class MonetResultSetMetaData
throw new IllegalArgumentException("Inconsistent Header
metadata");
}
+ final boolean mapClobAsVarChar = connection.mapClobAsVarChar();
+ final boolean mapBlobAsVarBinary =
connection.mapBlobAsVarBinary();
// derive the JDBC SQL type codes from the types[] names once
JdbcSQLTypes = new int[types.length];
for (int i = 0; i < types.length; i++) {
int javaSQLtype = MonetDriver.getJdbcSQLType(types[i]);
- if (javaSQLtype == Types.CLOB) {
- if (connection.mapClobAsVarChar())
- javaSQLtype = Types.VARCHAR;
+ if (javaSQLtype == Types.CLOB && mapClobAsVarChar) {
+ javaSQLtype = Types.VARCHAR;
} else
- if (javaSQLtype == Types.BLOB) {
- if (connection.mapBlobAsVarBinary())
- javaSQLtype = Types.VARBINARY;
+ if (javaSQLtype == Types.BLOB && mapBlobAsVarBinary) {
+ javaSQLtype = Types.VARBINARY;
}
JdbcSQLTypes[i] = javaSQLtype;
}
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]