problems with currval and rollback - Mailing list pgsql-jdbc

From Assad Jarrahian
Subject problems with currval and rollback
Date
Msg-id 4bd3e1480512221737h2c43739epd1c9640e1d2cea0@mail.gmail.com
Whole thread Raw
Responses Re: problems with currval and rollback  (Oliver Jowett <oliver@opencloud.com>)
List pgsql-jdbc
Hi all,
  So I started to make some changes with my jdbc code here and there
(nothing to do with the relevant lines) and suddenly currval and
rollback don't work.

             try{
                       db.setAutoCommit(false);
                       addLM.setInt(1, lm.getOrigin());
                          .......
                    addLM.executeUpdate();
                    sql = db.createStatement();
                     ResultSet result = sql.executeQuery("SELECT
currval('lm_id_seq');");
                       if (result. next()){
                               db.commit();
                               db.setAutoCommit(true);
                        else{
                               db.rollback(); //reverse all changes
                               db.setAutoCommit(true);
                      }
               catch(SQLException ex){
                       try {
                               db.rollback();
                               db.setAutoCommit(true);
                       } catch (SQLException e) {
                               throw e;
                      }
                       throw ex;
          }

What happens is that the it inserts a db, but cannot get a value back
using currval  (ERROR: ERROR: currval of sequence "lm_id_seq" is not
yet defined in this session 55000  ) , yet the db gets the addlm
inserted. It should rollback, but it does not. What gives?

I ran the insert-currval combo  from psql and it worked.
What gives?


Any help would be appreciated.

-assad

pgsql-jdbc by date:

Previous
From: Mike Charnoky
Date:
Subject: Re: Driver compatibility with 7.3 server
Next
From: Oliver Jowett
Date:
Subject: Re: problems with currval and rollback