Issue #64 resolved

ArrayIndexOutOfBoundsException when calling ResultSetMetaData.getScale() for VARCHAR column types

Lukas Eder avatarLukas Eder created an issue

I'm running jOOQ integration tests against the Xerial driver and I've found a couple of bugs, which I'm reporting here. I have detected these bugs with the downloaded version 3.7.15-SNAPSHOT-2.

Create this table

DROP TABLE IF EXISTS test;
CREATE TABLE test (
  ID INT NOT NULL,
  TITLE VARCHAR(400) NOT NULL
);

Run this Java programme

Connection c = getConnection();
ResultSet rs = c.createStatement().executeQuery("select * from test");
ResultSetMetaData meta = rs.getMetaData();
assertEquals(2, meta.getColumnCount());
meta.getScale(2); // Exception here

Observe this exception

java.lang.ArrayIndexOutOfBoundsException: 1
    at org.sqlite.RS.getScale(RS.java:875)
    at org.jooq.test._.testcases.PlainSQLTests.testPlainSQL(PlainSQLTests.java:149)

Expected behaviour

According to the JDBC specs, zero (0) should be returned, if getScale() is not applicable for a column

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.