[jOOQ/jOOQ#13593] transformPatternsTrivialBitwiseOperations

This commit is contained in:
Lukas Eder 2022-11-03 15:39:12 +01:00
parent d8d2b6b9d5
commit 97c8e00d66
3 changed files with 81 additions and 0 deletions

View File

@ -201,6 +201,8 @@ public class Settings
@XmlElement(defaultValue = "true")
protected Boolean transformPatternsTrivialPredicates = true;
@XmlElement(defaultValue = "true")
protected Boolean transformPatternsTrivialBitwiseOperations = true;
@XmlElement(defaultValue = "true")
protected Boolean transformPatternsScalarSubqueryCountAsteriskGtZero = true;
@XmlElement(defaultValue = "true")
protected Boolean transformPatternsScalarSubqueryCountExpressionGtZero = true;
@ -2521,6 +2523,34 @@ public class Settings
this.transformPatternsTrivialPredicates = value;
}
/**
* Transform trivial bitwise comparisons like <code>BIT_OR(a, 0)</code> to <code>a</code>.
* <p>
* This transformation removes any trivial predicates.
* <p>
* This feature is available in the commercial distribution only.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean isTransformPatternsTrivialBitwiseOperations() {
return transformPatternsTrivialBitwiseOperations;
}
/**
* Sets the value of the transformPatternsTrivialBitwiseOperations property.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setTransformPatternsTrivialBitwiseOperations(Boolean value) {
this.transformPatternsTrivialBitwiseOperations = value;
}
/**
* Transform predicates comparing scalar subqueries with a count <code>(SELECT COUNT(*) ) > 0</code> to equivalent <code>EXISTS (SELECT 1 )</code>.
* <p>
@ -5546,6 +5576,11 @@ public class Settings
return this;
}
public Settings withTransformPatternsTrivialBitwiseOperations(Boolean value) {
setTransformPatternsTrivialBitwiseOperations(value);
return this;
}
public Settings withTransformPatternsScalarSubqueryCountAsteriskGtZero(Boolean value) {
setTransformPatternsScalarSubqueryCountAsteriskGtZero(value);
return this;
@ -6527,6 +6562,7 @@ public class Settings
builder.append("transformPatternsFlattenCaseAbbreviation", transformPatternsFlattenCaseAbbreviation);
builder.append("transformPatternsTrivialCaseAbbreviation", transformPatternsTrivialCaseAbbreviation);
builder.append("transformPatternsTrivialPredicates", transformPatternsTrivialPredicates);
builder.append("transformPatternsTrivialBitwiseOperations", transformPatternsTrivialBitwiseOperations);
builder.append("transformPatternsScalarSubqueryCountAsteriskGtZero", transformPatternsScalarSubqueryCountAsteriskGtZero);
builder.append("transformPatternsScalarSubqueryCountExpressionGtZero", transformPatternsScalarSubqueryCountExpressionGtZero);
builder.append("transformPatternsEmptyScalarSubquery", transformPatternsEmptyScalarSubquery);
@ -7337,6 +7373,15 @@ public class Settings
return false;
}
}
if (transformPatternsTrivialBitwiseOperations == null) {
if (other.transformPatternsTrivialBitwiseOperations!= null) {
return false;
}
} else {
if (!transformPatternsTrivialBitwiseOperations.equals(other.transformPatternsTrivialBitwiseOperations)) {
return false;
}
}
if (transformPatternsScalarSubqueryCountAsteriskGtZero == null) {
if (other.transformPatternsScalarSubqueryCountAsteriskGtZero!= null) {
return false;
@ -8445,6 +8490,7 @@ public class Settings
result = ((prime*result)+((transformPatternsFlattenCaseAbbreviation == null)? 0 :transformPatternsFlattenCaseAbbreviation.hashCode()));
result = ((prime*result)+((transformPatternsTrivialCaseAbbreviation == null)? 0 :transformPatternsTrivialCaseAbbreviation.hashCode()));
result = ((prime*result)+((transformPatternsTrivialPredicates == null)? 0 :transformPatternsTrivialPredicates.hashCode()));
result = ((prime*result)+((transformPatternsTrivialBitwiseOperations == null)? 0 :transformPatternsTrivialBitwiseOperations.hashCode()));
result = ((prime*result)+((transformPatternsScalarSubqueryCountAsteriskGtZero == null)? 0 :transformPatternsScalarSubqueryCountAsteriskGtZero.hashCode()));
result = ((prime*result)+((transformPatternsScalarSubqueryCountExpressionGtZero == null)? 0 :transformPatternsScalarSubqueryCountExpressionGtZero.hashCode()));
result = ((prime*result)+((transformPatternsEmptyScalarSubquery == null)? 0 :transformPatternsEmptyScalarSubquery.hashCode()));

View File

@ -2090,6 +2090,33 @@ package org.jooq.impl;

View File

@ -682,6 +682,14 @@ This transformation removes any trivial predicates.
This feature is available in the commercial distribution only.]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
<element name="transformPatternsTrivialBitwiseOperations" type="boolean" minOccurs="0" maxOccurs="1" default="true">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Transform trivial bitwise comparisons like <code>BIT_OR(a, 0)</code> to <code>a</code>.
<p>
This transformation removes any trivial predicates.
<p>
This feature is available in the commercial distribution only.]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
<element name="transformPatternsScalarSubqueryCountAsteriskGtZero" type="boolean" minOccurs="0" maxOccurs="1" default="true">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Transform predicates comparing scalar subqueries with a count <code>(SELECT COUNT(*) ..) > 0</code> to equivalent <code>EXISTS (SELECT 1 ..)</code>.
<p>