@@ -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