blob: 576d9f6d9828c4ee58a56e09dde9e0542e5aca51 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
(** Math functions *)
let int : Sqlite3.Data.t -> Sqlite3.Data.t =
fun data ->
match data with
(* If the data is already an int, do not change it *)
| Sqlite3.Data.INT _ -> data
| Sqlite3.Data.FLOAT content -> Sqlite3.Data.INT (Int64.of_float content)
| Sqlite3.Data.BLOB content | Sqlite3.Data.TEXT content -> begin
match Int64.of_string_opt content with
| Some i -> Sqlite3.Data.INT i
| None -> begin
match Float.of_string_opt content with
| Some f -> Sqlite3.Data.INT (Int64.of_float f)
| None -> Sqlite3.Data.NULL
end
end
| _ -> Sqlite3.Data.NULL
let register : Sqlite3.db -> unit = fun db -> Sqlite3.create_fun1 db "int" int
|