sig
type 'a result
type ('a, 'b) statement = {
sql_statement : string;
stmt_id : string option;
directive : (Sqlexpr_sqlite.st -> 'b) -> Sqlexpr_sqlite.st -> 'a;
}
type ('a, 'b, 'c) expression = {
statement : ('a, 'c) Sqlexpr_sqlite.S.statement;
get_data : int * (Sqlite3.Data.t array -> 'b);
}
type db
exception Error of string * exn
exception Sqlite_error of string * Sqlite3.Rc.t
val open_db : ?init:(Sqlite3.db -> unit) -> string -> Sqlexpr_sqlite.S.db
val close_db : Sqlexpr_sqlite.S.db -> unit
val borrow_worker :
Sqlexpr_sqlite.S.db ->
(Sqlexpr_sqlite.S.db -> 'a Sqlexpr_sqlite.S.result) ->
'a Sqlexpr_sqlite.S.result
val steal_worker :
Sqlexpr_sqlite.S.db ->
(Sqlexpr_sqlite.S.db -> 'a Sqlexpr_sqlite.S.result) ->
'a Sqlexpr_sqlite.S.result
val execute :
Sqlexpr_sqlite.S.db ->
('a, unit Sqlexpr_sqlite.S.result) Sqlexpr_sqlite.S.statement -> 'a
val insert :
Sqlexpr_sqlite.S.db ->
('a, int64 Sqlexpr_sqlite.S.result) Sqlexpr_sqlite.S.statement -> 'a
val select :
Sqlexpr_sqlite.S.db ->
('a, 'b, 'b list Sqlexpr_sqlite.S.result) Sqlexpr_sqlite.S.expression ->
'a
val select_f :
Sqlexpr_sqlite.S.db ->
('a -> 'b Sqlexpr_sqlite.S.result) ->
('c, 'a, 'b list Sqlexpr_sqlite.S.result) Sqlexpr_sqlite.S.expression ->
'c
val select_one :
Sqlexpr_sqlite.S.db ->
('a, 'b, 'b Sqlexpr_sqlite.S.result) Sqlexpr_sqlite.S.expression -> 'a
val select_one_maybe :
Sqlexpr_sqlite.S.db ->
('a, 'b, 'b option Sqlexpr_sqlite.S.result) Sqlexpr_sqlite.S.expression ->
'a
val select_one_f :
Sqlexpr_sqlite.S.db ->
('a -> 'b Sqlexpr_sqlite.S.result) ->
('c, 'a, 'b Sqlexpr_sqlite.S.result) Sqlexpr_sqlite.S.expression -> 'c
val select_one_f_maybe :
Sqlexpr_sqlite.S.db ->
('a -> 'b Sqlexpr_sqlite.S.result) ->
('c, 'a, 'b option Sqlexpr_sqlite.S.result) Sqlexpr_sqlite.S.expression ->
'c
val transaction :
Sqlexpr_sqlite.S.db ->
(Sqlexpr_sqlite.S.db -> 'a Sqlexpr_sqlite.S.result) ->
'a Sqlexpr_sqlite.S.result
val fold :
Sqlexpr_sqlite.S.db ->
('a -> 'b -> 'a Sqlexpr_sqlite.S.result) ->
'a ->
('c, 'b, 'a Sqlexpr_sqlite.S.result) Sqlexpr_sqlite.S.expression -> 'c
val iter :
Sqlexpr_sqlite.S.db ->
('a -> unit Sqlexpr_sqlite.S.result) ->
('b, 'a, unit Sqlexpr_sqlite.S.result) Sqlexpr_sqlite.S.expression -> 'b
module Directives :
sig
type ('a, 'b) directive =
(Sqlexpr_sqlite.st -> 'b) -> Sqlexpr_sqlite.st -> 'a
val literal : string -> ('a, 'a) Sqlexpr_sqlite.S.Directives.directive
val int : (int -> 'a, 'a) Sqlexpr_sqlite.S.Directives.directive
val text : (string -> 'a, 'a) Sqlexpr_sqlite.S.Directives.directive
val blob : (string -> 'a, 'a) Sqlexpr_sqlite.S.Directives.directive
val float : (float -> 'a, 'a) Sqlexpr_sqlite.S.Directives.directive
val int32 : (int32 -> 'a, 'a) Sqlexpr_sqlite.S.Directives.directive
val int64 : (int64 -> 'a, 'a) Sqlexpr_sqlite.S.Directives.directive
val bool : (bool -> 'a, 'a) Sqlexpr_sqlite.S.Directives.directive
val any :
(('a -> string) -> 'a -> 'b, 'b)
Sqlexpr_sqlite.S.Directives.directive
val maybe_int :
(int option -> 'a, 'a) Sqlexpr_sqlite.S.Directives.directive
val maybe_text :
(string option -> 'a, 'a) Sqlexpr_sqlite.S.Directives.directive
val maybe_blob :
(string option -> 'a, 'a) Sqlexpr_sqlite.S.Directives.directive
val maybe_float :
(float option -> 'a, 'a) Sqlexpr_sqlite.S.Directives.directive
val maybe_int32 :
(int32 option -> 'a, 'a) Sqlexpr_sqlite.S.Directives.directive
val maybe_int64 :
(int64 option -> 'a, 'a) Sqlexpr_sqlite.S.Directives.directive
val maybe_bool :
(bool option -> 'a, 'a) Sqlexpr_sqlite.S.Directives.directive
val maybe_any :
(('a -> string) -> 'a option -> 'b, 'b)
Sqlexpr_sqlite.S.Directives.directive
end
module Conversion :
sig
val text : Sqlite3.Data.t -> string
val blob : Sqlite3.Data.t -> string
val int : Sqlite3.Data.t -> int
val int32 : Sqlite3.Data.t -> int32
val int64 : Sqlite3.Data.t -> int64
val float : Sqlite3.Data.t -> float
val bool : Sqlite3.Data.t -> bool
val maybe : (Sqlite3.Data.t -> 'a) -> Sqlite3.Data.t -> 'a option
val maybe_text : Sqlite3.Data.t -> string option
val maybe_blob : Sqlite3.Data.t -> string option
val maybe_int : Sqlite3.Data.t -> int option
val maybe_int32 : Sqlite3.Data.t -> int32 option
val maybe_int64 : Sqlite3.Data.t -> int64 option
val maybe_float : Sqlite3.Data.t -> float option
val maybe_bool : Sqlite3.Data.t -> bool option
end
end