Commit 605449b023dcef3ea0b7261c1d7d120e000d006e

Authored by totoro
1 parent 988ad097

put the real content of the function for creating INSERT or UPDATE query argumen…

…ts with the given list of fields
Showing 1 changed file with 25 additions and 8 deletions   Show diff stats
database/db_update_fields.anubis
@@ -12,33 +12,50 @@ public type SQLite3_update_field: @@ -12,33 +12,50 @@ public type SQLite3_update_field:
12 field(String column, SQLite3Bind bind). 12 field(String column, SQLite3Bind bind).
13 13
14 public define (List(SQLite3Bind), String) 14 public define (List(SQLite3Bind), String)
15 - make_update_clause_and_binds 15 + _make_update_clause_and_binds
16 ( 16 (
17 List(SQLite3_update_field) fields, 17 List(SQLite3_update_field) fields,
18 List(SQLite3Bind) so_far, 18 List(SQLite3Bind) so_far,
19 - List(String) clause 19 + List(String) set_clause
20 )= 20 )=
21 if fields is 21 if fields is
22 { 22 {
23 - [] then (so_far, join(", ",clause)), 23 + [] then (so_far, join(", ",set_clause)),
24 [ h . t ] then 24 [ h . t ] then
25 if h is field(column, bind) then 25 if h is field(column, bind) then
26 - make_update_clause_and_binds(t, [bind . so_far], ["\""+column+"\" = :v_"+column . clause]) 26 + _make_update_clause_and_binds(t, [bind . so_far], ["\""+column+"\" = :v_"+column . set_clause])
27 } 27 }
28 . 28 .
29 29
30 public define (List(SQLite3Bind), String) 30 public define (List(SQLite3Bind), String)
31 - make_insert_clause_and_binds 31 + make_update_clause_and_binds
  32 + (
  33 + List(SQLite3_update_field) fields
  34 + )=
  35 + _make_update_clause_and_binds(fields, [], [])
  36 +.
  37 +
  38 +public define (List(SQLite3Bind), String, String)
  39 + _make_insert_clause_and_binds
32 ( 40 (
33 List(SQLite3_update_field) fields, 41 List(SQLite3_update_field) fields,
34 List(SQLite3Bind) so_far, 42 List(SQLite3Bind) so_far,
35 - List(String) clause 43 + List(String) insert_columns,
  44 + List(String) insert_values
36 )= 45 )=
37 if fields is 46 if fields is
38 { 47 {
39 - [] then (so_far, join(", ",clause)), 48 + [] then (so_far, "("+join(", ",insert_columns)+")", "("+join(", ",insert_values)+")"),
40 [ h . t ] then 49 [ h . t ] then
41 if h is field(column, bind) then 50 if h is field(column, bind) then
42 - make_insert_clause_and_binds(t, [bind . so_far], ["\""+column+"\" = :v_"+column . clause]) 51 + _make_insert_clause_and_binds(t, [bind . so_far], ["\""+column+"\"" . insert_columns], [":v_"+column . insert_values])
43 } 52 }
44 . 53 .
  54 +
  55 +public define (List(SQLite3Bind), String, String)
  56 + make_insert_clause_and_binds
  57 + (
  58 + List(SQLite3_update_field) fields
  59 + )=
  60 + _make_insert_clause_and_binds(fields, [], [], [])
  61 +.