From 65ff76beba296341728dd2d84808fa37f58855f3 Mon Sep 17 00:00:00 2001 From: mathyba <34625323+mathyba@users.noreply.github.com> Date: Sat, 8 May 2021 04:15:46 +0200 Subject: [PATCH] Set index in mass insert main loop --- datalite/mass_actions.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/datalite/mass_actions.py b/datalite/mass_actions.py index 3da743e..08f4c06 100644 --- a/datalite/mass_actions.py +++ b/datalite/mass_actions.py @@ -65,8 +65,10 @@ def _mass_insert(objects: Union[List[T], Tuple[T]], db_name: str, protect_memory sql_queries = [] first_index: int = 0 table_name = objects[0].__class__.__name__.lower() - for obj in objects: + + for i, obj in enumerate(objects): kv_pairs = asdict(obj).items() + setattr(obj, "obj_id", first_index + i + 1) sql_queries.append(f"INSERT INTO {table_name}(" + f"{', '.join(item[0] for item in kv_pairs)})" + f" VALUES ({', '.join(_convert_sql_format(item[1]) for item in kv_pairs)});") @@ -81,8 +83,6 @@ def _mass_insert(objects: Union[List[T], Tuple[T]], db_name: str, protect_memory cur.executescript("BEGIN TRANSACTION;\n" + '\n'.join(sql_queries) + '\nEND TRANSACTION;') except sql.IntegrityError: raise ConstraintFailedError - for i, obj in enumerate(objects): - setattr(obj, "obj_id", first_index + i + 1) def create_many(objects: Union[List[T], Tuple[T]], protect_memory: bool = True) -> None: