diff --git a/jOOQ/src/main/java/org/jooq/conf/RenderNameCase.java b/jOOQ/src/main/java/org/jooq/conf/RenderNameCase.java index f4a3947b2d..0be20c7d19 100644 --- a/jOOQ/src/main/java/org/jooq/conf/RenderNameCase.java +++ b/jOOQ/src/main/java/org/jooq/conf/RenderNameCase.java @@ -22,7 +22,9 @@ import javax.xml.bind.annotation.XmlType; * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> * <enumeration value="AS_IS"/> * <enumeration value="LOWER"/> + * <enumeration value="LOWER_IF_UNQUOTED"/> * <enumeration value="UPPER"/> + * <enumeration value="UPPER_IF_UNQUOTED"/> * </restriction> * </simpleType> * @@ -34,7 +36,9 @@ public enum RenderNameCase { AS_IS, LOWER, - UPPER; + LOWER_IF_UNQUOTED, + UPPER, + UPPER_IF_UNQUOTED; public String value() { return name(); diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultRenderContext.java b/jOOQ/src/main/java/org/jooq/impl/DefaultRenderContext.java index 2af15620da..787d913e52 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultRenderContext.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultRenderContext.java @@ -469,9 +469,11 @@ class DefaultRenderContext extends AbstractContext implements Ren // [#1982] [#3360] ... yet, do quote when an identifier contains special characters (family == SQLITE && !IDENTIFIER_PATTERN.matcher(literal).matches()); - if (RenderNameCase.LOWER == cachedRenderNameCase) + if (RenderNameCase.LOWER == cachedRenderNameCase || + RenderNameCase.LOWER_IF_UNQUOTED == cachedRenderNameCase && !quote()) literal = literal.toLowerCase(renderLocale(configuration().settings())); - else if (RenderNameCase.UPPER == cachedRenderNameCase) + else if (RenderNameCase.UPPER == cachedRenderNameCase || + RenderNameCase.UPPER_IF_UNQUOTED == cachedRenderNameCase && !quote()) literal = literal.toUpperCase(renderLocale(configuration().settings())); if (needsQuote) { diff --git a/jOOQ/src/main/resources/xsd/jooq-runtime-3.12.0.xsd b/jOOQ/src/main/resources/xsd/jooq-runtime-3.12.0.xsd index 0c286030dd..79721d51e3 100644 --- a/jOOQ/src/main/resources/xsd/jooq-runtime-3.12.0.xsd +++ b/jOOQ/src/main/resources/xsd/jooq-runtime-3.12.0.xsd @@ -452,11 +452,17 @@ Either <input/> or <inputExpression/> must be provided]]> - + - + + + + + + +