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