package caqti
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
Unified interface to relational database libraries
Install
dune-project
Dependency
Authors
Maintainers
Sources
caqti-0.10.2.tbz
sha256=d688bd22f6fde5be5a755900545fade0d5fdce6dbcb0b85770d02dad87c41e7c
md5=d18745a703da336054c0d27e78f8be8a
doc/src/caqti/caqti_connection_sig.ml.html
Source file caqti_connection_sig.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127(* Copyright (C) 2017--2018 Petter A. Urkedal <paurkedal@gmail.com> * * This library is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or (at your * option) any later version, with the OCaml static compilation exception. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public * License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library. If not, see <http://www.gnu.org/licenses/>. *) (** Signature of connection handles. *) (** Essential connection signature implemented by drivers. *) module type Base = sig type 'a future (** {2 Query} *) module Response : Caqti_response_sig.S with type 'a future := 'a future val call : f: (('b, 'm) Response.t -> ('c, 'e) result future) -> ('a, 'b, 'm) Caqti_request.t -> 'a -> ('c, [> Caqti_error.call] as 'e) result future (** [call ~f request params] performs [request] with parameters [params] invoking [f] to process the result. *) (** {2 Transactions} *) val start : unit -> (unit, [> Caqti_error.transact]) result future (** Starts a transaction if supported by the underlying database, otherwise does nothing. *) val commit : unit -> (unit, [> Caqti_error.transact]) result future (** Commits the current transaction if supported by the underlying database, otherwise does nothing. *) val rollback : unit -> (unit, [> Caqti_error.transact]) result future (** Rolls back a transaction if supported by the underlying database, otherwise does nothing. *) (** {2 Disconnection and Reuse} *) val disconnect : unit -> unit future (** Calling [disconnect ()] closes the connection to the database and frees up related resources. *) val validate : unit -> bool future (** For internal use by {!Caqti_pool}. Tries to ensure the validity of the connection and must return [false] if unsuccessful. *) val check : (bool -> unit) -> unit (** For internal use by {!Caqti_pool}. Called after a connection has been used. [check f] must call [f ()] exactly once with an argument indicating whether to keep the connection in the pool or discard it. *) end (** Full connection signature available to users. *) module type S = sig include Base val driver_info : Caqti_driver_info.t (** Information about the driver providing this connection module. *) (** {2 Retrieval Convenience} These are shortcuts for {!call} combined with retrieval functions from {!Caqti_response_sig.S} of the same name. *) val exec : ('a, unit, [< `Zero]) Caqti_request.t -> 'a -> (unit, [> Caqti_error.call_or_retrieve] as 'e) result future (** Combines {!call} with {!Response.exec}. *) val find : ('a, 'b, [< `One]) Caqti_request.t -> 'a -> ('b, [> Caqti_error.call_or_retrieve] as 'e) result future (** Combines {!call} with {!Response.find}. *) val find_opt : ('a, 'b, [< `Zero | `One]) Caqti_request.t -> 'a -> ('b option, [> Caqti_error.call_or_retrieve] as 'e) result future (** Combines {!call} with {!Response.find_opt}. *) val fold : ('a, 'b, [< `Zero | `One | `Many]) Caqti_request.t -> ('b -> 'c -> 'c) -> 'a -> 'c -> ('c, [> Caqti_error.call_or_retrieve] as 'e) result future (** Combines {!call} with {!Response.fold}. *) val fold_s : ('a, 'b, [< `Zero | `One | `Many]) Caqti_request.t -> ('b -> 'c -> ('c, 'e) result future) -> 'a -> 'c -> ('c, [> Caqti_error.call_or_retrieve] as 'e) result future (** Combines {!call} with {!Response.fold_s}. *) val iter_s : ('a, 'b, [< `Zero | `One | `Many]) Caqti_request.t -> ('b -> (unit, 'e) result future) -> 'a -> (unit, [> Caqti_error.call_or_retrieve] as 'e) result future (** Combines {!call} with {!Response.iter_s}. *) val collect_list : ('a, 'b, [< `Zero | `One | `Many]) Caqti_request.t -> 'a -> ('b list, [> Caqti_error.call_or_retrieve] as 'e) result future (** [collect_list request param] performs a {!call} on [request], extracting the result as a list. *) val rev_collect_list : ('a, 'b, [< `Zero | `One | `Many]) Caqti_request.t -> 'a -> ('b list, [> Caqti_error.call_or_retrieve] as 'e) result future (** [rev_collect_list request param] performs a {!call} on [request], extracting the result as a reversed list. This is more efficient than {!find_list} and fits well with a subsequent {!List.rev_map}, though it may not matter much in practise. *) end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>