@@ -445,8 +445,8 @@ public boolean apply(Dialect dialect) {
445445 public static class SupportsOrderByInCorrelatedSubquery implements DialectFeatureCheck {
446446 public boolean apply (Dialect dialect ) {
447447 return dialect .supportsOrderByInSubquery ()
448- // For some reason, HANA doesn't support order by in correlated subqueries...
449- && !( dialect instanceof HANADialect );
448+ // HANA doesn't support ' order by' in correlated subqueries
449+ && !( dialect instanceof HANADialect );
450450 }
451451 }
452452
@@ -478,15 +478,15 @@ public boolean apply(Dialect dialect) {
478478 public static class SupportsStringAggregation implements DialectFeatureCheck {
479479 public boolean apply (Dialect dialect ) {
480480 return dialect instanceof H2Dialect
481- || dialect instanceof HSQLDialect
482- || dialect instanceof MySQLDialect
483- || dialect instanceof PostgreSQLDialect
484- || dialect instanceof HANADialect
485- || dialect instanceof CockroachDialect
486- || dialect instanceof DB2Dialect
487- || dialect instanceof OracleDialect
488- || dialect instanceof SpannerDialect
489- || dialect instanceof SQLServerDialect ;
481+ || dialect instanceof HSQLDialect
482+ || dialect instanceof MySQLDialect
483+ || dialect instanceof PostgreSQLDialect
484+ || dialect instanceof HANADialect
485+ || dialect instanceof CockroachDialect
486+ || dialect instanceof DB2Dialect
487+ || dialect instanceof OracleDialect
488+ || dialect instanceof SpannerDialect
489+ || dialect instanceof SQLServerDialect ;
490490 }
491491 }
492492
@@ -496,7 +496,7 @@ public boolean apply(Dialect dialect) {
496496 || dialect instanceof PostgreSQLDialect
497497 || dialect instanceof HANADialect
498498 || dialect instanceof CockroachDialect
499- || dialect instanceof DB2Dialect && ( ( DB2Dialect ) dialect ) .getDB2Version ().isSameOrAfter ( 11 )
499+ || dialect instanceof DB2Dialect db2 && db2 .getDB2Version ().isSameOrAfter ( 11 )
500500 || dialect instanceof OracleDialect
501501 || dialect instanceof SpannerDialect
502502 || dialect instanceof SQLServerDialect ;
@@ -509,7 +509,7 @@ public boolean apply(Dialect dialect) {
509509 || dialect instanceof PostgreSQLDialect
510510 || dialect instanceof HANADialect
511511 || dialect instanceof CockroachDialect
512- || dialect instanceof DB2Dialect && ( ( DB2Dialect ) dialect ) .getDB2Version ().isSameOrAfter ( 11 )
512+ || dialect instanceof DB2Dialect db2 && db2 .getDB2Version ().isSameOrAfter ( 11 )
513513 || dialect instanceof OracleDialect
514514 || dialect instanceof SpannerDialect
515515 || dialect instanceof SQLServerDialect ;
@@ -519,13 +519,13 @@ public boolean apply(Dialect dialect) {
519519 public static class SupportsWindowFunctions implements DialectFeatureCheck {
520520 public boolean apply (Dialect dialect ) {
521521 // Derby doesn't really support window functions, only row_number()
522- return dialect .supportsWindowFunctions () && !( dialect instanceof DerbyDialect );
522+ return dialect .supportsWindowFunctions ()
523+ && !( dialect instanceof DerbyDialect );
523524 }
524525 }
525526
526527 public static class SupportsFilterClause implements DialectFeatureCheck {
527528 public boolean apply (Dialect dialect ) {
528- // Derby doesn't really support window functions, only row_number()
529529 return dialect instanceof PostgreSQLDialect ;
530530 }
531531 }
@@ -539,7 +539,6 @@ public boolean apply(Dialect dialect) {
539539
540540 public static class SupportsFullJoin implements DialectFeatureCheck {
541541 public boolean apply (Dialect dialect ) {
542- // TiDB db does not support subqueries for ON condition
543542 return !( dialect instanceof H2Dialect
544543 || dialect instanceof MySQLDialect
545544 || dialect instanceof SybaseDialect
@@ -553,7 +552,21 @@ public boolean apply(Dialect dialect) {
553552 || dialect instanceof SybaseDialect
554553 || dialect instanceof DerbyDialect
555554 || dialect instanceof FirebirdDialect
556- || dialect instanceof DB2Dialect && ( (DB2Dialect ) dialect ).getDB2Version ().isBefore ( 11 ) );
555+ || dialect instanceof InformixDialect
556+ || dialect instanceof DB2Dialect db2 && db2 .getDB2Version ().isBefore ( 11 ) );
557+ }
558+ }
559+
560+ public static class SupportsExtractEpoch implements DialectFeatureCheck {
561+ public boolean apply (Dialect dialect ) {
562+ // I could not find any reasonable way to implement this on Informix
563+ return !( dialect instanceof InformixDialect );
564+ }
565+ }
566+
567+ public static class SupportsExtractDayOfWeekYearMonth implements DialectFeatureCheck {
568+ public boolean apply (Dialect dialect ) {
569+ return !( dialect instanceof InformixDialect );
557570 }
558571 }
559572
@@ -697,9 +710,9 @@ public boolean apply(Dialect dialect) {
697710 public static class SupportsJsonQueryNestedPath implements DialectFeatureCheck {
698711 public boolean apply (Dialect dialect ) {
699712 return definesFunction ( dialect , "json_query" )
700- && !( dialect instanceof SQLServerDialect )
701- && !( dialect instanceof H2Dialect )
702- && !( dialect instanceof CockroachDialect );
713+ && !( dialect instanceof SQLServerDialect )
714+ && !( dialect instanceof H2Dialect )
715+ && !( dialect instanceof CockroachDialect );
703716 }
704717 }
705718
@@ -724,14 +737,14 @@ public boolean apply(Dialect dialect) {
724737 public static class SupportsJsonValueErrorBehavior implements DialectFeatureCheck {
725738 public boolean apply (Dialect dialect ) {
726739 return definesFunction ( dialect , "json_value" )
727- // H2 emulation doesn't support error behavior
728- && !( dialect instanceof H2Dialect )
729- // MariaDB simply doesn't support the on error and on empty clauses
730- && !( dialect instanceof MariaDBDialect )
731- // Cockroach doesn't have a native json_value function
732- && !( dialect instanceof CockroachDialect )
733- // PostgreSQL added support for native json_value in version 17
734- && ( !( dialect instanceof PostgreSQLDialect ) || dialect .getVersion ().isSameOrAfter ( 17 ) );
740+ // H2 emulation doesn't support error behavior
741+ && !( dialect instanceof H2Dialect )
742+ // MariaDB simply doesn't support the on error and on empty clauses
743+ && !( dialect instanceof MariaDBDialect )
744+ // Cockroach doesn't have a native json_value function
745+ && !( dialect instanceof CockroachDialect )
746+ // PostgreSQL added support for native json_value in version 17
747+ && !( dialect instanceof PostgreSQLDialect && dialect .getVersion ().isBefore ( 17 ) );
735748 }
736749 }
737750
@@ -744,8 +757,8 @@ public boolean apply(Dialect dialect) {
744757 public static class SupportsJsonObjectAgg implements DialectFeatureCheck {
745758 public boolean apply (Dialect dialect ) {
746759 return definesFunction ( dialect , "json_objectagg" )
747- // Bug in HSQL: https://sourceforge.net/p/hsqldb/bugs/1718/
748- && !( dialect instanceof HSQLDialect );
760+ // Bug in HSQL: https://sourceforge.net/p/hsqldb/bugs/1718/
761+ && !( dialect instanceof HSQLDialect );
749762 }
750763 }
751764
0 commit comments