v1.5.1 - 2021-04-18
- Fix option recognition in PostgreSQL driver (GPR#67 mefyl).
- Fix option recognition in MariaDB driver and add test (Petter A. Urkedal).
v1.5.0 - 2021-04-11
- Request the full UTF-8 character for the MariaDB connection.
- Support int16 and enum types for parameters and rows.
v1.4.0 - 2021-03-11
- Fix infinite loop when deserializing an optional tuple (GPR#63 mefyl).
- Add Caqti_connect_sig.S.with_connection(GPR#61 Anton Bachin).
- Pass parameter types to PostgreSQL prepare and query functions. This avoids the need to CAST parameters on the SQL side in some cases.
- Add ?post_connectcallback toconnect_pool.
- Documentation fixes and improvements (Aaron L. Zeng, Anton Bachin, Petter A. Urkedal).
v1.3.0 - 2021-01-17
- Implement affected_countfor sqlite backend (GPR#46 jakob).
- Add method exec_with_affected_counttoCaqti_connection_sig.S(GPR#45 jakob).
- Add ?max_idle_sizeto pool creation functions.
- Dropped dependency on ppx_derivingdue to issue with static compilation (GPR#50 Ulrik Strid).
- Pass through $<var>$in query strings and deprecate$$.
- Log statements to be executed at debug level.
- Add COPYING.OCAML and fix license expression in opam files.
- Misc improvements to tests and documentation (GPR#51 Philippe Wang, GPR#54 Reynir Björnsson, etc.).
v1.2.4 - 2020-06-07
- Switch to TEXT format for PostgreSQL populate implementation.
v1.2.3 - 2020-06-02
- 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).
v1.2.2 - 2019-12-19
- Update for core v0.13 (GPR#31 Xavier Clerc).
v1.2.1 - 2019-12-08
- 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).
v1.2.0 - 2019-10-02
- 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 postgresis 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.
v1.1.0 - 2019-02-03
- Add pretty printer for requests.
- Add variance to 'a futuredeclarations.
- 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.
v1.0.0 - 2018-08-26
- 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.exand renamedCaqti_type.extoCaqti_type.anyand related functions.
- Removed other deprecated definitions.
- Moved Caqti_system_sigintoCaqti_driverand split up the signature to make room for future drivers on alternative platforms.
v0.11.0 - 2018-05-25
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 octetstype 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.
v0.10.2 - 2018-04-05
- Fix incompatibility with ppx_optcompv0.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.
v0.10.1 - 2018-02-27
- Fix a pool size counting bug when resource allocation fails. This can cause deadlock due to pool exhaustion.
v0.10.0 - 2018-02-14
- Added -linkallflags to driver libraries to fix direct linking (#9).
- Added convenience functions collect_listandrev_collect_list(#8).
- Renamed templatetoqueryand related function, leaving deprecated aliases.
- Added ptime_spanfield type mapping to SQL intervals.
- Be more permissive about types of data returned from MariaDB when expecting numerical results.
v0.9.0 - 2018-01-04
- 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 iotype constructor tofuture.
- Fix pool size limit enforcement.
- Drop error on disconnect.
- Support substitutions in request convenience functions.
v0.8.1 - 2017-12-06
- Fix starttransaction for PostgreSQL v2.
- Fix dependency on ptime in caqti.opamin distribution.
v0.8.0 - 2017-12-04
- 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 callmethod which gives access to a result object before iterating over the returned rows.
- Error handling is done with the resulttype, 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-dynloadto keep using dynamic loading, or link with the neededcaqti-driver-*.v1driver libraries.
- Link with caqti.v1instead ofcaqti.
- Link with caqti-lwt.v1instead ofcaqti-lwt.
- Link with caqti-async.v1instead ofcaqti-async.
v0.7.0 - 2017-11-03
- Remove WRAPPER and REPORT functionality.
- Remove deprecated findlib aliases.
- Renamed dateandutcconversions todate_clandutc_cl.
- Deprecate Caqti_metadatain favour of the newCaqti_driver_info.
- Move various signature to separate files, leaving deprecated aliases.
v0.6.1 - 2017-10-26
- 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.otherandTuple.other.
v0.6.0 - 2017-06-05
- 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.
v0.5.3 - 2017-05-22
- Fix handling of spaces in Sqlite3 URIs and allow setting mode.
- Split Caqti(now deprecated) intoCaqti_errorsandCaqti_connect.
- Update to async 0.9.0.
v0.5.2 - 2017-02-25
- Fix plugin loader to handle modernised META.
v0.5.1 - 2017-02-25 retracted
- Rename libraries to match META.
v0.5.0 - 2017-02-25 retracted
- Added MariaDB backend.
- Fixed VARCHAR for SQLite3 describe.