Skip to content

Commit 804fb85

Browse files
committed
rename to , refactor 's clause
1 parent 5b52d11 commit 804fb85

File tree

4 files changed

+57
-63
lines changed

4 files changed

+57
-63
lines changed

src/sqlbuilderpkg/delete.nim

Lines changed: 16 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -19,38 +19,33 @@ proc sqlDelete*(table: string, where: varargs[string]): SqlQuery =
1919
## Does NOT check for NULL values
2020

2121
var res = "DELETE FROM " & table
22-
var wes = " WHERE "
23-
for i, d in where:
24-
if i > 0:
25-
wes.add(" AND ")
26-
wes.add(formatWhereParams(d))
27-
result = sql(res & wes)
22+
if where.len > 0:
23+
res.add sqlWhere(where)
24+
result = sql(res)
2825

2926

3027
proc sqlDelete*(table: string, where: varargs[string], args: ArgsContainer.query): SqlQuery =
3128
## SQL builder for DELETE queries
3229
## Checks for NULL values
3330

3431
var res = "DELETE FROM " & table
35-
var wes = " WHERE "
36-
for i, d in where:
37-
if i > 0:
38-
wes.add(" AND ")
39-
if args[i].isNull:
40-
wes.add(d & " = NULL")
41-
else:
42-
wes.add(d & " = ?")
43-
result = sql(res & wes)
32+
if where.len > 0:
33+
res.add " WHERE "
34+
for i, d in where:
35+
if i > 0:
36+
res.add(" AND ")
37+
if args[i].isNull:
38+
res.add(d & " = NULL")
39+
else:
40+
res.add(d & " = ?")
41+
result = sql(res)
4442

4543

4644
macro sqlDeleteMacro*(table: string, where: varargs[string]): SqlQuery =
4745
## SQL builder for SELECT queries
4846
## Does NOT check for NULL values
4947

5048
var res = "DELETE FROM " & $table
51-
var wes = " WHERE "
52-
for i, d in where:
53-
if i > 0:
54-
wes.add(" AND ")
55-
wes.add(formatWhereParams($d))
56-
result = parseStmt("sql(\"" & res & wes & "\")")
49+
if where.len > 0:
50+
res.add sqlWhere(where)
51+
result = parseStmt("sql(\"" & res & "\")")

src/sqlbuilderpkg/update.nim

Lines changed: 6 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -72,22 +72,6 @@ proc updateArray(arrayType: string, arrayAppend: varargs[string]): string =
7272
return result
7373

7474

75-
proc updateWhere(where: varargs[string]): string =
76-
## Update the WHERE part of the query.
77-
##
78-
## => ["name", "age = "]
79-
## => `WHERE name = ?, age = ?`
80-
##
81-
## => ["name = ", "age >"]
82-
## => `WHERE name = ?, age > ?`
83-
var wes = " WHERE "
84-
for i, v in where:
85-
if i > 0:
86-
wes.add(" AND ")
87-
wes.add(formatWhereParams(v))
88-
return wes
89-
90-
9175
proc sqlUpdate*(table: string, data: varargs[string], where: varargs[string], args: ArgsContainer.query): SqlQuery =
9276
## SQL builder for UPDATE queries
9377
## Checks for NULL values
@@ -130,7 +114,7 @@ proc sqlUpdate*(
130114
## where => ["id = ", "name IS NULL"]
131115
var fields: string
132116
fields.add(updateSet(data))
133-
fields.add(updateWhere(where))
117+
fields.add(sqlWhere(where))
134118
result = sql("UPDATE " & table & " SET " & fields)
135119

136120

@@ -142,7 +126,7 @@ proc sqlUpdateArrayRemove*(
142126
## ARRAY_REMOVE
143127
var fields: string
144128
fields.add(updateArray("ARRAY_REMOVE", arrayRemove))
145-
fields.add(updateWhere(where))
129+
fields.add(sqlWhere(where))
146130
result = sql("UPDATE " & table & " SET " & fields)
147131

148132

@@ -154,7 +138,7 @@ proc sqlUpdateArrayAppend*(
154138
## ARRAY_APPEND
155139
var fields: string
156140
fields.add(updateArray("ARRAY_APPEND", arrayAppend))
157-
fields.add(updateWhere(where))
141+
fields.add(sqlWhere(where))
158142
result = sql("UPDATE " & table & " SET " & fields)
159143

160144

@@ -179,26 +163,6 @@ proc updateSet(data: NimNode): string =
179163
return result
180164

181165

182-
183-
proc updateWhere(where: NimNode): string =
184-
## Update the WHERE part of the query.
185-
##
186-
## => ["name", "age = "]
187-
## => `WHERE name = ?, age = ?`
188-
##
189-
## => ["name = ", "age >"]
190-
## => `WHERE name = ?, age > ?`
191-
var wes = " WHERE "
192-
for i, v in where:
193-
# Convert NimNode to string
194-
let d = $v
195-
if i > 0:
196-
wes.add(" AND ")
197-
wes.add(formatWhereParams(d))
198-
return wes
199-
200-
201-
202166
macro sqlUpdateMacro*(
203167
table: string,
204168
data: varargs[string],
@@ -212,7 +176,7 @@ macro sqlUpdateMacro*(
212176
## where => ["id = ", "name IS NULL"]
213177
var fields: string
214178
fields.add(updateSet(data))
215-
fields.add(updateWhere(where))
179+
fields.add(sqlWhere(where))
216180
result = parseStmt("sql(\"" & "UPDATE " & $table & " SET " & fields & "\")")
217181

218182

@@ -243,7 +207,7 @@ macro sqlUpdateMacroArrayRemove*(
243207
## ARRAY_REMOVE macro
244208
var fields: string
245209
fields.add(updateArray("ARRAY_REMOVE", arrayRemove))
246-
fields.add(updateWhere(where))
210+
fields.add(sqlWhere(where))
247211
result = parseStmt("sql(\"" & "UPDATE " & $table & " SET " & fields & "\")")
248212

249213

@@ -255,5 +219,5 @@ macro sqlUpdateMacroArrayAppend*(
255219
## ARRAY_APPEND macro
256220
var fields: string
257221
fields.add(updateArray("ARRAY_APPEND", arrayAppend))
258-
fields.add(updateWhere(where))
222+
fields.add(sqlWhere(where))
259223
result = parseStmt("sql(\"" & "UPDATE " & $table & " SET " & fields & "\")")

src/sqlbuilderpkg/utils_private.nim

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ else:
77

88

99
import
10+
std/macros,
1011
std/strutils
1112

1213

@@ -139,3 +140,34 @@ proc hasIllegalFormats*(query: string): string =
139140
if "??" in noSpaces:
140141
return "double insert detected. (??)"
141142

143+
proc sqlWhere*(where: varargs[string]): string =
144+
## the WHERE part of the query.
145+
##
146+
## => ["name", "age = "]
147+
## => `WHERE name = ?, age = ?`
148+
##
149+
## => ["name = ", "age >"]
150+
## => `WHERE name = ?, age > ?`
151+
var wes = " WHERE "
152+
for i, v in where:
153+
if i > 0:
154+
wes.add(" AND ")
155+
wes.add(formatWhereParams(v))
156+
return wes
157+
158+
proc sqlWhere*(where: NimNode): string =
159+
## the WHERE part of the query.
160+
##
161+
## => ["name", "age = "]
162+
## => `WHERE name = ?, age = ?`
163+
##
164+
## => ["name = ", "age >"]
165+
## => `WHERE name = ?, age > ?`
166+
var wes = " WHERE "
167+
for i, v in where:
168+
# Convert NimNode to string
169+
let d = $v
170+
if i > 0:
171+
wes.add(" AND ")
172+
wes.add(formatWhereParams(d))
173+
return wes

tests/delete/test_delete.nim

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ suite "delete - normal":
2424
test = sqlDelete("my-table", ["name", "age"])
2525
check querycompare(test, sql("DELETE FROM my-table WHERE name = ? AND age = ?"))
2626

27+
test = sqlDelete("my-table", [])
28+
check querycompare(test, sql("DELETE FROM my-table"))
29+
2730

2831
test "sqlDeleteWhere":
2932
var test: SqlQuery

0 commit comments

Comments
 (0)