diff --git a/jOOQ/src/main/java/org/jooq/conf/RenderKeywordStyle.java b/jOOQ/src/main/java/org/jooq/conf/RenderKeywordStyle.java
index 523534c6d2..00bb1b461b 100644
--- a/jOOQ/src/main/java/org/jooq/conf/RenderKeywordStyle.java
+++ b/jOOQ/src/main/java/org/jooq/conf/RenderKeywordStyle.java
@@ -23,6 +23,7 @@ import javax.xml.bind.annotation.XmlType;
* <enumeration value="AS_IS"/>
* <enumeration value="LOWER"/>
* <enumeration value="UPPER"/>
+ * <enumeration value="PASCAL"/>
* </restriction>
* </simpleType>
*
@@ -34,7 +35,8 @@ public enum RenderKeywordStyle {
AS_IS,
LOWER,
- UPPER;
+ UPPER,
+ PASCAL;
public String value() {
return name();
diff --git a/jOOQ/src/main/java/org/jooq/impl/KeywordImpl.java b/jOOQ/src/main/java/org/jooq/impl/KeywordImpl.java
index 8b50b682d4..26c76efc7b 100644
--- a/jOOQ/src/main/java/org/jooq/impl/KeywordImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/KeywordImpl.java
@@ -57,11 +57,15 @@ public class KeywordImpl extends AbstractQueryPart implements Keyword {
private final String asIs;
private final String upper;
private final String lower;
+ private final String pascal;
KeywordImpl(String keyword) {
this.asIs = keyword;
this.upper = keyword.toUpperCase();
this.lower = keyword.toLowerCase();
+ this.pascal = keyword.length() > 0
+ ? keyword.substring(0, 1).toUpperCase() + keyword.substring(1, keyword.length()).toLowerCase()
+ : keyword;
}
@Override
@@ -72,6 +76,8 @@ public class KeywordImpl extends AbstractQueryPart implements Keyword {
ctx.sql(asIs, true);
else if (RenderKeywordStyle.UPPER == style)
ctx.sql(upper, true);
+ else if (RenderKeywordStyle.PASCAL == style)
+ ctx.sql(pascal, true);
else
ctx.sql(lower, true);
}
diff --git a/jOOQ/src/main/resources/xsd/jooq-runtime-3.11.0.xsd b/jOOQ/src/main/resources/xsd/jooq-runtime-3.11.0.xsd
index 06b68a755c..99695624a4 100644
--- a/jOOQ/src/main/resources/xsd/jooq-runtime-3.11.0.xsd
+++ b/jOOQ/src/main/resources/xsd/jooq-runtime-3.11.0.xsd
@@ -377,6 +377,10 @@ Either <input/> or <inputExpression/> must be provided]]>
+
+
+