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 -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to