2008/6/1 Adam Rich <adam.r@xxxxxxxxxxxxx>: > >> I need that 5 queries, fired from the same ajax request to a web >> python application, see the same database snapshot. The driver is >> psycopg2. >> >> Since postgresql 8.2 functions can't return multiple result sets what >> would be the best aproach? >> > > You want to set your transaction isolation to "Serializable". > Then execute your 5 queries via the same connection, and the same > Transaction. > > You can do that with this command: > > BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE; I'm not sure i got it. You mean like this?: import psycopg2 as db dsn = 'host=localhost dbname=dbname user=user password=passwd' connection = db.connect(dsn) cursor = connection.cursor() cursor.execute('BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE;'); rs1 = cursor.execute(query_1, (param1,)) rs2 = cursor.execute(query_2, (param2,)) cursor.execute('commit;'); cursor.close() connection.close() I tested it and it raises no exception. I just don't understand if a transaction persists between execute() calls. Regards, Clodoaldo