explicitly close ResultProxy objects

session.execute() returns a ResultProxy in case you want to see the
result of your query. we don't.
This commit is contained in:
Andrew Ekstedt 2018-03-30 14:23:34 -07:00
parent 140b46875d
commit c0e588df88

View file

@ -147,7 +147,6 @@ def load(session, tables=[], directory=None, drop_tables=False, verbose=False, s
table_objs = sqlalchemy.sql.util.sort_tables(table_objs) table_objs = sqlalchemy.sql.util.sort_tables(table_objs)
session = session() # get a concrete Session from a ScopedSession
engine = session.get_bind() engine = session.get_bind()
# Limit table names to 30 characters for Oracle # Limit table names to 30 characters for Oracle
@ -255,7 +254,7 @@ def load(session, tables=[], directory=None, drop_tables=False, verbose=False, s
def insert_and_commit(): def insert_and_commit():
if not new_rows: if not new_rows:
return return
session.execute(insert_stmt, new_rows) session.execute(insert_stmt, new_rows).close()
session.commit() session.commit()
new_rows[:] = [] new_rows[:] = []
@ -327,7 +326,7 @@ def load(session, tables=[], directory=None, drop_tables=False, verbose=False, s
session.execute( session.execute(
insert_stmt.values(**row_data) insert_stmt.values(**row_data)
) ).close()
seen_ids.add(row_data['id']) seen_ids.add(row_data['id'])
session.commit() session.commit()
@ -342,7 +341,7 @@ def load(session, tables=[], directory=None, drop_tables=False, verbose=False, s
table_obj = translation_class.__table__ table_obj = translation_class.__table__
if table_obj in table_objs: if table_obj in table_objs:
insert_stmt = table_obj.insert() insert_stmt = table_obj.insert()
session.execute(insert_stmt, rows) session.execute(insert_stmt, rows).close()
session.commit() session.commit()
# We don't have a total, but at least show some increasing number # We don't have a total, but at least show some increasing number
new_row_count += len(rows) new_row_count += len(rows)