Commit e8b059592f01f69bb38f5274bf824522f9403a6f

Authored by totoro
1 parent 9ee1c57d

add get_count_by_full_clause

Showing 1 changed file with 20 additions and 6 deletions   Show diff stats
controller/hk_sql_utils.anubis
@@ -47,7 +47,20 @@ public define Maybe(One) @@ -47,7 +47,20 @@ public define Maybe(One)
47 error(_) then failure, 47 error(_) then failure,
48 ok(_, _, _) then success(unique) 48 ok(_, _, _) then success(unique)
49 }. 49 }.
50 - 50 +
  51 +public define Int
  52 + get_count_by_full_clause
  53 + (
  54 + SQLite3DataBase db,
  55 + String clause
  56 + )=
  57 + if sql_query_timeout(db, clause+";", [], "get_count_by_clause") is
  58 + {
  59 + error(_) then 0,
  60 + ok(_, cursor, _) then db_get_integer(cursor)
  61 + }
  62 +.
  63 +
51 public define Int 64 public define Int
52 get_count_by_clause 65 get_count_by_clause
53 ( 66 (
@@ -55,18 +68,19 @@ public define Int @@ -55,18 +68,19 @@ public define Int
55 String table_name, 68 String table_name,
56 String clause 69 String clause
57 )= 70 )=
58 - with final_clause = if clause = "" then  
59 - ""  
60 - else  
61 - "WHERE "+clause, 71 +// with final_clause = if clause = "" then
  72 +// ""
  73 +// else
  74 +// "WHERE "+clause,
62 75
63 - if sql_query_timeout(db, "SELECT COUNT(\"id\") FROM "+table_name+" "+final_clause+";", [], "get_count_by_clause") is 76 + if sql_query_timeout(db, "SELECT COUNT(\""+table_name+".id\") FROM "+table_name+" "+clause+";", [], "get_count_by_clause") is
64 { 77 {
65 error(_) then 0, 78 error(_) then 0,
66 ok(_, cursor, _) then db_get_integer(cursor) 79 ok(_, cursor, _) then db_get_integer(cursor)
67 } 80 }
68 . 81 .
69 82
  83 +
70 public define Int 84 public define Int
71 get_count 85 get_count
72 ( 86 (