From 66bf8acc71148376db499e61b5b684e198891fe6 Mon Sep 17 00:00:00 2001 From: Timothy Carstens Date: Tue, 21 Dec 2021 23:34:18 -0800 Subject: [PATCH] Fix string encoding on insert; adopt query parameters for update --- datalite/datalite_decorator.py | 6 +++--- test/main_tests.py | 3 --- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/datalite/datalite_decorator.py b/datalite/datalite_decorator.py index ad32add..80e4c95 100644 --- a/datalite/datalite_decorator.py +++ b/datalite/datalite_decorator.py @@ -28,7 +28,7 @@ def _create_entry(self) -> None: cur.execute(f"INSERT INTO {table_name}(" f"{', '.join(item[0] for item in kv_pairs)})" f" VALUES ({', '.join('?' for item in kv_pairs)})", - [_convert_sql_format(item[1]) for item in kv_pairs]) + [item[1] for item in kv_pairs]) self.__setattr__("obj_id", cur.lastrowid) con.commit() except IntegrityError: @@ -47,9 +47,9 @@ def _update_entry(self) -> None: kv_pairs = [item for item in asdict(self).items()] kv_pairs.sort(key=lambda item: item[0]) query = f"UPDATE {table_name} " + \ - f"SET {', '.join(item[0] + ' = ' + _convert_sql_format(item[1]) for item in kv_pairs)} " + \ + f"SET {', '.join(item[0] + ' = ?' for item in kv_pairs)} " + \ f"WHERE obj_id = {getattr(self, 'obj_id')};" - cur.execute(query) + cur.execute(query, [item[1] for item in kv_pairs]) con.commit() diff --git a/test/main_tests.py b/test/main_tests.py index 578c729..a0af1a9 100644 --- a/test/main_tests.py +++ b/test/main_tests.py @@ -64,9 +64,6 @@ def getValFromDB(obj_id = 1): fields.sort() repr = dict(zip(fields, cur.fetchall()[0][1:])) field_types = {key: value.type for key, value in TestClass.__dataclass_fields__.items()} - for key in fields: - if field_types[key] == bytes: - repr[key] = bytes(repr[key], encoding='utf-8') test_object = TestClass(**repr) return test_object