Skip to content

Commit faa152a

Browse files
committed
HHH-19260 - Move supportsRecursiveSearchClause() to Dialect
Signed-off-by: Jan Schatteman <[email protected]>
1 parent c4551fe commit faa152a

File tree

10 files changed

+30
-30
lines changed

10 files changed

+30
-30
lines changed

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1675,4 +1675,9 @@ public boolean supportsRecursiveCycleClause() {
16751675
return true;
16761676
}
16771677

1678+
@Override
1679+
public boolean supportsRecursiveSearchClause() {
1680+
return true;
1681+
}
1682+
16781683
}

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

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -133,11 +133,6 @@ protected boolean supportsWithClauseInSubquery() {
133133
return false;
134134
}
135135

136-
@Override
137-
protected boolean supportsRecursiveSearchClause() {
138-
return true;
139-
}
140-
141136
@Override
142137
public void visitSqlSelection(SqlSelection sqlSelection) {
143138
if ( getCurrentCteStatement() != null ) {

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
@@ -1641,4 +1641,9 @@ public boolean supportsRecursiveCycleUsingClause() {
16411641
return getVersion().isSameOrAfter( 14 );
16421642
}
16431643

1644+
@Override
1645+
public boolean supportsRecursiveSearchClause() {
1646+
return getVersion().isSameOrAfter( 14 );
1647+
}
1648+
16441649
}

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

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -235,11 +235,6 @@ public void visitOffsetFetchClause(QueryPart queryPart) {
235235
}
236236
}
237237

238-
@Override
239-
protected boolean supportsRecursiveSearchClause() {
240-
return getDialect().getVersion().isSameOrAfter( 14 );
241-
}
242-
243238
@Override
244239
protected void renderStandardCycleClause(CteStatement cte) {
245240
super.renderStandardCycleClause( cte );

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5944,4 +5944,11 @@ public boolean supportsRecursiveCycleUsingClause() {
59445944
return false;
59455945
}
59465946

5947+
/**
5948+
* Whether the SQL search clause is supported, which can be used for recursive CTEs.
5949+
*/
5950+
public boolean supportsRecursiveSearchClause() {
5951+
return false;
5952+
}
5953+
59475954
}

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1756,4 +1756,9 @@ public boolean supportsRecursiveCycleClause() {
17561756
return true;
17571757
}
17581758

1759+
@Override
1760+
public boolean supportsRecursiveSearchClause() {
1761+
return true;
1762+
}
1763+
17591764
}

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

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,6 @@ protected boolean supportsWithClauseInSubquery() {
143143
return false;
144144
}
145145

146-
@Override
147-
protected boolean supportsRecursiveSearchClause() {
148-
return true;
149-
}
150-
151146
@Override
152147
public void visitSqlSelection(SqlSelection sqlSelection) {
153148
if ( getCurrentCteStatement() != null ) {

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1639,4 +1639,9 @@ public boolean supportsRecursiveCycleUsingClause() {
16391639
return getVersion().isSameOrAfter( 14 );
16401640
}
16411641

1642+
@Override
1643+
public boolean supportsRecursiveSearchClause() {
1644+
return getVersion().isSameOrAfter( 14 );
1645+
}
1646+
16421647
}

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

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -237,11 +237,6 @@ public void visitOffsetFetchClause(QueryPart queryPart) {
237237
}
238238
}
239239

240-
@Override
241-
protected boolean supportsRecursiveSearchClause() {
242-
return getDialect().getVersion().isSameOrAfter( 14 );
243-
}
244-
245240
@Override
246241
protected void renderStandardCycleClause(CteStatement cte) {
247242
super.renderStandardCycleClause( cte );

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
@@ -2320,7 +2320,7 @@ protected void renderCteColumns(CteStatement cte) {
23202320
}
23212321
}
23222322
if ( cte.isRecursive() ) {
2323-
if ( !supportsRecursiveSearchClause() ) {
2323+
if ( !dialect.supportsRecursiveSearchClause() ) {
23242324
if ( cte.getSearchColumn() != null ) {
23252325
appendSql( COMMA_SEPARATOR );
23262326
if ( cte.getSearchClauseKind() == CteSearchClauseKind.BREADTH_FIRST ) {
@@ -2467,13 +2467,6 @@ protected boolean needsRecursiveKeywordInWithClause() {
24672467
return true;
24682468
}
24692469

2470-
/**
2471-
* Whether the SQL search clause is supported, which can be used for recursive CTEs.
2472-
*/
2473-
protected boolean supportsRecursiveSearchClause() {
2474-
return false;
2475-
}
2476-
24772470
/**
24782471
* Whether the recursive search and cycle clause emulations based on the array and row constructor is supported.
24792472
*/
@@ -2488,7 +2481,7 @@ protected void renderMaterializationHint(CteMaterialization materialization) {
24882481
}
24892482

24902483
protected void renderSearchClause(CteStatement cte) {
2491-
if ( supportsRecursiveSearchClause() ) {
2484+
if ( dialect.supportsRecursiveSearchClause() ) {
24922485
renderStandardSearchClause( cte );
24932486
}
24942487
}
@@ -2569,7 +2562,7 @@ protected void renderStandardCycleClause(CteStatement cte) {
25692562

25702563
protected void renderRecursiveCteVirtualSelections(SelectClause selectClause) {
25712564
if ( currentCteStatement != null && currentCteStatement.isRecursive() ) {
2572-
if ( currentCteStatement.getSearchColumn() != null && !supportsRecursiveSearchClause() ) {
2565+
if ( currentCteStatement.getSearchColumn() != null && !dialect.supportsRecursiveSearchClause() ) {
25732566
appendSql( COMMA_SEPARATOR );
25742567
if ( supportsRecursiveClauseArrayAndRowEmulation() ) {
25752568
emulateSearchClauseOrderWithRowAndArray( selectClause );

0 commit comments

Comments
 (0)