anuj
anuj

Reputation: 221

Generating DDL from objects jooq 3.9.0 and 3.9.1

I am currently using jooq and for my unit tests I use an in memory H2 DB where I create the tables using jooq generated metadata as described in https://www.jooq.org/doc/3.9/manual/sql-building/ddl-statements/generating-ddl/

With 3.8.4 it works fine but on upgrading to 3.9.0 (or 3.9.1) I am getting an error:

Queries queries = dslContext.ddl(DefaultSchema.DEFAULT_SCHEMA);
    for (Query query : queries.queries()) {
        query.execute();
    }

Error:

java.lang.ArrayIndexOutOfBoundsException: -1

at org.jooq.impl.SchemaImpl.<init>(SchemaImpl.java:78)
at org.jooq.impl.DSL.schema(DSL.java:7199)
at org.jooq.impl.DefaultDSLContext.createSchema(DefaultDSLContext.java:2605)
at org.jooq.impl.DefaultDSLContext.createSchema(DefaultDSLContext.java:2600)
at org.jooq.impl.DDL.queries(DDL.java:112)
at org.jooq.impl.DefaultDSLContext.ddl(DefaultDSLContext.java:2487)
at org.jooq.impl.DefaultDSLContext.ddl(DefaultDSLContext.java:2482)

Upvotes: 2

Views: 356

Answers (1)

Lukas Eder
Lukas Eder

Reputation: 220762

Thanks for reporting. This is a bug in jOOQ 3.9.0 and 3.9.1. I've created https://github.com/jOOQ/jOOQ/issues/5979 for this.

A workaround is to exclude schema generation here:

Queries queries = dslContext.ddl(DefaultSchema.DEFAULT_SCHEMA, DDLFlag.TABLE, ...);

Upvotes: 1

Related Questions