Here is a revised patch with Barry's suggestions implemented
Dave
Index: Connection.java
===================================================================
RCS file:
/home/projects/pgsql/cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/Connection.java,v
retrieving revision 1.26
diff -c -r1.26 Connection.java
*** Connection.java 2001/08/24 16:50:12 1.26
--- Connection.java 2001/09/04 17:21:29
***************
*** 906,912 ****
if (autoCommit)
ExecSQL("end");
else {
! ExecSQL("begin; " + getIsolationLevelSQL());
}
this.autoCommit = autoCommit;
}
--- 906,917 ----
if (autoCommit)
ExecSQL("end");
else {
! if (haveMinimumServerVersion("7.1")){
! ExecSQL("begin;"+getIsolationLevelSQL());
! }else{
! ExecSQL("begin");
! ExecSQL(getIsolationLevelSQL());
! }
}
this.autoCommit = autoCommit;
}
***************
*** 935,941 ****
public void commit() throws SQLException {
if (autoCommit)
return;
! ExecSQL("commit; begin; " + getIsolationLevelSQL());
}
/**
--- 940,952 ----
public void commit() throws SQLException {
if (autoCommit)
return;
! if (haveMinimumServerVersion("7.1")){
! ExecSQL("commit;begin;"+getIsolationLevelSQL());
! }else{
! ExecSQL("commit");
! ExecSQL("begin");
! ExecSQL(getIsolationLevelSQL());
! }
}
/**
***************
*** 949,955 ****
public void rollback() throws SQLException {
if (autoCommit)
return;
! ExecSQL("rollback; begin; " + getIsolationLevelSQL());
}
/**
--- 960,972 ----
public void rollback() throws SQLException {
if (autoCommit)
return;
! if (haveMinimumServerVersion("7.1")){
! ExecSQL("rollback; begin"+getIsolationLevelSQL());
! }else{
! ExecSQL("rollback");
! ExecSQL("begin");
! ExecSQL(getIsolationLevelSQL());
! }
}
/**
***************
*** 1035,1055 ****
if (haveMinimumServerVersion("7.1")) {
return "";
}
! String q = "SET TRANSACTION ISOLATION LEVEL";
switch(isolationLevel) {
case java.sql.Connection.TRANSACTION_READ_COMMITTED:
! q = q + " READ COMMITTED";
break;
case java.sql.Connection.TRANSACTION_SERIALIZABLE:
! q = q + " SERIALIZABLE";
break;
default:
throw new PSQLException("postgresql.con.isolevel",new
Integer(isolationLevel));
}
! return q;
}
/**
--- 1052,1072 ----
if (haveMinimumServerVersion("7.1")) {
return "";
}
! StringBuffer sb = new StringBuffer("SET TRANSACTION ISOLATION LEVEL");
switch(isolationLevel) {
case java.sql.Connection.TRANSACTION_READ_COMMITTED:
! sb.append(" READ COMMITTED");
break;
case java.sql.Connection.TRANSACTION_SERIALIZABLE:
! sb.append(" SERIALIZABLE");
break;
default:
throw new PSQLException("postgresql.con.isolevel",new
Integer(isolationLevel));
}
! return sb.toString();
}
/**
---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?
http://www.postgresql.org/search.mpl