Mercurial > hg > monetdb-java
diff tests/JDBC_API_Tester.java @ 719:2f42195e9c58
Improved implementation of PreparedStatement.getParameterMetaData().
The previous implementation created a new ParameterMetaData object each time this method is called which is quite costly if it is called from inside a loop.
As the ParameterMetaData is static for a PreparedStatement it is better to create it once,
cache it in the PreparedStatement object and return the cached object for next calls to PreparedStatement.getParameterMetaData().
We also now create dedicated 1-based meta data arrays, such that we no longer have to call getParamIdx(param) in methods of ParameterMetaData.
author | Martin van Dinther <martin.van.dinther@monetdbsolutions.com> |
---|---|
date | Thu, 19 Jan 2023 16:46:44 +0100 (2023-01-19) |
parents | 7240d2dd369f |
children | 2b763b189452 |
line wrap: on
line diff
--- a/tests/JDBC_API_Tester.java +++ b/tests/JDBC_API_Tester.java @@ -4419,7 +4419,7 @@ final public class JDBC_API_Tester { ParameterMetaData pmd = pstmt.getParameterMetaData(); checkIsWrapperFor("ParameterMetaData", pmd, jdbc_pkg, "ParameterMetaData"); checkIsWrapperFor("ParameterMetaData", pmd, monetdb_jdbc_pkg, "MonetPreparedStatement"); - checkIsWrapperFor("ParameterMetaData", pmd, monetdb_jdbc_pkg, "MonetPreparedStatement$pmdw"); // it is a private class of MonetPreparedStatement + checkIsWrapperFor("ParameterMetaData", pmd, monetdb_jdbc_pkg, "MonetParameterMetaData"); checkIsWrapperFor("ParameterMetaData", pmd, jdbc_pkg, "Connection"); checkIsWrapperFor("ParameterMetaData", pmd, monetdb_jdbc_pkg, "MonetConnection"); @@ -4467,7 +4467,7 @@ final public class JDBC_API_Tester { "PreparedStatement. isWrapperFor(MonetConnection) returns: false\n" + "ParameterMetaData. isWrapperFor(ParameterMetaData) returns: true Called unwrap(). Returned object is not null, so oke\n" + "ParameterMetaData. isWrapperFor(MonetPreparedStatement) returns: false\n" + - "ParameterMetaData. isWrapperFor(MonetPreparedStatement$pmdw) returns: true Called unwrap(). Returned object is not null, so oke\n" + + "ParameterMetaData. isWrapperFor(MonetParameterMetaData) returns: true Called unwrap(). Returned object is not null, so oke\n" + "ParameterMetaData. isWrapperFor(Connection) returns: false\n" + "ParameterMetaData. isWrapperFor(MonetConnection) returns: false\n" + "PrepStmt ResultSetMetaData. isWrapperFor(ResultSetMetaData) returns: true Called unwrap(). Returned object is not null, so oke\n" +