From 577835a9f0faca6a050363e758fbff7b91b3d151 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Fri, 13 Jun 2025 11:37:31 +0200 Subject: [PATCH] [jOOQ/jOOQ#18592] Meta.getSchemas() produces schema multiple times across catalogs in DuckDB --- jOOQ/src/main/java/org/jooq/impl/MetaImpl.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java b/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java index 5452dec28b..6edd57d751 100644 --- a/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java @@ -398,8 +398,8 @@ final class MetaImpl extends AbstractMeta { if (!inverseSchemaCatalog) { - Schemas schemas = meta(() -> "Error while fetching schemas for catalog: " + this, - meta -> { + Schemas schemas = meta(() -> "Error while fetching schemas for catalog: " + this, meta -> { + switch (family()) { @@ -422,11 +422,16 @@ final class MetaImpl extends AbstractMeta { + case DUCKDB: + // [#9791] Include catalog in DuckDB searches + return new Schemas(dsl().fetch(meta.getSchemas(getName(), "%"), VARCHAR), false); + default: - // [#2681] Work around a flaw in the MySQL JDBC driver - return new Schemas(dsl().fetch(meta.getSchemas(), VARCHAR), false); // TABLE_SCHEM + // [#2681] Work around a flaw in the MySQL JDBC driver + return new Schemas(dsl().fetch(meta.getSchemas(), VARCHAR), false); // TABLE_SCHEM + } }); for (String name : schemas.schemas().getValues(0, String.class))