Commit e8b059592f01f69bb38f5274bf824522f9403a6f
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 | ( |