Statement.java patch (Postgresql 7.1.3) - Mailing list pgsql-jdbc

From Ed Yu
Subject Statement.java patch (Postgresql 7.1.3)
Date
Msg-id 001001c1998b$52f3d560$bf00a8c0@sc.rr.com
Whole thread Raw
List pgsql-jdbc
The use of Connection.setAutoCommit(false) will not work with batch mode.
The following is a patch to properly fix up the Statement.java (jdbc2):

*** Statement.java.orig Fri Feb 16 11:45:00 2001
--- Statement.java      Wed Jan  9 22:40:34 2002
***************
*** 377,389 ****
        int size=batch.size();
        int[] result=new int[size];
        int i=0;
!       this.execute("begin"); // PTM: check this when autoCommit is false
        try {
            for(i=0;i<size;i++)
                result[i]=this.executeUpdate((String)batch.elementAt(i));
!           this.execute("commit"); // PTM: check this
        } catch(SQLException e) {
!           this.execute("abort"); // PTM: check this
            throw new PSQLException("postgresql.stat.batch.error",new
Integer(i),batch.elementAt(i));
        }
        return result;
--- 377,396 ----
        int size=batch.size();
        int[] result=new int[size];
        int i=0;
!
!       // Modified by Ed Yu <ekyu@asgnet.psc.sc.edu>
!       // We want to use a transaction even if autoCommit is true which
!       // is the default for JDBC.
!       if (connection.getAutoCommit())
!               this.execute("begin");
        try {
            for(i=0;i<size;i++)
                result[i]=this.executeUpdate((String)batch.elementAt(i));
!             // If autoCommit is true, then commits
!             if (connection.getAutoCommit())
!               this.execute("commit");
        } catch(SQLException e) {
!           this.execute("abort"); // This is ok since transaction is always
on
            throw new PSQLException("postgresql.stat.batch.error",new
Integer(i),batch.elementAt(i));
        }
        return result;


pgsql-jdbc by date:

Previous
From: "Ed Yu"
Date:
Subject: Re: JDBC patch for DatabaseMetaData
Next
From: Barry Lind
Date:
Subject: Re: PostgreSQL JDBC and WebLogic