From 5e780aad315f077a3c4e5e9cebc3f9fe2e1a208b Mon Sep 17 00:00:00 2001 From: lukaseder Date: Mon, 10 Dec 2018 12:45:42 +0100 Subject: [PATCH] [#8102] Add RenderNameCase.LOWER_IF_UNQUOTED and UPPER_IF_UNQUOTED --- jOOQ/src/main/java/org/jooq/conf/RenderNameCase.java | 6 +++++- .../main/java/org/jooq/impl/DefaultRenderContext.java | 6 ++++-- jOOQ/src/main/resources/xsd/jooq-runtime-3.12.0.xsd | 10 ++++++++-- 3 files changed, 17 insertions(+), 5 deletions(-) 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]]> - + - + + + + + + +