Skip to content

Commit ec053d8

Browse files
yunyuauxten
authored andcommitted
Fix executemany implementation in dbapi cursor
1 parent 99f315a commit ec053d8

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed

chdb/dbapi/cursors.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ def _do_execute_many(self, prefix, values, postfix, args, max_stmt_length, encod
206206
prefix = prefix.encode(encoding)
207207
if isinstance(postfix, str):
208208
postfix = postfix.encode(encoding)
209-
sql = str(prefix)
209+
sql = prefix
210210
args = iter(args)
211211
v = values % escape(next(args), conn)
212212
if isinstance(v, str):
@@ -219,9 +219,9 @@ def _do_execute_many(self, prefix, values, postfix, args, max_stmt_length, encod
219219
v = v.encode(encoding, 'surrogateescape')
220220
if len(sql) + len(v) + len(postfix) + 1 > max_stmt_length:
221221
rows += self.execute(sql + postfix)
222-
sql = str(prefix)
222+
sql = prefix
223223
else:
224-
sql += ','
224+
sql += ','.encode(encoding)
225225
sql += v
226226
rows += self.execute(sql + postfix)
227227
self.rowcount = rows

tests/test_dbapi.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,15 @@ def test_insert_and_read_data(self):
3535
value Int32
3636
) ENGINE = Log""")
3737

38-
# Insert values
39-
cur.execute("INSERT INTO rate VALUES ('2024-01-01', 24)")
40-
cur.execute("INSERT INTO rate VALUES ('2024-01-02', 72)")
38+
# Insert single value
39+
cur.execute("INSERT INTO rate VALUES (%s, %s)", ("2021-01-01", 24))
40+
# Insert multiple values
41+
cur.executemany("INSERT INTO rate VALUES (%s, %s)", [("2021-01-02", 72), ("2021-01-03", 96)])
4142

4243
# Read values
4344
cur.execute("SELECT value FROM rate ORDER BY day DESC")
4445
rows = cur.fetchall()
45-
self.assertEqual(rows, ((72,), (24,)))
46+
assert rows==((96,), (72,), (24,))
4647

4748
def test_select_chdb_version(self):
4849
ver = dbapi.get_client_info() # chDB version liek '0.12.0'

0 commit comments

Comments
 (0)