From 370212225304aeb93820dcda124591aa48cf3837 Mon Sep 17 00:00:00 2001 From: lukaseder Date: Fri, 13 May 2016 15:29:47 +0200 Subject: [PATCH] [#5268] Compile error when a schema has the same name as a table within that schema --- .../jooq/util/GeneratorStrategyWrapper.java | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/jOOQ-codegen/src/main/java/org/jooq/util/GeneratorStrategyWrapper.java b/jOOQ-codegen/src/main/java/org/jooq/util/GeneratorStrategyWrapper.java index 1765b26e4c..3ebd4a4a9d 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/util/GeneratorStrategyWrapper.java +++ b/jOOQ-codegen/src/main/java/org/jooq/util/GeneratorStrategyWrapper.java @@ -115,19 +115,16 @@ class GeneratorStrategyWrapper extends AbstractGeneratorStrategy { public String getJavaIdentifier(Definition definition) { // [#1473] Identity identifiers should not be renamed by custom strategies - if (definition instanceof IdentityDefinition) { + if (definition instanceof IdentityDefinition) return "IDENTITY_" + getJavaIdentifier(((IdentityDefinition) definition).getColumn().getContainer()); - } // [#2032] Intercept default Catalog - else if (definition instanceof CatalogDefinition && ((CatalogDefinition) definition).isDefaultCatalog()) { + else if (definition instanceof CatalogDefinition && ((CatalogDefinition) definition).isDefaultCatalog()) return "DEFAULT_CATALOG"; - } // [#2089] Intercept default schema - else if (definition instanceof SchemaDefinition && ((SchemaDefinition) definition).isDefaultSchema()) { + else if (definition instanceof SchemaDefinition && ((SchemaDefinition) definition).isDefaultSchema()) return "DEFAULT_SCHEMA"; - } String identifier = convertToIdentifier(delegate.getJavaIdentifier(definition), language); @@ -137,14 +134,19 @@ class GeneratorStrategyWrapper extends AbstractGeneratorStrategy { TypedElementDefinition e = (TypedElementDefinition) definition; - if (identifier.equals(getJavaIdentifier(e.getContainer()))) { + if (identifier.equals(getJavaIdentifier(e.getContainer()))) return identifier + "_"; - } // [#2781] Disambiguate collisions with the leading package name - if (identifier.equals(getJavaPackageName(e.getContainer()).replaceAll("\\..*", ""))) { + if (identifier.equals(getJavaPackageName(e.getContainer()).replaceAll("\\..*", ""))) + return identifier + "_"; + } + + else if (definition instanceof TableDefinition) { + SchemaDefinition schema = definition.getSchema(); + + if (identifier.equals(getJavaIdentifier(schema))) return identifier + "_"; - } } return identifier;