package pgx

  1. Overview
  2. Docs
type s
val sexp_of_s : s -> Ppx_sexp_conv_lib.Sexp.t
val prepare : ?name:string -> ?types:oid list -> t -> query:string -> s monad

prepare ?name ?types conn ~query prepares the statement query and sets the parameter types to types. If no name is given, a random name will be generated. If no types are given, then the PostgreSQL engine infers types.

val close : s -> unit monad

close_statement t closes a prepared statement and frees up any resources.

val with_prepare : ?name:string -> ?types:oid list -> t -> query:string -> f:(s -> 'a monad) -> 'a monad

prepare a query, execute f, and then close_statement

val execute : ?portal:string -> s -> params:param list -> row list monad

execute conn ~params t executes the given prepared statement, with the given parameters params, returning the result rows (if any).

There are several steps involved at the protocol layer: (1) a "portal" is created from the statement, binding the parameters in the statement (Bind). (2) the portal is executed (Execute). (3) we synchronise the connection (Sync).

The optional ?portal parameter may be used to name the portal created in step (1) above (otherwise the unnamed portal is used). This is only important if you want to call describe_portal to find out the result types.

val execute_fold : ?portal:string -> s -> params:param list -> init:'accum -> f:('accum -> row -> 'accum monad) -> 'accum monad
val execute_iter : ?portal:string -> s -> params:param list -> f:(row -> unit monad) -> unit monad
val execute_many : s -> params:param list list -> row list list monad
val describe : s -> (params_description * Result_desc.t list option) monad

describe_statement t describes the statement's parameter types and result types.

val close_portal : ?portal:string -> s -> unit monad

close_portal conn ?portal () closes a portal and frees up any resources.

val describe_portal : ?portal:string -> s -> Result_desc.t list option monad

describe_portal conn ?portal () describes the named or unnamed portal's result types.