package pgx
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=e50dfb4e9d124d74da0d82f480357f63f947bb469b49c171ffd5f27c3c69c56a
sha512=07592f9c9a123b446f2742cc39bf23751dd0590b8028e7ed14f254c6f2c77a23efc616557aff43775354ff49cf71276ac400cf72d2c4d921fa4473d0b3209b21
CHANGES.md.html
2.3 (unreleased)
2.2 (2022-10-26)
Support ocaml 5.0 deprecations (https://github.com/arenadotio/pgx/pull/129)
2.1 (2022-05-31)
Breaking changes
Missing SASL authentication impl provides an error instead of hanging (https://github.com/arenadotio/pgx/pull/122).
pgx_lwt_mirage now requires conduit 2.3 instead of 2.2 (https://github.com/arenadotio/pgx/pull/117).
2.0 (2021-05-12)
Breaking changes
The Pgx module is now wrapped, which means
Pgx_aux
,Types
,Access
, etc. aren't added to the global scope. The main result of this is thatPgx_value
now needs to be accessed asPgx.Value
. (https://github.com/arenadotio/pgx/pull/103)Pgx_async.connect
andwith_conn
now have an additional optional?ssl
argument (see below).
Added
Pgx_async now supports TLS connections using Conduit_async. This is enabled by default and can be controlled with the new
?ssl
argument toconnect
andwith_conn
. (https://github.com/arenadotio/pgx/pull/108)
Fixed
Improved message for authentication errors. Previously these raised
Pgx_eof
, and now they raisePostgreSQL_Error("Failed to authenticate with postgres server", additional details ...)
. (https://github.com/arenadotio/pgx/pull/105)
Changed
Support new Mirage-conduit timeout argument (https://github.com/arenadotio/pgx/pull/95).
1.0 (2020-05-08)
Breaking changes
Pgx_value.t is an opaque type now. Use
Pgx_value.of/to
converters. Note that these converters are not equivalent to the OCaml functions likebool_of_string
orfloat_of_string
, and that for bytea data, you need to usePgx_value.of/to_binary
, notPgx_value.of/to_string
.Pgx_lwt has been renamed Pgx_lwt_unix.
Pgx.execute
now uses the unnamed prepare statement. In most cases this should not affect anything, but if you were relying on Pgx not internally using the unnamed prepared statement, you will need to fix your code. If you run into this, the fix is to usePgx.with_prepared
and name your prepared statement.Pgx_value.of_inet
/to_inet
now useIpaddr.t
from theipaddr
library instead ofUnix.inet_addr
.
Added
Pgx_value.of_binary
andPgx_value.to_binary
added for bytea data.Add
execute_map
helper to PgxAdd
execute_pipe
helper to Pgx_asyncAdd
execute_unit
helper to PgxBreak out
Pgx_value_core
library, which will allow users of Pgx_unix and Pgx_lwt to use theCore_kernel.Tim
andDate
types. This is still included by default in Pgx_async.Added Pgx_lwt_mirage
Pgx_value types now all implement
compare
andsexp_of
Fixed
Pgx no longer assumes all strings are binary data. Strings must be valid varchar data in the database's encoding. Use
Pgx_value.of/to_binary
with bytea columns if you want binary.Use a tail-recursive
List.map
implementationUse
Unix.getuid
+Lwt_unix.getpwuid
instead ofLwt.getlogin
for the default username, sincegetlogin
fails in some cases.Use int64 to keep track of prepared statements just in case someone prepares several million statements in one program
Changed
Re-raise exceptions with backtraces if possible.
Pgx_async uses Async.Log for logging instead of printing directly to stderr
Use Sexplib0 instead of Sexplib
Use the Query protocol for parameterless
execute
instead of Prepare + BindUse the unnamed prepared statement for
execute
Use
ipaddr
library instead ofUnix.inet_addr
Split Pgx_lwt into Pgx_lwt_unix and Pgx_lwt_mirage
0.1 (2018-05-31)
Initial release since fork from PG'OCaml.
More tests
More consistent use of async API's
Addition of Pgx.Value for hopefully easier conversion to and from DB types
Safe handling of concurrent queries (not any faster, but they won't crash)
Improved interface for prepared statements to make it harder to execute non-existent ones