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

Reply via email to