Changeset: 333bbac1e3e8 for monetdb-java
URL: https://dev.monetdb.org/hg/monetdb-java/rev/333bbac1e3e8
Modified Files:
src/main/java/org/monetdb/jdbc/MonetPreparedStatement.java
Branch: default
Log Message:
Optimise getParameterMetaData(). We can compute the number of parameters now,
so avoid to go through all entries in column[] to test if it is a parameter.
diffs (32 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
@@ -464,18 +464,16 @@ public class MonetPreparedStatement
final int[] jdbcTypes = new int[array_size];
final int[] precisions = new int[array_size];
final int[] scales = new int[array_size];
- int param = 1; // parameters in JDBC start from 1
- // now fill the arrays with only the parameters metadata
- for (int i = 0; i < size; i++) {
- /* when column[i] == null it is a parameter,
- when column[i] != null it is a result column
of the prepared query */
- if (column[i] != null)
- continue;
- types[param] = monetdbType[i];
- jdbcTypes[param] = javaType[i];
- precisions[param] = digits[i];
- scales[param] = scale[i];
- param++;
+ if (paramCount > 0) {
+ // fill the arrays with the parameters metadata
+ int param = 1; // parameters in JDBC start
from 1
+ for (int i = paramStartIndex; i < size && param
<= paramCount; i++) {
+ types[param] = monetdbType[i];
+ jdbcTypes[param] = javaType[i];
+ precisions[param] = digits[i];
+ scales[param] = scale[i];
+ param++;
+ }
}
pmd = new MonetParameterMetaData((MonetConnection)
getConnection(),
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]