diff --git a/jOOQ/src/main/java/org/jooq/conf/Settings.java b/jOOQ/src/main/java/org/jooq/conf/Settings.java index 119f5b5fbe..014f139f72 100644 --- a/jOOQ/src/main/java/org/jooq/conf/Settings.java +++ b/jOOQ/src/main/java/org/jooq/conf/Settings.java @@ -199,6 +199,8 @@ public class Settings @XmlElement(defaultValue = "true") protected Boolean transformPatternsFlattenCaseAbbreviation = true; @XmlElement(defaultValue = "true") + protected Boolean transformPatternsFlattenDecode = true; + @XmlElement(defaultValue = "true") protected Boolean transformPatternsFlattenCase = true; @XmlElement(defaultValue = "true") protected Boolean transformPatternsTrivialCaseAbbreviation = true; @@ -2509,6 +2511,37 @@ public class Settings this.transformPatternsFlattenCaseAbbreviation = value; } + /** + * Flatten nested DECODE functions. + *

+ * Nested DECODE functions can be flattened, as such: + *

+ *

+ * This feature is available in the commercial distribution only. + * + * @return + * possible object is + * {@link Boolean } + * + */ + public Boolean isTransformPatternsFlattenDecode() { + return transformPatternsFlattenDecode; + } + + /** + * Sets the value of the transformPatternsFlattenDecode property. + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setTransformPatternsFlattenDecode(Boolean value) { + this.transformPatternsFlattenDecode = value; + } + /** * Transform CASE … ELSE CASE … by flattening the nested CASE. *

@@ -5642,6 +5675,11 @@ public class Settings return this; } + public Settings withTransformPatternsFlattenDecode(Boolean value) { + setTransformPatternsFlattenDecode(value); + return this; + } + public Settings withTransformPatternsFlattenCase(Boolean value) { setTransformPatternsFlattenCase(value); return this; @@ -6642,6 +6680,7 @@ public class Settings builder.append("transformPatternsCaseToCaseAbbreviation", transformPatternsCaseToCaseAbbreviation); builder.append("transformPatternsSimplifyCaseAbbreviation", transformPatternsSimplifyCaseAbbreviation); builder.append("transformPatternsFlattenCaseAbbreviation", transformPatternsFlattenCaseAbbreviation); + builder.append("transformPatternsFlattenDecode", transformPatternsFlattenDecode); builder.append("transformPatternsFlattenCase", transformPatternsFlattenCase); builder.append("transformPatternsTrivialCaseAbbreviation", transformPatternsTrivialCaseAbbreviation); builder.append("transformPatternsTrivialPredicates", transformPatternsTrivialPredicates); @@ -7447,6 +7486,15 @@ public class Settings return false; } } + if (transformPatternsFlattenDecode == null) { + if (other.transformPatternsFlattenDecode!= null) { + return false; + } + } else { + if (!transformPatternsFlattenDecode.equals(other.transformPatternsFlattenDecode)) { + return false; + } + } if (transformPatternsFlattenCase == null) { if (other.transformPatternsFlattenCase!= null) { return false; @@ -8590,6 +8638,7 @@ public class Settings result = ((prime*result)+((transformPatternsCaseToCaseAbbreviation == null)? 0 :transformPatternsCaseToCaseAbbreviation.hashCode())); result = ((prime*result)+((transformPatternsSimplifyCaseAbbreviation == null)? 0 :transformPatternsSimplifyCaseAbbreviation.hashCode())); result = ((prime*result)+((transformPatternsFlattenCaseAbbreviation == null)? 0 :transformPatternsFlattenCaseAbbreviation.hashCode())); + result = ((prime*result)+((transformPatternsFlattenDecode == null)? 0 :transformPatternsFlattenDecode.hashCode())); result = ((prime*result)+((transformPatternsFlattenCase == null)? 0 :transformPatternsFlattenCase.hashCode())); result = ((prime*result)+((transformPatternsTrivialCaseAbbreviation == null)? 0 :transformPatternsTrivialCaseAbbreviation.hashCode())); result = ((prime*result)+((transformPatternsTrivialPredicates == null)? 0 :transformPatternsTrivialPredicates.hashCode())); diff --git a/jOOQ/src/main/java/org/jooq/impl/Patterns.java b/jOOQ/src/main/java/org/jooq/impl/Patterns.java index 9991b53ac9..b6c4bb2acf 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Patterns.java +++ b/jOOQ/src/main/java/org/jooq/impl/Patterns.java @@ -2223,6 +2223,19 @@ package org.jooq.impl; + + + + + + + + + + + + + diff --git a/jOOQ/src/main/resources/org/jooq/xsd/jooq-runtime-3.18.0.xsd b/jOOQ/src/main/resources/org/jooq/xsd/jooq-runtime-3.18.0.xsd index 65143d89a7..9a192e0867 100644 --- a/jOOQ/src/main/resources/org/jooq/xsd/jooq-runtime-3.18.0.xsd +++ b/jOOQ/src/main/resources/org/jooq/xsd/jooq-runtime-3.18.0.xsd @@ -681,6 +681,17 @@ Nested CASE abbreviations can be flattened, as such:

  • COALESCE(a, ..., COALESCE(b, ..., c), ..., d) to COALESCE(a, ..., b, ..., c, ..., d)
  • +This feature is available in the commercial distribution only.]]> + + + + DECODE functions. +

    +Nested DECODE functions can be flattened, as such: +

    +

    This feature is available in the commercial distribution only.]]>