Mercurial > hg > monetdb-java
changeset 883:333bbac1e3e8
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.
author | Martin van Dinther <martin.van.dinther@monetdbsolutions.com> |
---|---|
date | Wed, 03 Apr 2024 14:10:15 +0200 (12 months ago) |
parents | cd6e5449fb1a |
children | 1956d8ba5ad3 |
files | src/main/java/org/monetdb/jdbc/MonetPreparedStatement.java |
diffstat | 1 files changed, 10 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- 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(),