From e1d6e72fe19cf93c6f2aa9f06d4a1634801657c7 Mon Sep 17 00:00:00 2001 From: ofer1992 Date: Thu, 5 Sep 2024 17:42:15 +0300 Subject: [PATCH 1/2] Fix wrong handling of named parameters Parameter dicts were accidentally turned to tuples of keys --- sqlite_minutils/db.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sqlite_minutils/db.py b/sqlite_minutils/db.py index 5e739ca..d3e6a66 100644 --- a/sqlite_minutils/db.py +++ b/sqlite_minutils/db.py @@ -431,7 +431,7 @@ def execute( if self._tracer: self._tracer(sql, parameters) if parameters is not None: - return self.conn.execute(sql, tuple(parameters)) + return self.conn.execute(sql, parameters) else: return self.conn.execute(sql) From 7899a94f8a86076a0486415e80df0aac273ac181 Mon Sep 17 00:00:00 2001 From: ofer1992 Date: Thu, 5 Sep 2024 17:50:39 +0300 Subject: [PATCH 2/2] fix in query(), convert to tuple if not dict --- sqlite_minutils/db.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sqlite_minutils/db.py b/sqlite_minutils/db.py index d3e6a66..16f0ed8 100644 --- a/sqlite_minutils/db.py +++ b/sqlite_minutils/db.py @@ -413,7 +413,7 @@ def query( :param params: Parameters to use in that query - an iterable for ``where id = ?`` parameters, or a dictionary for ``where id = :id`` """ - cursor = self.execute(sql, tuple(params or tuple())) + cursor = self.execute(sql, params or tuple()) keys = [d[0] for d in cursor.description] for row in cursor: yield dict(zip(keys, row)) @@ -431,6 +431,8 @@ def execute( if self._tracer: self._tracer(sql, parameters) if parameters is not None: + if not isinstance(parameters, dict): + parameters = tuple(parameters) return self.conn.execute(sql, parameters) else: return self.conn.execute(sql)