Re: Read transactions don't work on 7.0.x db's - Mailing list pgsql-jdbc

From Barry Lind
Subject Re: Read transactions don't work on 7.0.x db's
Date
Msg-id 3B904815.8050507@xythos.com
Whole thread Raw
In response to Re: Read transactions don't work on 7.0.x db's  ("Dave Cramer" <Dave@micro-automation.net>)
Responses Re: Read transactions don't work on 7.0.x db's
List pgsql-jdbc
Dave,

The multiple statements in one call is there for performance reasons.
Please don't remove it entirely since it works fine in 7.1 and 7.2.
Instead your fix should be conditional based on server version:

if (autoCommit)
   ExecSQL("end");
else {
   ifMinumumServerVersion("7.1") {
     ExecSQL("begin; " + getIsolationLevelSQL());
   } else {
     ExecSQL("begin");
     ExecSQL(getIsolationLevelSQL());
   }
}


thanks,
--Barry



Dave Cramer wrote:

> Here's a patch to fix the problem below
>
> Dave
>
> -----Original Message-----
> From: pgsql-jdbc-owner@postgresql.org
> [mailto:pgsql-jdbc-owner@postgresql.org] On Behalf Of Dave Cramer
> Sent: August 30, 2001 8:51 PM
> To: pgsql-jdbc@postgresql.org
> Subject: [JDBC] Read transactions don't work on 7.0.x db's
>
>
> The following code fails on a 7.0 db, but works on a 7.1 db
>
> It works fine with the 7.0 jar, but not with the latest code
>
> I had a quick look and everything looks ok. I am going to keep looking
> but I thought I would throw this out and see if anyone knows what is
> going on
>
> Dave
>
> package test;
> import java.sql.*;
> /**
>  * Title:
>  * Description:
>  * Copyright:    Copyright (c) 2001
>  * Company:
>  * @author
>  * @version 1.0
>  */
>
> public class TransactionSelect {
>
>   public TransactionSelect()
>   {
>   }
>   public static Connection getConnection( String url, String user,
> String password)
>   {
>     try {
>       Class.forName("org.postgresql.Driver");
>       return java.sql.DriverManager.getConnection(url,user,password);
>     } catch(ClassNotFoundException ex) {
>       ex.printStackTrace(System.out);
>     } catch(SQLException ex) {
>       ex.printStackTrace(System.out);
>     }
>     return null;
>   }
>
>   public static void main(String[] args)
>   {
>
>     try{
>       Connection con =
> getConnection("jdbc:postgresql://192.168.1.1/davec","davec","");
>       if (con == null){
>         throw new RuntimeException("no Connection");
>       }
>       con.setAutoCommit(false);
>       PreparedStatement pstmt = con.prepareStatement("select * from
> categories" );
>       ResultSet rs = pstmt.executeQuery();
>       con.commit();
>       con.close();
>     }catch (SQLException ex){
>       ex.printStackTrace(System.out);
>     }
>   }
> }
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>
>
>
> ------------------------------------------------------------------------
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://www.postgresql.org/search.mpl
>
> Connection.patch
>
> Content-Type:
>
> application/octet-stream
> Content-Encoding:
>
> quoted-printable
>
>
> ------------------------------------------------------------------------
> Part 1.3
>
> Content-Type:
>
> text/plain
> Content-Encoding:
>
> binary
>
>



pgsql-jdbc by date:

Previous
From: Barry Lind
Date:
Subject: Re: truncated InputStream returned with getAsciiInputStream()
Next
From: Justin Clift
Date:
Subject: Need help with JDBC driver. Problem, - getExportedKeys = Driver.notImplemented() exception