in evalbench/databases/postgres.py [0:0]
def _run_execute(query: str, eval_query: Optional[str] = None, rollback=False):
result: List = []
eval_result: List = []
error = None
try:
with self.engine.connect() as connection:
with connection.begin() as transaction:
resultset = connection.execute(text(query))
if resultset.returns_rows:
rows = resultset.fetchall()
result.extend(r._asdict() for r in rows)
if eval_query:
eval_resultset = connection.execute(text(eval_query))
if eval_resultset.returns_rows:
eval_rows = eval_resultset.fetchall()
eval_result.extend(r._asdict() for r in eval_rows)
if rollback:
transaction.rollback()
except Exception as e:
error = str(e)
if "57P03" in error:
raise ResourceExhaustedError("DB Exhausted") from e
return result, eval_result, error