From 43ff705bbda63d31f6095e346a61fc81ac7fe8a5 Mon Sep 17 00:00:00 2001 From: lukaseder Date: Mon, 5 Jun 2017 13:58:24 +0200 Subject: [PATCH] [#6307] SQL Server support --- .../main/java/org/jooq/util/DefaultGeneratorStrategy.java | 8 ++++++++ .../src/main/java/org/jooq/util/AbstractDatabase.java | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/jOOQ-codegen/src/main/java/org/jooq/util/DefaultGeneratorStrategy.java b/jOOQ-codegen/src/main/java/org/jooq/util/DefaultGeneratorStrategy.java index e7ab3efb76..706e2ee204 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/util/DefaultGeneratorStrategy.java +++ b/jOOQ-codegen/src/main/java/org/jooq/util/DefaultGeneratorStrategy.java @@ -34,6 +34,9 @@ */ package org.jooq.util; +import static java.util.Arrays.asList; +// ... + import java.util.ArrayList; import java.util.List; @@ -111,6 +114,11 @@ public class DefaultGeneratorStrategy extends AbstractGeneratorStrategy { if (identifier != null) return identifier; + + // [#6307] Some databases work with per-table namespacing for indexes, not per-schema namespacing. + // In order to have non-ambiguous identifiers, we need to include the table name. + else if (definition instanceof IndexDefinition && asList().contains(definition.getDatabase().getDialect().family())) + return ((IndexDefinition) definition).getTable().getOutputName().toUpperCase() + "_" + definition.getOutputName().toUpperCase(); else return definition.getOutputName().toUpperCase(); } 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 165845ecc6..3c291d9759 100644 --- a/jOOQ-meta/src/main/java/org/jooq/util/AbstractDatabase.java +++ b/jOOQ-meta/src/main/java/org/jooq/util/AbstractDatabase.java @@ -1507,7 +1507,8 @@ public abstract class AbstractDatabase implements Database { try { List r = getIndexes0(); - indexes = sort(filterExcludeInclude(r)); + indexes = sort(r); + // indexes = sort(filterExcludeInclude(r)); TODO Support include / exclude for indexes (and constraints!) log.info("Indexes fetched", fetchedSize(r, indexes)); } catch (Exception e) {