Mercurial > hg > monetdb-java
diff tests/JDBC_API_Tester.java @ 725:224d73363dc9
Fixed issue when you create a new Statement, call getGeneratedKeys().getMetaData().
It throwed: Exception in thread "main" java.lang.IllegalArgumentException: Header may not be null!
at org.monetdb.jdbc.MonetResultSetMetaData.<init>(MonetResultSetMetaData.java:88)
at org.monetdb.jdbc.MonetResultSet.getMetaData(MonetResultSet.java:1255)
Added test to JDBC_API_Tester.java
author | Martin van Dinther <martin.van.dinther@monetdbsolutions.com> |
---|---|
date | Thu, 26 Jan 2023 17:46:22 +0100 (2023-01-26) |
parents | 2b763b189452 |
children | 55c14e65b4be |
line wrap: on
line diff
--- a/tests/JDBC_API_Tester.java +++ b/tests/JDBC_API_Tester.java @@ -91,6 +91,7 @@ final public class JDBC_API_Tester { jt.Test_Rtimedate(); jt.Test_RSgetMetaData(); jt.Test_Sbatching(); + jt.Test_SgeneratedKeys(); jt.Test_Smoreresults(); jt.Test_Wrapper(); jt.bogus_auto_generated_keys(); @@ -4318,6 +4319,46 @@ final public class JDBC_API_Tester { "0. true true\n"); } + private void Test_SgeneratedKeys() { + sb.setLength(0); // clear the output log buffer + + Statement stmt = null; + ResultSet rsk = null; + try { + stmt = con.createStatement(); + // test getGeneratedKeys + rsk = stmt.getGeneratedKeys(); + // test meta data retrieval of this MonetVirtualResultSet. + // It used to fail with: Exception in thread "main" java.lang.IllegalArgumentException: Header may not be null! + final ResultSetMetaData rsmd = rsk.getMetaData(); + sb.append("rsmd has ").append(rsmd.getColumnCount()).append(" columns\n"); + for (int col = 1; col <= rsmd.getColumnCount(); col++) { + sb.append("ColumnName: ").append(rsmd.getColumnName(col)) + .append(" ColumnTypeName: ").append(rsmd.getColumnTypeName(col)) + .append(" Precision: ").append(rsmd.getPrecision(col)) + .append(" Scale: ").append(rsmd.getScale(col)) + .append(" ColumnDisplaySize: ").append(rsmd.getColumnDisplaySize(col)) + .append(" ColumnType: ").append(rsmd.getColumnType(col)) + .append(" ColumnClassName: ").append(rsmd.getColumnClassName(col)) + .append(" isNullable: ").append(rsmd.isNullable(col)) + .append(" isAutoIncrement: ").append(rsmd.isAutoIncrement(col)) + .append("\n"); + } + rsk.close(); + rsk = null; + stmt.close(); + stmt = null; + } catch (SQLException e) { + sb.append("FAILED: ").append(e.getMessage()).append("\n"); + } + + closeStmtResSet(stmt, rsk); + + compareExpectedOutput("Test_SgeneratedKeys", + "rsmd has 1 columns\n" + + "ColumnName: GENERATED_KEY ColumnTypeName: bigint Precision: 19 Scale: 0 ColumnDisplaySize: 20 ColumnType: -5 ColumnClassName: java.lang.Long isNullable: 2 isAutoIncrement: false\n"); + } + private void Test_Smoreresults() { sb.setLength(0); // clear the output log buffer