sig
type db
type stmt
type argument
type sql_type = [ `BLOB | `FLOAT | `INTEGER | `NULL | `TEXT ]
type sql_value =
[ `BLOB of string
| `FLOAT of float
| `INT of int
| `INT64 of int64
| `NULL
| `TEXT of string
| `VALUE of Sqlite3.argument ]
type ('a, 'b) fmt = ('b, unit, string, 'a) format4 -> 'b
type error_code =
ERROR
| INTERNAL
| PERM
| ABORT
| BUSY
| LOCKED
| NOMEM
| READONLY
| INTERRUPT
| IOERR
| CORRUPT
| NOTFOUND
| FULL
| CANTOPEN
| PROTOCOL
| EMPTY
| SCHEMA
| TOOBIG
| CONSTRAINT
| MISMATCH
| MISUSE
| NOLFS
| AUTH
| FORMAT
| RANGE
| NOTADB
exception Error of Sqlite3.error_code * string
val version : string
val init : unit
external open_db : string -> Sqlite3.db = "ml_sqlite3_open"
val close_db : Sqlite3.db -> unit
external interrupt : Sqlite3.db -> unit = "ml_sqlite3_interrupt"
external is_complete : string -> bool = "ml_sqlite3_complete"
external last_insert_rowid : Sqlite3.db -> int64
= "ml_sqlite3_last_insert_rowid"
external changes : Sqlite3.db -> int = "ml_sqlite3_changes"
external total_changes : Sqlite3.db -> int = "ml_sqlite3_total_changes"
external get_autocommit : Sqlite3.db -> bool = "ml_sqlite3_get_autocommit"
external sleep : int -> unit = "ml_sqlite3_sleep"
external busy_set : Sqlite3.db -> (int -> [ `FAIL | `RETRY ]) -> unit
= "ml_sqlite3_busy_handler"
external busy_unset : Sqlite3.db -> unit = "ml_sqlite3_busy_handler_unset"
external busy_timeout : Sqlite3.db -> int -> unit
= "ml_sqlite3_busy_timeout"
external trace_set : Sqlite3.db -> (string -> unit) -> unit
= "ml_sqlite3_trace"
external trace_unset : Sqlite3.db -> unit = "ml_sqlite3_trace_unset"
external progress_handler_set : Sqlite3.db -> int -> (unit -> unit) -> unit
= "ml_sqlite3_progress_handler"
external progress_handler_unset : Sqlite3.db -> unit
= "ml_sqlite3_progress_handler_unset"
external finalize_stmt : Sqlite3.stmt -> unit = "ml_sqlite3_finalize_noerr"
val prepare_one : Sqlite3.db -> string -> Sqlite3.stmt
val prepare_one_f : Sqlite3.db -> (Sqlite3.stmt, 'a) Sqlite3.fmt
external reset : Sqlite3.stmt -> unit = "ml_sqlite3_reset"
external expired : Sqlite3.stmt -> bool = "ml_sqlite3_expired"
external step : Sqlite3.stmt -> [ `DONE | `ROW ] = "ml_sqlite3_step"
external bind : Sqlite3.stmt -> int -> Sqlite3.sql_value -> unit
= "ml_sqlite3_bind"
external bind_parameter_count : Sqlite3.stmt -> int
= "ml_sqlite3_bind_parameter_count"
external bind_parameter_index : Sqlite3.stmt -> string -> int
= "ml_sqlite3_bind_parameter_index"
external bind_parameter_name : Sqlite3.stmt -> int -> string
= "ml_sqlite3_bind_parameter_name"
external clear_bindings : Sqlite3.stmt -> unit
= "ml_sqlite3_clear_bindings"
external transfer_bindings : Sqlite3.stmt -> Sqlite3.stmt -> unit
= "ml_sqlite3_transfer_bindings"
external column_blob : Sqlite3.stmt -> int -> string
= "ml_sqlite3_column_blob"
external column_double : Sqlite3.stmt -> int -> float
= "ml_sqlite3_column_double"
external column_int : Sqlite3.stmt -> int -> int = "ml_sqlite3_column_int"
external column_int64 : Sqlite3.stmt -> int -> int64
= "ml_sqlite3_column_int64"
external column_text : Sqlite3.stmt -> int -> string
= "ml_sqlite3_column_text"
external column_type : Sqlite3.stmt -> int -> Sqlite3.sql_type
= "ml_sqlite3_column_type"
external data_count : Sqlite3.stmt -> int = "ml_sqlite3_data_count"
external column_count : Sqlite3.stmt -> int = "ml_sqlite3_column_count"
external column_name : Sqlite3.stmt -> int -> string
= "ml_sqlite3_column_name"
external column_decltype : Sqlite3.stmt -> int -> string
= "ml_sqlite3_column_decltype"
external value_blob : Sqlite3.argument -> string = "ml_sqlite3_value_blob"
external value_double : Sqlite3.argument -> float
= "ml_sqlite3_value_double"
external value_int : Sqlite3.argument -> int = "ml_sqlite3_value_int"
external value_int64 : Sqlite3.argument -> int64 = "ml_sqlite3_value_int64"
external value_text : Sqlite3.argument -> string = "ml_sqlite3_value_text"
external value_type : Sqlite3.argument -> Sqlite3.sql_type
= "ml_sqlite3_value_type"
val create_fun_N :
Sqlite3.db ->
string -> (Sqlite3.argument array -> Sqlite3.sql_value) -> unit
val create_fun_0 :
Sqlite3.db -> string -> (unit -> Sqlite3.sql_value) -> unit
val create_fun_1 :
Sqlite3.db -> string -> (Sqlite3.argument -> Sqlite3.sql_value) -> unit
val create_fun_2 :
Sqlite3.db ->
string ->
(Sqlite3.argument -> Sqlite3.argument -> Sqlite3.sql_value) -> unit
val create_fun_3 :
Sqlite3.db ->
string ->
(Sqlite3.argument ->
Sqlite3.argument -> Sqlite3.argument -> Sqlite3.sql_value) ->
unit
external delete_function : Sqlite3.db -> string -> unit
= "ml_sqlite3_delete_function"
val do_step : Sqlite3.stmt -> unit
val fold_step : ('a -> Sqlite3.stmt -> 'a) -> 'a -> Sqlite3.stmt -> 'a
val bind_and_exec : Sqlite3.stmt -> Sqlite3.sql_value list -> unit
val bind_fetch :
Sqlite3.stmt ->
Sqlite3.sql_value list -> ('a -> Sqlite3.stmt -> 'a) -> 'a -> 'a
val fold_prepare :
Sqlite3.db -> string -> ('a -> Sqlite3.stmt -> 'a) -> 'a -> 'a
val fold_prepare_bind :
Sqlite3.db ->
string ->
Sqlite3.sql_value list -> ('a -> Sqlite3.stmt -> 'a) -> 'a -> 'a
val exec : Sqlite3.db -> string -> unit
val fetch : Sqlite3.db -> string -> ('a -> Sqlite3.stmt -> 'a) -> 'a -> 'a
val exec_v : Sqlite3.db -> string -> Sqlite3.sql_value list -> unit
val fetch_v :
Sqlite3.db ->
string ->
Sqlite3.sql_value list -> ('a -> Sqlite3.stmt -> 'a) -> 'a -> 'a
val fold_prepare_f :
Sqlite3.db -> (('a -> Sqlite3.stmt -> 'a) -> 'a -> 'a, 'b) Sqlite3.fmt
val fold_prepare_bind_f :
Sqlite3.db ->
(Sqlite3.sql_value list -> ('a -> Sqlite3.stmt -> 'a) -> 'a -> 'a, 'b)
Sqlite3.fmt
val exec_f : Sqlite3.db -> (unit, 'a) Sqlite3.fmt
val fetch_f :
Sqlite3.db -> (('a -> Sqlite3.stmt -> 'a) -> 'a -> 'a, 'b) Sqlite3.fmt
val exec_fv :
Sqlite3.db -> (Sqlite3.sql_value list -> unit, 'a) Sqlite3.fmt
val fetch_fv :
Sqlite3.db ->
(Sqlite3.sql_value list -> ('a -> Sqlite3.stmt -> 'a) -> 'a -> 'a, 'b)
Sqlite3.fmt
val sql_escape : string -> string
val blob_escape : string -> string
val transaction :
?kind:[ `DEFERRED | `EXCLUSIVE | `IMMEDIATE ] ->
Sqlite3.db -> (Sqlite3.db -> 'a) -> 'a
end