1. Taro L. Saito
  2. sqlite-jdbc
  3. Issues
Issue #64 resolved

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

Lukas 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