--- ZSQLExtend/ZSQLExtend.py 2011/02/17 18:23:58 1.140 +++ ZSQLExtend/ZSQLExtend.py 2011/02/23 19:43:04 1.141 @@ -1000,8 +1000,43 @@ class ZSQLExtendFolder(Folder,Persistent dbc = con() if getattr(self, 'autocommit', False): # force transaction isolation level (for psycopg2 0=autocommit) + logging.debug(" old tilevel="+dbc.tilevel) dbc.tilevel = 0 - res = dbc.query(query, max_rows=max_rows) + # modified code from ZPsycopgDA.db without _register: + c = dbc.getcursor() + desc = () + r = [] + try: + try: + c.execute(qs) + + except psycopg2.OperationalError: + #logging.exception("Operational error on connection, closing it.") + try: + # Only close our connection + dbc.putconn(True) + except: + #logging.debug("Something went wrong when we tried to close the pool", exc_info=True) + pass + + if c.description is not None: + if max_rows: + r = c.fetchmany(max_rows) + else: + r = c.fetchall() + desc = c.description + + dbc.failures = 0 + + except StandardError, err: + raise err + + res = (dbc.convert_description(desc), r) + + else: + # just use DA's query method + res = dbc.query(query, max_rows=max_rows) + # return result set as Result object with Brains return Results(res)