Skip to content

Commit 448a081

Browse files
committed
HHH-19260 - Move supportsJoinInMutationStatementSubquery() from AbstractSqlAstTranslator to Dialect
Signed-off-by: Jan Schatteman <[email protected]>
1 parent 3d76942 commit 448a081

File tree

10 files changed

+30
-29
lines changed

10 files changed

+30
-29
lines changed

hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/DerbyDialect.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1072,4 +1072,9 @@ public String getFromDualForSelectOnly() {
10721072
return " from " + getDual() + " dual";
10731073
}
10741074

1075+
@Override
1076+
public boolean supportsJoinInMutationStatementSubquery() {
1077+
return false;
1078+
}
1079+
10751080
}

hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/DerbyLegacyDialect.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1077,4 +1077,10 @@ public String getDual() {
10771077
public String getFromDualForSelectOnly() {
10781078
return " from " + getDual() + " dual";
10791079
}
1080+
1081+
@Override
1082+
public boolean supportsJoinInMutationStatementSubquery() {
1083+
return false;
1084+
}
1085+
10801086
}

hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/DerbyLegacySqlAstTranslator.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -317,11 +317,6 @@ private boolean supportsOffsetFetchClause() {
317317
return getDialect().getVersion().isSameOrAfter( 10, 5 );
318318
}
319319

320-
@Override
321-
protected boolean supportsJoinInMutationStatementSubquery() {
322-
return false;
323-
}
324-
325320
@Override
326321
protected void visitArithmeticOperand(Expression expression) {
327322
render( expression, SqlAstNodeRenderingMode.NO_PLAIN_PARAMETER );

hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/DerbySqlAstTranslator.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -317,11 +317,6 @@ private boolean supportsOffsetFetchClause() {
317317
return true;
318318
}
319319

320-
@Override
321-
protected boolean supportsJoinInMutationStatementSubquery() {
322-
return false;
323-
}
324-
325320
@Override
326321
protected void visitArithmeticOperand(Expression expression) {
327322
render( expression, SqlAstNodeRenderingMode.NO_PLAIN_PARAMETER );

hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/H2LegacyDialect.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1073,4 +1073,9 @@ public boolean supportsArrayConstructor() {
10731073
return getVersion().isSameOrAfter( 2 );
10741074
}
10751075

1076+
@Override
1077+
public boolean supportsJoinInMutationStatementSubquery() {
1078+
return false;
1079+
}
1080+
10761081
}

hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/H2LegacySqlAstTranslator.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -385,9 +385,4 @@ private boolean supportsOffsetFetchClausePercentWithTies() {
385385
// Introduction of PERCENT support https://github.com/h2database/h2database/commit/f45913302e5f6ad149155a73763c0c59d8205849
386386
return getDialect().getVersion().isSameOrAfter( 1, 4, 198 );
387387
}
388-
389-
@Override
390-
protected boolean supportsJoinInMutationStatementSubquery() {
391-
return false;
392-
}
393388
}

hibernate-core/src/main/java/org/hibernate/dialect/Dialect.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5914,4 +5914,12 @@ public boolean supportsIntersect() {
59145914
return true;
59155915
}
59165916

5917+
/**
5918+
* If the dialect supports using joins in mutation statement subquery
5919+
* that could also use columns from the mutation target table
5920+
*/
5921+
public boolean supportsJoinInMutationStatementSubquery() {
5922+
return true;
5923+
}
5924+
59175925
}

hibernate-core/src/main/java/org/hibernate/dialect/H2Dialect.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1099,4 +1099,9 @@ public boolean supportsArrayConstructor() {
10991099
return true;
11001100
}
11011101

1102+
@Override
1103+
public boolean supportsJoinInMutationStatementSubquery() {
1104+
return false;
1105+
}
1106+
11021107
}

hibernate-core/src/main/java/org/hibernate/dialect/H2SqlAstTranslator.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -357,9 +357,4 @@ private boolean supportsOffsetFetchClausePercentWithTies() {
357357
// Introduction of PERCENT support https://github.com/h2database/h2database/commit/f45913302e5f6ad149155a73763c0c59d8205849
358358
return true;
359359
}
360-
361-
@Override
362-
protected boolean supportsJoinInMutationStatementSubquery() {
363-
return false;
364-
}
365360
}

hibernate-core/src/main/java/org/hibernate/sql/ast/spi/AbstractSqlAstTranslator.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1098,7 +1098,7 @@ protected Predicate determineWhereClauseRestrictionWithJoinEmulation(
10981098
);
10991099
querySpec.applyPredicate( statement.getRestriction() );
11001100

1101-
if ( supportsJoinInMutationStatementSubquery() ) {
1101+
if ( dialect.supportsJoinInMutationStatementSubquery() ) {
11021102
for ( TableGroup root : statement.getFromClause().getRoots() ) {
11031103
if ( root.getPrimaryTableReference() == statement.getTargetTable() ) {
11041104
final TableGroup dmlTargetTableGroup = new StandardTableGroup(
@@ -8566,14 +8566,6 @@ protected boolean supportsRowValueConstructorSyntaxInInSubQuery() {
85668566
return supportsRowValueConstructorSyntaxInInList();
85678567
}
85688568

8569-
/**
8570-
* If the dialect supports using joins in mutation statement subquery
8571-
* that could also use columns from the mutation target table
8572-
*/
8573-
protected boolean supportsJoinInMutationStatementSubquery() {
8574-
return true;
8575-
}
8576-
85778569
/**
85788570
* Returns a table expression that has one row.
85798571
*

0 commit comments

Comments
 (0)