- Switch to TEXT format for PostgreSQL populate implementation.
- Silence PostgreSQL notifications which were printed to stderr. They can be re-enabled with a parameter on the connection URI (#33).
- Improve details in exceptions in two places.
- Fix info about connection caching for sqlite in README (#35, dgllghr).
- Update for core v0.13 (GPR#31 Xavier Clerc).
- Support TEXT literals in queries.
- Fix decoding of binary results for PostgreSQL (thanks to James Owen).
- Implement copy-mode for PostgreSQL (GPR#30 James Owen).
- Add a signature for the populate function, and add basic implementations for all drivers (GPR#28).
- Add stream for result extraction (GPR#22 Nathan Rebours).
- Use the postgres driver when
postgres
is specified as the URL scheme (GPR#25 James Owen). - Documentation improvements (GPR#20 Nathan Rebours, etc.).
- Reimplemented partly ineffective prepare-cache for PostgreSQL.
- Backwards incompatible changes to the driver API.
- Backwards incompatible changes to modules marked internal but exposed due to being split across packages.
- Fix forward compatibility past OCaml 4.08 as announced by deprecations.
- Add pretty printer for requests.
- Add variance to
'a future
declarations. - Add blocking instance of API.
- Generalize
$.
to$<var>.
in queries. - Infer the expansion of
$(<var>.)
from$(<var>)
if not provided. - Fix connection recovery for PostgreSQL (issue #19, Dave Aitken).
- Fix some unhandled exceptions for PostgreSQL.
- Fix connection validation for MariaDB.
- Added
Caqti_type.Std : Caqti_type_sig.Std
, containing type descriptors needed for building requests, for easy inclusion in custom modules. - Fix ptime to string conversion for PostgreSQL (monstasat).
- Support microsecond precision for MariaDB.
- Removed
Caqti_type.Field.ex
and renamedCaqti_type.ex
toCaqti_type.any
and related functions. - Removed other deprecated definitions.
- Moved
Caqti_system_sig
intoCaqti_driver
and split up the signature to make room for future drivers on alternative platforms.
Added and improved:
- Compliance with Lwt 4.0 contributed by Brendan Long.
- Switched to the logs library for logging.
- Strengthen detection of concurrent use of connection.
- Support microsecond precision for timestamps for PostgreSQL and millisecond for Sqlite3.
- Use float for time spans in Sqlite3.
- Map the
octets
type to BLOBs for MariaDB and Sqlite3. - Log recoverable errors for MariaDB and Sqlite3.
Removed:
- The v1 API is now removed.
Ecosystem:
- CI setup contributed by Brendan Long.
- Various documentation updates.
- Fix incompatibility with
ppx_optcomp
v0.11.0 by dropping it, since the conditionals where no longer needed. - Restore test during opam build.
- The v1 API is now fully
[@@@deprecated]
and will be removed in the next major release.
- Fix a pool size counting bug when resource allocation fails. This can cause deadlock due to pool exhaustion.
- Added
-linkall
flags to driver libraries to fix direct linking (#9). - Added convenience functions
collect_list
andrev_collect_list
(#8). - Renamed
template
toquery
and related function, leaving deprecated aliases. - Added
ptime_span
field type mapping to SQL intervals. - Be more permissive about types of data returned from MariaDB when expecting numerical results.
- Move v1 into findlib sublibraries and announce deprecation.
- Port remaining tests to v2 and fix issues in MariaDB and Sqlite3 drivers.
- Don't include password component of URIs in error messages.
- Rename
io
type constructor tofuture
. - Fix pool size limit enforcement.
- Drop error on disconnect.
- Support substitutions in request convenience functions.
- Fix
start
transaction for PostgreSQL v2. - Fix dependency on ptime in
caqti.opam
in distribution.
- Remove most deprecations.
- Add new v2 API.
- Move away most of the v1 API, but keep deprecated aliases for the client API.
The main difference of the new API compared to the old is:
- It uses typed parameters and rows with an extensible variant for field type and a custom definable compound type.
- The connection has a
call
method which gives access to a result object before iterating over the returned rows. - Error handling is done with the
result
type, using a collection of error types formed as polymorphic variants of records.
Notice: This version is mostly backwards compatible. New code should use v2, but v1 will be kept for now. To keep using the v1 in upcoming releases:
- Fix the new deprecations from this release.
- Link with
caqti-dynload
to keep using dynamic loading, or link with the neededcaqti-driver-*.v1
driver libraries. - Link with
caqti.v1
instead ofcaqti
. - Link with
caqti-lwt.v1
instead ofcaqti-lwt
. - Link with
caqti-async.v1
instead ofcaqti-async
.
- Remove WRAPPER and REPORT functionality.
- Remove deprecated findlib aliases.
- Renamed
date
andutc
conversions todate_cl
andutc_cl
. - Deprecate
Caqti_metadata
in favour of the newCaqti_driver_info
. - Move various signature to separate files, leaving deprecated aliases.
- Fixed support for lwt >= 3, but keep supporting 2.7 as well for now.
- Fixed preparation of query after reconnect to PostgreSQL.
- Fixed support for ocaml 4.03.x.
- Added
Tuple.length
. - Deprecated
Param.sub_types
. - Deprecated
Param.other
andTuple.other
.
- Split into separate packages to avoid depopts and rename findlib names accordingly.
- Use findlib to load DB drivers, and use
-linkall
. This hopefully solves loading issues.
- Fix handling of spaces in Sqlite3 URIs and allow setting mode.
- Split
Caqti
(now deprecated) intoCaqti_errors
andCaqti_connect
. - Update to async 0.9.0.
- Fix plugin loader to handle modernised
META
.
- Rename libraries to match
META
.
- Added MariaDB backend.
- Fixed VARCHAR for SQLite3 describe.