[jOOQ/jOOQ#13593] transformPatternsUnnecessaryInnerJoin

This commit is contained in:
Lukas Eder 2022-11-17 16:16:47 +01:00
parent e2b0a19d1a
commit aa73039096
3 changed files with 66 additions and 0 deletions

View File

@ -151,6 +151,8 @@ public class Settings
@XmlElement(defaultValue = "true")
protected Boolean transformPatternsUnnecessaryScalarSubquery = true;
@XmlElement(defaultValue = "true")
protected Boolean transformPatternsUnnecessaryInnerJoin = true;
@XmlElement(defaultValue = "true")
protected Boolean transformPatternsUnnecessaryGroupByExpressions = true;
@XmlElement(defaultValue = "true")
protected Boolean transformPatternsUnnecessaryOrderByExpressions = true;
@ -1793,6 +1795,36 @@ public class Settings
this.transformPatternsUnnecessaryScalarSubquery = value;
}
/**
* Transform <code>SELECT * FROM t INNER JOIN u ON TRUE</code> to <code>SELECT * FROM t CROSS JOIN u</code>.
* <p>
* Some <code>INNER JOIN</code> expressions can be proven to be unnecessary.
* <p>
* To enable this feature, {@link #transformPatterns} must be enabled as well.
* <p>
* This feature is available in the commercial distribution only.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean isTransformPatternsUnnecessaryInnerJoin() {
return transformPatternsUnnecessaryInnerJoin;
}
/**
* Sets the value of the transformPatternsUnnecessaryInnerJoin property.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setTransformPatternsUnnecessaryInnerJoin(Boolean value) {
this.transformPatternsUnnecessaryInnerJoin = value;
}
/**
* Transform <code>SELECT a, b FROM t GROUP BY a, a, b</code> to <code>SELECT a, b FROM t GROUP BY a, b</code>.
* <p>
@ -5796,6 +5828,11 @@ public class Settings
return this;
}
public Settings withTransformPatternsUnnecessaryInnerJoin(Boolean value) {
setTransformPatternsUnnecessaryInnerJoin(value);
return this;
}
public Settings withTransformPatternsUnnecessaryGroupByExpressions(Boolean value) {
setTransformPatternsUnnecessaryGroupByExpressions(value);
return this;
@ -6941,6 +6978,7 @@ public class Settings
builder.append("transformPatternsLogging", transformPatternsLogging);
builder.append("transformPatternsUnnecessaryDistinct", transformPatternsUnnecessaryDistinct);
builder.append("transformPatternsUnnecessaryScalarSubquery", transformPatternsUnnecessaryScalarSubquery);
builder.append("transformPatternsUnnecessaryInnerJoin", transformPatternsUnnecessaryInnerJoin);
builder.append("transformPatternsUnnecessaryGroupByExpressions", transformPatternsUnnecessaryGroupByExpressions);
builder.append("transformPatternsUnnecessaryOrderByExpressions", transformPatternsUnnecessaryOrderByExpressions);
builder.append("transformPatternsUnnecessaryExistsSubqueryClauses", transformPatternsUnnecessaryExistsSubqueryClauses);
@ -7563,6 +7601,15 @@ public class Settings
return false;
}
}
if (transformPatternsUnnecessaryInnerJoin == null) {
if (other.transformPatternsUnnecessaryInnerJoin!= null) {
return false;
}
} else {
if (!transformPatternsUnnecessaryInnerJoin.equals(other.transformPatternsUnnecessaryInnerJoin)) {
return false;
}
}
if (transformPatternsUnnecessaryGroupByExpressions == null) {
if (other.transformPatternsUnnecessaryGroupByExpressions!= null) {
return false;
@ -8979,6 +9026,7 @@ public class Settings
result = ((prime*result)+((transformPatternsLogging == null)? 0 :transformPatternsLogging.hashCode()));
result = ((prime*result)+((transformPatternsUnnecessaryDistinct == null)? 0 :transformPatternsUnnecessaryDistinct.hashCode()));
result = ((prime*result)+((transformPatternsUnnecessaryScalarSubquery == null)? 0 :transformPatternsUnnecessaryScalarSubquery.hashCode()));
result = ((prime*result)+((transformPatternsUnnecessaryInnerJoin == null)? 0 :transformPatternsUnnecessaryInnerJoin.hashCode()));
result = ((prime*result)+((transformPatternsUnnecessaryGroupByExpressions == null)? 0 :transformPatternsUnnecessaryGroupByExpressions.hashCode()));
result = ((prime*result)+((transformPatternsUnnecessaryOrderByExpressions == null)? 0 :transformPatternsUnnecessaryOrderByExpressions.hashCode()));
result = ((prime*result)+((transformPatternsUnnecessaryExistsSubqueryClauses == null)? 0 :transformPatternsUnnecessaryExistsSubqueryClauses.hashCode()));

View File

@ -2452,6 +2452,14 @@ package org.jooq.impl;

View File

@ -429,6 +429,16 @@ To enable this feature, {@link #transformPatterns} must be enabled as well.
This feature is available in the commercial distribution only.]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
<element name="transformPatternsUnnecessaryInnerJoin" type="boolean" minOccurs="0" maxOccurs="1" default="true">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Transform <code>SELECT * FROM t INNER JOIN u ON TRUE</code> to <code>SELECT * FROM t CROSS JOIN u</code>.
<p>
Some <code>INNER JOIN</code> expressions can be proven to be unnecessary.
<p>
To enable this feature, {@link #transformPatterns} must be enabled as well.
<p>
This feature is available in the commercial distribution only.]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
<element name="transformPatternsUnnecessaryGroupByExpressions" type="boolean" minOccurs="0" maxOccurs="1" default="true">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Transform <code>SELECT a, b FROM t GROUP BY a, a, b</code> to <code>SELECT a, b FROM t GROUP BY a, b</code>.
<p>