Hi! PGSQL makes me crazy...
I port my apps to PGSQL, and I near to finish - but I got this problem... Params: PGSQL 8.3, Windows, Pylons, PGDB, DBUTILS... I opened the connection with DBUTILS. I have one thread (the test thread), possible it have more in the background, I don't know... See this pseudocode: start trs ("rollback; begin;") delete old recs insert new recs commit I delete all of old records with: "delete from levelfo where level = :level" This I do in one transaction that protect the next sequences to. Later I want to insert the records, BUT: def GetCodes(reks): l = [] for rek in reks: l.append(str(rek['KOD'])) return str(l) def LogInsertedReks(Index): csql = "select * from levelfo where level=%d" % self.LevelRek['KOD'] self.Cur.execute(csql) reks = dwdb.FetchAll(self.Cur) self.log.info(Index + ' #### INSERTED REKS ####') self.log.info('%s' % GetCodes(reks)) for levelforek in self.LevelFoReks: LogInsertedReks('Start1') LogInsertedReks('Start2') LogInsertedReks('Start3') LogInsertedReks('Start4') LogInsertedReks('Start5') LogInsertedReks('Start6') kod = levelforek['KOD'] self.log.info('#### INSERT ####') self.log.info('%s' % levelforek['KOD']) LogInsertedReks('Start7') LogInsertedReks('Start8') LogInsertedReks('Start9') See this log: 18:07:02,276 INFO [xxx] Start1 #### INSERTED REKS #### 18:07:02,276 INFO [xxx] [] 18:07:02,292 INFO [xxx] Start2 #### INSERTED REKS #### 18:07:02,292 INFO [xxx] [] 18:07:02,292 INFO [xxx] Start3 #### INSERTED REKS #### 18:07:02,292 INFO [xxx] [] 18:07:02,306 INFO [xxx] Start4 #### INSERTED REKS #### 18:07:02,306 INFO [xxx] [] 18:07:02,306 INFO [xxx] Start5 #### INSERTED REKS #### 18:07:02,306 INFO [xxx] [] 18:07:02,306 INFO [xxx] Start6 #### INSERTED REKS #### 18:07:02,306 INFO [xxx] [] 18:07:02,306 INFO [xxx] #### INSERT #### 18:07:02,306 INFO [xxx] 11551 18:07:02,306 INFO [xxx] Start7 #### INSERTED REKS #### 18:07:02,306 INFO [xxx] [] 18:07:02,619 INFO [xxx] Start8 #### INSERTED REKS #### 18:07:02,619 INFO [xxx] ['11555', '11556', '11557', '11558'] 18:07:02,634 INFO [xxx] Start9 #### INSERTED REKS #### 18:07:02,634 INFO [xxx] ['11555', '11556', '11557', '11558'] 18:07:02,697 INFO [xxx] After UID #### INSERTED REKS #### 18:07:02,697 INFO [xxx] ['11555', '11556', '11557', '11558'] As you see, I don't do anything (like db operations), and deleted records are appearing... Hmmmm... possible is it a cursor changing? When I change my logger to see the object ids, I can see the cursor changing (in the background): 18:21:29,134 INFO [xxx] Start7 #### INSERTED REKS #### 18:21:29,134 INFO [xxx] [] 18:21:29,134 INFO [xxx] Start7 #### CURSOR INFO #### 18:21:29,134 INFO [xxx] [<DBUtils.SteadyDB.SteadyDBCursor instance at 0x01955710>] 18:21:29,134 INFO [xxx] [<DBUtils.SteadyDB.SteadyDBConnection instance at 0x019555A8>] ********** 18:21:29,134 INFO [xxx] [<pgdb.pgdbCursor instance at 0x019556E8>] 18:21:29,431 INFO [xxx] Start8 #### INSERTED REKS #### 18:21:29,431 INFO [xxx] ['11555', '11556', '11557', '11558'] 18:21:29,431 INFO [xxx] Start8 #### CURSOR INFO #### 18:21:29,431 INFO [xxx] [<DBUtils.SteadyDB.SteadyDBCursor instance at 0x01955710>] 18:21:29,431 INFO [xxx] [<DBUtils.SteadyDB.SteadyDBConnection instance at 0x019555A8>] ********** 18:21:29,431 INFO [xxx] [<pgdb.pgdbCursor instance at 0x0195AE18>] What happened? How I can avoid the cursor changing? How to fix it in my transaction? I never ask for new cursor, I used same variable in all of my context (self.Cur)... :-( So what is the solution? Drop DBUtils? Or what? Thanks for your help: dd
-- http://mail.python.org/mailman/listinfo/python-list