Caqti_blockingBlocking API based on the Unix module.
Warning: This module is not well tested. Please report any issues.
This module implements a blocking API. It is not designed for preemptive threading. That is, connections and connection pools must be created and used within a single thread, and any limitation on multithreading from the driver or client library applies.
You can use a connection pool to cache a single DB connection, additional connections will not be allocated, since usage is serial.
include Caqti_connect_sig.S with type 'a future = 'amodule Pool : Caqti_pool_sig.S with type 'a future := 'a futureA pool implementation for the current concurrency library.
module type CONNECTION =
Caqti_connection_sig.S with type 'a future := 'a futureThe connection API specialized for the current concurrency library.
type connection = (module CONNECTION)Shortcut for the connection API passed as a value.
val connect :
Uri.t ->
(connection, [> Caqti_error.load_or_connect ]) result futureconnect uri locates and loads a driver which can handle uri, passes uri to the driver, which establish a connection and returns a first-class module implementing Caqti_connection_sig.S.
val connect_pool :
?max_size:int ->
Uri.t ->
((connection, [> Caqti_error.connect ]) Pool.t, [> Caqti_error.load ]) resultconnect_pool uri is a pool of database connections constructed by connect uri.
val or_fail : ('a, [< Caqti_error.t ]) result -> 'aTakes Ok x to x and raises Caqti_error.Exnerr on Error err.