Skip to content

Commit f43de45

Browse files
committed
fix multiple argument
1 parent 956cf66 commit f43de45

File tree

2 files changed

+20
-14
lines changed

2 files changed

+20
-14
lines changed

src/easy_sqlite3/macros.nim

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -26,20 +26,21 @@ proc injectDbFetch(procbody: var NimNode, sql: string, db_ident, st_ident: NimNo
2626
proc injectDbArguments(procbody: var NimNode, body, st_ident: NimNode): seq[tuple[name: string, idxnode, param: NimNode]] =
2727
result = newSeq[tuple[name: string, idxnode, param: NimNode]]()
2828
procbody.addTree(nnkVarSection, varsec):
29-
for arg in body[3][1..^1]:
30-
let arg_name = $arg[0]
31-
let arg_ident = genSym(nskVar, arg_name & "_idx")
32-
result.add (name: arg_name, idxnode: arg_ident, param: arg[0])
33-
varsec.add nnkIdentDefs.newTree(
34-
nnkPragmaExpr.newTree(
35-
arg_ident,
36-
nnkPragma.newTree(
37-
ident "threadvar"
38-
)
39-
),
40-
ident "int",
41-
newEmptyNode()
42-
)
29+
for args in body[3][1..^1]:
30+
for arg in args[0..^3]:
31+
let arg_name = $arg
32+
let arg_ident = genSym(nskVar, arg_name & "_idx")
33+
result.add (name: arg_name, idxnode: arg_ident, param: arg)
34+
varsec.add nnkIdentDefs.newTree(
35+
nnkPragmaExpr.newTree(
36+
arg_ident,
37+
nnkPragma.newTree(
38+
ident "threadvar"
39+
)
40+
),
41+
ident "int",
42+
newEmptyNode()
43+
)
4344
for it in result:
4445
procbody.add nnkIfStmt.newTree(
4546
nnkElifBranch.newTree(

tests/test_basic.nim

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import easy_sqlite3
44
import easy_sqlite3/[memfs, logfs]
55

66
proc select_1(arg: int): tuple[value: int] {.importdb: "SELECT $arg".}
7+
proc select_2(arg1, arg2: int): tuple[value: int, value2: int] {.importdb: "SELECT $arg1, $arg2".}
78

89
proc insert_data(name: string, value: int) {.importdb: """
910
INSERT INTO mydata(name, value) VALUES ($name, $value);
@@ -19,6 +20,10 @@ test "simple":
1920
var db = initDatabase(":memory:")
2021
check db.select_1(1) == (value: 1)
2122

23+
test "multiple":
24+
var db = initDatabase(":memory:")
25+
check db.select_2(1, 2) == (value: 1, value2: 2)
26+
2227
test "full":
2328
const dataset = {
2429
"A": 0,

0 commit comments

Comments
 (0)