From 59ffa9bda8fa85760db2aecfc8b0f783c476e0fc Mon Sep 17 00:00:00 2001 From: lukaseder Date: Wed, 12 Jul 2017 15:45:00 +0200 Subject: [PATCH] [#6064] SQL Server doesn't generate any code when top-level inputSchema is specified, but not inputCatalog --- .../java/org/jooq/util/AbstractDatabase.java | 40 ++++++++++++------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/jOOQ-meta/src/main/java/org/jooq/util/AbstractDatabase.java b/jOOQ-meta/src/main/java/org/jooq/util/AbstractDatabase.java index f634395ac2..dd4eb2b99d 100644 --- a/jOOQ-meta/src/main/java/org/jooq/util/AbstractDatabase.java +++ b/jOOQ-meta/src/main/java/org/jooq/util/AbstractDatabase.java @@ -379,14 +379,18 @@ public abstract class AbstractDatabase implements Database { log.error("Could not load catalogs", e); } -// Iterator it = catalogs.iterator(); -// while (it.hasNext()) { -// CatalogDefinition catalog = it.next(); -// -// // [#4794] Add support for schema mapping -// // if (!getInputSchemata().contains(catalog.getName())) -// // it.remove(); -// } + Iterator it = catalogs.iterator(); + while (it.hasNext()) { + CatalogDefinition catalog = it.next(); + + if (!getInputCatalogs().contains(catalog.getName())) + it.remove(); + } + + if (catalogs.isEmpty()) + log.warn( + "No catalogs were loaded", + "Please check your connection settings, and whether your database (and your database version!) is really supported by jOOQ. Also, check the case-sensitivity in your configured elements."); } return catalogs; @@ -532,14 +536,22 @@ public abstract class AbstractDatabase implements Database { } inputSchemata.add(inputSchema); - List list = inputSchemataPerCatalog.get(catalog.getInputCatalog()); - if (list == null) { - list = new ArrayList(); - inputSchemataPerCatalog.put(catalog.getInputCatalog(), list); + // [#6064] If no input catalogs were configured, we need to register the input schema for each catalog + for (String inputCatalog : + (configuredCatalogs.size() == 1 && StringUtils.isBlank(configuredCatalogs.get(0).getInputCatalog())) + ? getInputCatalogs() + : Collections.singletonList(catalog.getInputCatalog()) + ) { + List list = inputSchemataPerCatalog.get(inputCatalog); + + if (list == null) { + list = new ArrayList(); + inputSchemataPerCatalog.put(inputCatalog, list); + } + + list.add(inputSchema); } - - list.add(inputSchema); } } }