Statement.java patch (Postgresql 7.1.3)

From: "Ed Yu" <ekyu(at)sc(dot)rr(dot)com>
To: "pgsql-jdbc" <pgsql-jdbc(at)postgresql(dot)org>
Subject: Statement.java patch (Postgresql 7.1.3)
Date: 2002-01-10 04:00:21
Message-ID: 001001c1998b$52f3d560$bf00a8c0@sc.rr.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(at)asgnet(dot)psc(dot)sc(dot)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;

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Ed Yu 2002-01-10 04:10:19 Re: JDBC patch for DatabaseMetaData
Previous Message Barry Lind 2002-01-10 03:09:46 Re: LISTEN/NOTIFY support in JDBC driver?