testcontainers-jooq-codegen-maven-plugin icon indicating copy to clipboard operation
testcontainers-jooq-codegen-maven-plugin copied to clipboard

Generation fails with the newest Postgres JDBC driver

Open msaladin opened this issue 10 months ago • 3 comments

Hi all,

See https://github.com/jOOQ/jOOQ/issues/17873#issuecomment-2659265627:

When using Postgres JDBC driver 42.7.4, it works fine. When using Postgres JDBC driver 42.7.5, generation of some tables (e.g. pgcatalog.pg_class) fails with

Error while generating table public.auth_client
Caused by: java.lang.RuntimeException: java.lang.IllegalArgumentException: Field "key_seq" is not contained in row type (
  "PKTABLE_CAT",
  "pg_namespace"."PKTABLE_SCHEM",
  "pg_class"."PKTABLE_NAME",
  "pg_attribute"."PKCOLUMN_NAME",
  "FKTABLE_CAT",
  "pg_namespace"."FKTABLE_SCHEM",
  "pg_class"."FKTABLE_NAME",
  "pg_attribute"."FKCOLUMN_NAME",
  "KEY_SEQ",
  "UPDATE_RULE",
  "DELETE_RULE",
  "pg_constraint"."FK_NAME",
  "pg_class"."PK_NAME",
  "DEFERRABILITY"
)

errors. I suppose that all you have to do is actually update Jooq, as as documented in 17873, an update of Jooq is already published.

Thanks a lot & Cheers Michael

msaladin avatar Feb 19 '25 12:02 msaladin

I recommend setting the versions on the plugin on your own. The plugin will never be fast enough to update the dependency versions:

<plugin>
        <groupId>org.testcontainers</groupId>
        <artifactId>testcontainers-jooq-codegen-maven-plugin</artifactId>
        <version>${testcontainers-jooq-codegen-maven-plugin.version}</version>
        <dependencies>
            <dependency>
                <groupId>org.jooq</groupId>
                <artifactId>jooq-codegen</artifactId>
                <version>${jooq.version}</version>
            </dependency>
            <dependency>
                <groupId>org.testcontainers</groupId>
                <artifactId>postgresql</artifactId>
                <version>${testcontainers.version}</version>
            </dependency>
            <dependency>
                <groupId>org.postgresql</groupId>
                <artifactId>postgresql</artifactId>
                <version>${postgresql.version}</version>
            </dependency>
        </dependencies>
...
</plugin>

simasch avatar Feb 19 '25 14:02 simasch

I'm getting same problem. Is there any ETA of when this could be fixed?

Last comment is from almost year ago

Thanks.

VicentValdes avatar Sep 26 '25 12:09 VicentValdes

@VicentValdes There is nothing Testcontainers can do because they would need to support all available jOOQ versions. Check my comment https://github.com/testcontainers/testcontainers-jooq-codegen-maven-plugin/issues/46#issuecomment-2668764049

simasch avatar Sep 26 '25 12:09 simasch