From 37302e878d717e65df4525bd0ba4ca64cf984707 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Thu, 27 Oct 2022 20:41:48 +0200 Subject: [PATCH] [jOOQ/jOOQ#13593] Settings.transformPatternsCaseToCaseAbbreviation --- .../src/main/java/org/jooq/conf/Settings.java | 46 +++++++++++++++++++ .../src/main/java/org/jooq/impl/Patterns.java | 38 +++++++++++++++ .../org/jooq/xsd/jooq-runtime-3.18.0.xsd | 8 ++++ 3 files changed, 92 insertions(+) diff --git a/jOOQ/src/main/java/org/jooq/conf/Settings.java b/jOOQ/src/main/java/org/jooq/conf/Settings.java index 1765a33e7e..394713a1d1 100644 --- a/jOOQ/src/main/java/org/jooq/conf/Settings.java +++ b/jOOQ/src/main/java/org/jooq/conf/Settings.java @@ -185,6 +185,8 @@ public class Settings @XmlElement(defaultValue = "true") protected Boolean transformPatternsCaseThenBoolean = true; @XmlElement(defaultValue = "true") + protected Boolean transformPatternsCaseToCaseAbbreviation = true; + @XmlElement(defaultValue = "true") protected Boolean transformPatternsTrivialCaseAbbreviation = true; @XmlElement(defaultValue = "true") protected Boolean transformPatternsTrivialPredicates = true; @@ -2261,6 +2263,34 @@ public class Settings this.transformPatternsCaseThenBoolean = value; } + /** + * Transform CASE expressions to their respective abbreviations. + *

+ * Some CASE expressions have a shorter abbreviated form, such as COALESCE() or NULLIF(). + *

+ * This feature is available in the commercial distribution only. + * + * @return + * possible object is + * {@link Boolean } + * + */ + public Boolean isTransformPatternsCaseToCaseAbbreviation() { + return transformPatternsCaseToCaseAbbreviation; + } + + /** + * Sets the value of the transformPatternsCaseToCaseAbbreviation property. + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setTransformPatternsCaseToCaseAbbreviation(Boolean value) { + this.transformPatternsCaseToCaseAbbreviation = value; + } + /** * Transform trivial case abbreviations like NVL(NULL, a) to a. *

@@ -5303,6 +5333,11 @@ public class Settings return this; } + public Settings withTransformPatternsCaseToCaseAbbreviation(Boolean value) { + setTransformPatternsCaseToCaseAbbreviation(value); + return this; + } + public Settings withTransformPatternsTrivialCaseAbbreviation(Boolean value) { setTransformPatternsTrivialCaseAbbreviation(value); return this; @@ -6286,6 +6321,7 @@ public class Settings builder.append("transformPatternsCaseMergeWhenWhen", transformPatternsCaseMergeWhenWhen); builder.append("transformPatternsCaseMergeWhenElse", transformPatternsCaseMergeWhenElse); builder.append("transformPatternsCaseThenBoolean", transformPatternsCaseThenBoolean); + builder.append("transformPatternsCaseToCaseAbbreviation", transformPatternsCaseToCaseAbbreviation); builder.append("transformPatternsTrivialCaseAbbreviation", transformPatternsTrivialCaseAbbreviation); builder.append("transformPatternsTrivialPredicates", transformPatternsTrivialPredicates); builder.append("transformPatternsScalarSubqueryCountAsteriskGtZero", transformPatternsScalarSubqueryCountAsteriskGtZero); @@ -7026,6 +7062,15 @@ public class Settings return false; } } + if (transformPatternsCaseToCaseAbbreviation == null) { + if (other.transformPatternsCaseToCaseAbbreviation!= null) { + return false; + } + } else { + if (!transformPatternsCaseToCaseAbbreviation.equals(other.transformPatternsCaseToCaseAbbreviation)) { + return false; + } + } if (transformPatternsTrivialCaseAbbreviation == null) { if (other.transformPatternsTrivialCaseAbbreviation!= null) { return false; @@ -8144,6 +8189,7 @@ public class Settings result = ((prime*result)+((transformPatternsCaseMergeWhenWhen == null)? 0 :transformPatternsCaseMergeWhenWhen.hashCode())); result = ((prime*result)+((transformPatternsCaseMergeWhenElse == null)? 0 :transformPatternsCaseMergeWhenElse.hashCode())); result = ((prime*result)+((transformPatternsCaseThenBoolean == null)? 0 :transformPatternsCaseThenBoolean.hashCode())); + result = ((prime*result)+((transformPatternsCaseToCaseAbbreviation == null)? 0 :transformPatternsCaseToCaseAbbreviation.hashCode())); result = ((prime*result)+((transformPatternsTrivialCaseAbbreviation == null)? 0 :transformPatternsTrivialCaseAbbreviation.hashCode())); result = ((prime*result)+((transformPatternsTrivialPredicates == null)? 0 :transformPatternsTrivialPredicates.hashCode())); result = ((prime*result)+((transformPatternsScalarSubqueryCountAsteriskGtZero == null)? 0 :transformPatternsScalarSubqueryCountAsteriskGtZero.hashCode())); diff --git a/jOOQ/src/main/java/org/jooq/impl/Patterns.java b/jOOQ/src/main/java/org/jooq/impl/Patterns.java index 22478b87d1..028c1105a9 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Patterns.java +++ b/jOOQ/src/main/java/org/jooq/impl/Patterns.java @@ -1774,6 +1774,44 @@ 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 145e33a7db..6b2af61091 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 @@ -591,6 +591,14 @@ This feature is available in the commercial distribution only.]]><

A CASE expression that transforms things to booleans can usually be simplified easily.

+This feature is available in the commercial distribution only.]]> + + + + CASE expressions to their respective abbreviations. +

+Some CASE expressions have a shorter abbreviated form, such as COALESCE() or NULLIF(). +

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