Skip to content

Commit 5b33ab3

Browse files
committed
db.sqlite: fix exec_param_many on linux for the case of a [][]string parameter
1 parent 55cde49 commit 5b33ab3

File tree

2 files changed

+7
-16
lines changed

2 files changed

+7
-16
lines changed

vlib/db/sqlite/sqlite.c.v

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -405,11 +405,11 @@ pub fn (db &DB) exec_param_many(query string, params Params) ![]Row {
405405
}
406406
} else if params is [][]string {
407407
// Rows to process
408-
for r in 0 .. params[0].len {
408+
for params_row in params {
409409
mut row := Row{}
410410
// Param values to bind
411-
for i, param in params {
412-
code = C.sqlite3_bind_text(stmt, i + 1, voidptr(param[r].str), param[r].len,
411+
for i, param in params_row {
412+
code = C.sqlite3_bind_text(stmt, i + 1, voidptr(param.str), param.len,
413413
0)
414414
if code != sqlite_ok {
415415
return db.error_message(code, query)

vlib/db/sqlite/sqlite_test.v

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,6 @@ fn create_host(db Connection) !Host {
3232
}
3333

3434
fn test_sqlite() {
35-
$if !linux {
36-
return
37-
}
3835
mut db := sqlite.connect(':memory:') or { panic(err) }
3936
assert db.is_open
4037
assert db.validate()!
@@ -61,12 +58,12 @@ fn test_sqlite() {
6158
assert db.get_affected_rows_count() == 0
6259

6360
mut users := db.exec('select * from users')!
64-
dump(users)
61+
// dump(users)
6562
assert users.len == 4
6663
code := db.exec_none('vacuum')
6764
assert code == 101
6865
user := db.exec_one('select * from users where id = 3') or { panic(err) }
69-
dump(user)
66+
// dump(user)
7067
assert user.vals.len == 3
7168

7269
db.exec("update users set name='zzzz' where name='qqqq'")!
@@ -95,7 +92,7 @@ fn test_sqlite() {
9592
assert db.last_insert_rowid() == 6
9693
db.commit()!
9794
users = db.exec('select * from users')!
98-
dump(users)
95+
// dump(users)
9996
assert users.len == 5
10097

10198
db.close() or { panic(err) }
@@ -117,9 +114,6 @@ fn test_alias_db() {
117114
}
118115

119116
fn test_exec_param_many() {
120-
$if !linux {
121-
return
122-
}
123117
mut db := sqlite.connect(':memory:') or { panic(err) }
124118
assert db.is_open
125119
db.exec('drop table if exists users')!
@@ -138,9 +132,6 @@ fn test_exec_param_many() {
138132
}
139133

140134
fn test_exec_param_many2() {
141-
$if !linux {
142-
return
143-
}
144135
mut db := sqlite.connect(':memory:') or { panic(err) }
145136
assert db.is_open
146137
db.exec('drop table if exists users')!
@@ -149,7 +140,7 @@ fn test_exec_param_many2() {
149140
['60', 'Sam'],
150141
['61', 'Foo'],
151142
['62', 'Bar'],
152-
]) or { panic(err) }
143+
])!
153144
count := db.q_int('select count(*) from users')!
154145
assert count == 3
155146

0 commit comments

Comments
 (0)