Changeset: 108123ca6889 for monetdb-java
URL: https://dev.monetdb.org/hg/monetdb-java/rev/108123ca6889
Modified Files:
        release.txt
        src/main/java/org/monetdb/jdbc/MonetConnection.java
        src/main/java/org/monetdb/jdbc/MonetDriver.java.in
Branch: default
Log Message:

Add autocommit=true/false option to jdbc url


diffs (84 lines):

diff --git a/release.txt b/release.txt
--- a/release.txt
+++ b/release.txt
@@ -31,6 +31,7 @@ Supported connection properties are:
        language=<sql or mal>              default is: sql
        fetchsize=<nr of rows>             default is: 250; -1 means fetch 
everything at once
        debug=true                         default is: false
+       autocommit=false                   default is: true
        logfile=<name of logfile>
        hash=<SHA512, SHA384, SHA256 or SHA1>
 
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
@@ -210,6 +210,13 @@ public class MonetConnection
                if (hash != null)
                        conn_props.setProperty("hash", hash);
 
+               String autocommit_prop = props.getProperty("autocommit");
+               boolean initial_autocommit = true;
+               if (autocommit_prop != null) {
+                       initial_autocommit = 
Boolean.parseBoolean(autocommit_prop);
+                       conn_props.setProperty("initial_autocommit", 
Boolean.toString(initial_autocommit));
+               }
+
                final String fetchsize_prop = props.getProperty("fetchsize");
                if (fetchsize_prop != null) {
                        try {
@@ -288,6 +295,7 @@ public class MonetConnection
                int offsetMillis = cal.get(Calendar.ZONE_OFFSET) + 
cal.get(Calendar.DST_OFFSET);
                int offsetSeconds = offsetMillis / 1000;
                final HandshakeOptions handshakeOptions = new 
HandshakeOptions();
+               handshakeOptions.set(Setting.AutoCommit, initial_autocommit ? 1 
: 0);
                handshakeOptions.set(Setting.TimeZone, offsetSeconds);
                handshakeOptions.set(Setting.ReplySize, defaultFetchSize);
 //             handshakeOptions.set(Setting.SizeHeader, 1);
@@ -388,8 +396,9 @@ public class MonetConnection
 
                // the following initialisers are only valid when the language 
is SQL...
                if (lang == LANG_SQL) {
-                       // enable auto commit
-                       setAutoCommit(true);
+                       if (handshakeOptions.mustSend(Setting.AutoCommit)) {
+                               
setAutoCommit(handshakeOptions.get(Setting.AutoCommit) != 0);
+                       }
 
                        // set our time zone on the server, if we haven't 
already
                        if (handshakeOptions.mustSend(Setting.TimeZone)) {
@@ -1822,6 +1831,7 @@ public class MonetConnection
                        name.equals("hash") ||
                        name.equals("treat_blob_as_binary") ||
                        name.equals("treat_clob_as_varchar") ||
+                       name.equals("autocommit") ||
                        name.equals("so_timeout") ||
                        name.equals("fetchsize");       // only supported by 
servers from version 11.41.1 onwards
        }
diff --git a/src/main/java/org/monetdb/jdbc/MonetDriver.java.in 
b/src/main/java/org/monetdb/jdbc/MonetDriver.java.in
--- a/src/main/java/org/monetdb/jdbc/MonetDriver.java.in
+++ b/src/main/java/org/monetdb/jdbc/MonetDriver.java.in
@@ -195,7 +195,7 @@ public class MonetDriver implements Driv
                        return null;
 
                final String[] boolean_choices = new String[] { "true", "false" 
};
-               final DriverPropertyInfo[] dpi = new DriverPropertyInfo[9];     
// we currently support 9 connection properties
+               final DriverPropertyInfo[] dpi = new DriverPropertyInfo[10];    
// we currently support 10 connection properties
 
                DriverPropertyInfo prop = new DriverPropertyInfo("user", info 
!= null ? info.getProperty("user") : null);
                prop.required = true;
@@ -247,13 +247,11 @@ public class MonetDriver implements Driv
                prop.description = "Defines the maximum time to wait in 
milliseconds on a blocking read socket call"; // this corresponds to the 
Connection.setNetworkTimeout() method introduced in JDBC 4.1
                dpi[8] = prop;
 
-/* next property is no longer supported in: new MonetConnection(props)
-               prop = new DriverPropertyInfo("follow_redirects", "true");
+               prop = new DriverPropertyInfo("autocommit", "true");
                prop.required = false;
-               prop.description = "Whether redirects issued by the server 
should be followed";
+               prop.description = "Whether the connection should start in 
auto-commit mode";
                prop.choices = boolean_choices;
                dpi[9] = prop;
-*/
 
                return dpi;
        }
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to