sig
  type db
  type cursor
  type result = R_Ok | R_Empty | R_Fetch of Dbf_sql_driver.SqlDriver.cursor
  type fetch_mode = FM_Array | FM_Assoc | FM_ListAssoc
  type fetch_result =
      FR_Array of string option array
    | FR_Assoc of string option Dbf_sql_driver.StringMap.t
    | FR_ListAssoc of (string * string option) array
  type transaction = T_ReadCommited | T_Serializable
  type sql_value = string
  val db_id : string
  val escape_identifier : string -> string
  val escape_value : string -> string
  val connect :
    ?host:string ->
    ?database:string ->
    ?port:int ->
    ?password:string -> ?user:string -> unit -> Dbf_sql_driver.SqlDriver.db
  val disconnect : Dbf_sql_driver.SqlDriver.db -> unit
  val fetch_row :
    ?fm:Dbf_sql_driver.SqlDriver.fetch_mode ->
    Dbf_sql_driver.SqlDriver.cursor ->
    Dbf_sql_driver.SqlDriver.fetch_result option
  val fetch_all :
    ?fm:Dbf_sql_driver.SqlDriver.fetch_mode ->
    Dbf_sql_driver.SqlDriver.cursor ->
    Dbf_sql_driver.SqlDriver.fetch_result list
  val map :
    ?fm:Dbf_sql_driver.SqlDriver.fetch_mode ->
    f:(Dbf_sql_driver.SqlDriver.fetch_result -> 'a) ->
    Dbf_sql_driver.SqlDriver.cursor -> 'a list
  val begin_transaction :
    Dbf_sql_driver.SqlDriver.db ->
    Dbf_sql_driver.SqlDriver.transaction -> unit
  val end_transaction : Dbf_sql_driver.SqlDriver.db -> unit
  val cancel_transaction : Dbf_sql_driver.SqlDriver.db -> unit
  val names : Dbf_sql_driver.SqlDriver.cursor -> string array
  val fields : Dbf_sql_driver.SqlDriver.cursor -> int
  val exec :
    Dbf_sql_driver.SqlDriver.db ->
    query:string -> Dbf_sql_driver.SqlDriver.result
  val set_autocommit : Dbf_sql_driver.SqlDriver.db -> autocommit:bool -> unit
  val str2sql : string -> Dbf_sql_driver.SqlDriver.sql_value
  val bool2sql : bool -> Dbf_sql_driver.SqlDriver.sql_value
  val int2sql : int -> Dbf_sql_driver.SqlDriver.sql_value
  val int322sql : int32 -> Dbf_sql_driver.SqlDriver.sql_value
  val int642sql : int64 -> Dbf_sql_driver.SqlDriver.sql_value
  val float2sql : float -> Dbf_sql_driver.SqlDriver.sql_value
  val sql2str : Dbf_sql_driver.SqlDriver.sql_value -> string
  val sql2bool : Dbf_sql_driver.SqlDriver.sql_value -> bool
  val sql2int : Dbf_sql_driver.SqlDriver.sql_value -> int
  val sql2int32 : Dbf_sql_driver.SqlDriver.sql_value -> int32
  val sql2int64 : Dbf_sql_driver.SqlDriver.sql_value -> int64
  val sql2float : Dbf_sql_driver.SqlDriver.sql_value -> float
end