@@ -42,6 +42,7 @@ public final class JDBC_API_Tester {
4242 private Connection con ; // main connection shared by all tests
4343 final private int dbmsMajorVersion ;
4444 final private int dbmsMinorVersion ;
45+ final private int dbmsMicroVersion ;
4546 final private boolean isPostDec2023 ; // flags to support version specific output
4647 final private boolean isPostMar2025 ;
4748 final private boolean isPostDec2025 ; // Dec2025-SP1 or later
@@ -61,13 +62,13 @@ public final class JDBC_API_Tester {
6162 DatabaseMetaData dbmd = con_ .getMetaData ();
6263 dbmsMajorVersion = dbmd .getDatabaseMajorVersion ();
6364 dbmsMinorVersion = dbmd .getDatabaseMinorVersion ();
65+ dbmsMicroVersion = (con_ instanceof MonetConnection ) ? ((MonetConnection ) con_ ).getDatabaseMicroVersion () : 0 ;
6466 // from version 11.50 on, the MonetDB server returns different metadata for
6567 // integer digits (1 less) and for clob and char columns (now return varchar).
66- isPostDec2023 = versionIsAtLeast (11 , 50 );
67- isPostMar2025 = versionIsAtLeast (11 , 54 );
68- // the "micro" version is not easily accessible
69- // post-Dec2025 means Dec2025-SP1 or later
70- isPostDec2025 = versionIsAtLeast (11 , 56 ) || (dbmsMajorVersion == 11 && dbmsMinorVersion == 55 && Integer .parseInt (dbmd .getDatabaseProductVersion ().substring (6 )) >= 2 );
68+ isPostDec2023 = versionIsAtLeast (11 , 50 , 0 );
69+ isPostMar2025 = versionIsAtLeast (11 , 54 , 0 );
70+ // post-Dec2025 means Dec2025-SP1 (11.55.2) or later. It has new system table: tmp.dependencies
71+ isPostDec2025 = versionIsAtLeast (11 , 55 , 2 );
7172 }
7273
7374 /**
@@ -165,16 +166,26 @@ public static void main(String[] args) throws Exception {
165166 ConnectionTests .runTests (con_URL );
166167
167168 // invoke running OnClientTester only on Oct2020 (11.39) or older servers
168- if (!jt .versionIsAtLeast (11 ,40 )) {
169+ if (!jt .versionIsAtLeast (11 ,40 , 0 )) {
169170 OnClientTester oct = new OnClientTester (con_URL , 0 );
170171 int failures = oct .runTests ();
171172 if (failures > 0 )
172173 System .exit (-1 );
173174 }
174175 }
175176
176- private boolean versionIsAtLeast (int major , int minor ) {
177- return ((dbmsMajorVersion == major && dbmsMinorVersion >= minor ) || dbmsMajorVersion > major );
177+ private boolean versionIsAtLeast (int requiredMajor , int requiredMinor , int requiredMicro ) {
178+ if (dbmsMajorVersion > requiredMajor )
179+ return true ;
180+ if (dbmsMajorVersion < requiredMajor )
181+ return false ;
182+
183+ if (dbmsMinorVersion > requiredMinor )
184+ return true ;
185+ if (dbmsMinorVersion < requiredMinor )
186+ return false ;
187+
188+ return dbmsMicroVersion >= requiredMicro ;
178189 }
179190
180191 private void Test_Cautocommit (String arg0 ) {
0 commit comments