Skip to content

Commit c2f06eb

Browse files
committed
HHH-19260 - Move supportsRecursiveCycleUsingClause() from AbstractSqlAstTranslator to Dialect
Signed-off-by: Jan Schatteman <[email protected]>
1 parent b587460 commit c2f06eb

File tree

6 files changed

+22
-22
lines changed

6 files changed

+22
-22
lines changed

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1636,4 +1636,9 @@ public boolean supportsRecursiveCycleClause() {
16361636
return getVersion().isSameOrAfter( 14 );
16371637
}
16381638

1639+
@Override
1640+
public boolean supportsRecursiveCycleUsingClause() {
1641+
return getVersion().isSameOrAfter( 14 );
1642+
}
1643+
16391644
}

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

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -240,15 +240,10 @@ protected boolean supportsRecursiveSearchClause() {
240240
return getDialect().getVersion().isSameOrAfter( 14 );
241241
}
242242

243-
@Override
244-
protected boolean supportsRecursiveCycleUsingClause() {
245-
return getDialect().getVersion().isSameOrAfter( 14 );
246-
}
247-
248243
@Override
249244
protected void renderStandardCycleClause(CteStatement cte) {
250245
super.renderStandardCycleClause( cte );
251-
if ( cte.getCycleMarkColumn() != null && cte.getCyclePathColumn() == null && supportsRecursiveCycleUsingClause() ) {
246+
if ( cte.getCycleMarkColumn() != null && cte.getCyclePathColumn() == null && getDialect().supportsRecursiveCycleUsingClause() ) {
252247
appendSql( " using " );
253248
appendSql( determineCyclePathColumnName( cte ) );
254249
}

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5937,4 +5937,11 @@ public boolean supportsRecursiveCycleClause() {
59375937
return false;
59385938
}
59395939

5940+
/**
5941+
* Whether the SQL cycle clause supports the using sub-clause.
5942+
*/
5943+
public boolean supportsRecursiveCycleUsingClause() {
5944+
return false;
5945+
}
5946+
59405947
}

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1634,4 +1634,9 @@ public boolean supportsRecursiveCycleClause() {
16341634
return getVersion().isSameOrAfter( 14 );
16351635
}
16361636

1637+
@Override
1638+
public boolean supportsRecursiveCycleUsingClause() {
1639+
return getVersion().isSameOrAfter( 14 );
1640+
}
1641+
16371642
}

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

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -242,15 +242,10 @@ protected boolean supportsRecursiveSearchClause() {
242242
return getDialect().getVersion().isSameOrAfter( 14 );
243243
}
244244

245-
@Override
246-
protected boolean supportsRecursiveCycleUsingClause() {
247-
return getDialect().getVersion().isSameOrAfter( 14 );
248-
}
249-
250245
@Override
251246
protected void renderStandardCycleClause(CteStatement cte) {
252247
super.renderStandardCycleClause( cte );
253-
if ( cte.getCycleMarkColumn() != null && cte.getCyclePathColumn() == null && supportsRecursiveCycleUsingClause() ) {
248+
if ( cte.getCycleMarkColumn() != null && cte.getCyclePathColumn() == null && getDialect().supportsRecursiveCycleUsingClause() ) {
254249
appendSql( " using " );
255250
appendSql( determineCyclePathColumnName( cte ) );
256251
}

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

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2337,7 +2337,7 @@ protected void renderCteColumns(CteStatement cte) {
23372337
}
23382338
}
23392339
if ( cte.getCycleMarkColumn() != null && !dialect.supportsRecursiveCycleClause()
2340-
|| cte.getCyclePathColumn() != null && !supportsRecursiveCycleUsingClause() ) {
2340+
|| cte.getCyclePathColumn() != null && !dialect.supportsRecursiveCycleUsingClause() ) {
23412341
appendSql( COMMA_SEPARATOR );
23422342
appendSql( determineCyclePathColumnName( cte ) );
23432343
}
@@ -2474,13 +2474,6 @@ protected boolean supportsRecursiveSearchClause() {
24742474
return false;
24752475
}
24762476

2477-
/**
2478-
* Whether the SQL cycle clause supports the using sub-clause.
2479-
*/
2480-
protected boolean supportsRecursiveCycleUsingClause() {
2481-
return false;
2482-
}
2483-
24842477
/**
24852478
* Whether the recursive search and cycle clause emulations based on the array and row constructor is supported.
24862479
*/
@@ -2567,7 +2560,7 @@ protected void renderStandardCycleClause(CteStatement cte) {
25672560
cte.getCycleValue().accept( this );
25682561
appendSql( " default " );
25692562
cte.getNoCycleValue().accept( this );
2570-
if ( cte.getCyclePathColumn() != null && supportsRecursiveCycleUsingClause() ) {
2563+
if ( cte.getCyclePathColumn() != null && dialect.supportsRecursiveCycleUsingClause() ) {
25712564
appendSql( " using " );
25722565
appendSql( cte.getCyclePathColumn().getColumnExpression() );
25732566
}
@@ -2585,7 +2578,7 @@ protected void renderRecursiveCteVirtualSelections(SelectClause selectClause) {
25852578
emulateSearchClauseOrderWithString( selectClause );
25862579
}
25872580
}
2588-
if ( !dialect.supportsRecursiveCycleClause() || currentCteStatement.getCyclePathColumn() != null && !supportsRecursiveCycleUsingClause() ) {
2581+
if ( !dialect.supportsRecursiveCycleClause() || currentCteStatement.getCyclePathColumn() != null && !dialect.supportsRecursiveCycleUsingClause() ) {
25892582
if ( currentCteStatement.getCycleMarkColumn() != null ) {
25902583
appendSql( COMMA_SEPARATOR );
25912584
if ( supportsRecursiveClauseArrayAndRowEmulation() ) {

0 commit comments

Comments
 (0)