Changeset: ce6bc9908735 for monetdb-java
URL: https://dev.monetdb.org/hg/monetdb-java/rev/ce6bc9908735
Modified Files:
        src/main/java/org/monetdb/jdbc/MonetConnection.java
Branch: default
Log Message:

Add utility method checkMinimumDBVersion(int major, int minor). Will be used in 
more classes.


diffs (58 lines):

diff --git a/src/main/java/org/monetdb/jdbc/MonetConnection.java 
b/src/main/java/org/monetdb/jdbc/MonetConnection.java
--- a/src/main/java/org/monetdb/jdbc/MonetConnection.java
+++ b/src/main/java/org/monetdb/jdbc/MonetConnection.java
@@ -1727,10 +1727,11 @@ public class MonetConnection
 
                        // as of release Jun2020 (11.37.7) the function 
sys.settimeout(secs bigint)
                        // is deprecated and replaced by new 
sys.setquerytimeout(secs int)
-                       if ((getDatabaseMajorVersion() == 11) && 
(getDatabaseMinorVersion() < 37))
+                       if (checkMinimumDBVersion(11, 37))
+                               callstmt = "CALL sys.\"setquerytimeout\"(" + 
seconds + ")";
+                       else
                                callstmt = "CALL sys.\"settimeout\"(" + seconds 
+ ")";
-                       else
-                               callstmt = "CALL sys.\"setquerytimeout\"(" + 
seconds + ")";
+
                        // for debug: System.out.println("Before: " + callstmt);
                        st = createStatement();
                        st.execute(callstmt);
@@ -1955,22 +1956,30 @@ public class MonetConnection
        }
 
        /**
+        * Utility method to check if connected server matches or is higher 
than a requested version.
+        *
+        * @param major dbserver major version number.
+        * @param minor dbserver minor version number.
+        * @return true when the server version is higher or equal to the 
major.minor else false.
+        */
+       boolean checkMinimumDBVersion(int major, int minor) {
+               try {
+                       if ((getDatabaseMinorVersion() >= minor) && 
(getDatabaseMajorVersion() == major))
+                               return true;
+               } catch (SQLException e) { /* ignore */ }
+               return false;
+       }
+
+       /**
         * Get whether the MonetDB SQL parser supports ODBC/JDBC escape 
sequence syntax.
         * See also: 
https://docs.oracle.com/javadb/10.6.2.1/ref/rrefjdbc1020262.html
-        * It does when the server version is 11.46 or higher.
+        * It does when the server version is 11.47 (Jun2023) or higher.
         * This method is called from: MonetDatabaseMetaData and 
MonetCallableStatement.
         *
         * @return true when the server supports ODBC/JDBC escape sequence 
syntax else false.
         */
        boolean supportsEscapeSequenceSyntax() {
-               try {
-                       if ((getDatabaseMajorVersion() == 11) && 
(getDatabaseMinorVersion() <= 45))
-                               // older servers do not support it
-                               return false;
-               } catch (SQLException e) {
-                       return false;
-               }
-               return true;
+               return checkMinimumDBVersion(11, 47);
        }
 
 
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to