Warning: Reason support is experimental. We are looking for beta-tester and contributors.

Module Os_core_db

module Os_core_db : sig..end

This module defines low level functions for database requests.


module PGOCaml : PGOCaml_generic.PGOCAML_GENERICwith type 'a monad = 'a Lwt.t
val init : 
  ?host:string ->
  ?port:int ->
  ?user:string ->
  ?password:string ->
  ?database:string ->
  ?unix_domain_socket_dir:string ->
  ?pool_size:int ->
  ?init:(PGOCaml.pa_pg_data PGOCaml.t ->
   unit Lwt.t) ->
  unit -> unit

init ?host ?port ?user ?password ?database ?unix_domain_socket_dir ?init () initializes the variables for the database access and register a function init invoked each time a connection is created.

val full_transaction_block : 
  (PGOCaml.pa_pg_data PGOCaml.t -> 'a Lwt.t) ->
  'a Lwt.t

full_transaction_block f executes function f within a database transaction. The argument of f is a PGOCaml database handle.

val without_transaction : 
  (PGOCaml.pa_pg_data PGOCaml.t -> 'a Lwt.t) ->
  'a Lwt.t

without_transaction f executes function f outside a database transaction. The argument of f is a PGOCaml database handle.

val connection_pool : 
  unit ->
  PGOCaml.pa_pg_data PGOCaml.t
  Resource_pooling.Resource_pool.t

Direct access to the connection pool

type wrapper = {
  f: 
    'a.
     PGOCaml.pa_pg_data PGOCaml.t ->
     (unit -> 'a Lwt.t) -> 'a Lwt.t
;
}

Setup a wrapper function which is used each time a connection is acquired. This function can perform some actions before and/or after the connection is used.

val set_connection_wrapper : wrapper -> unit