Skip to content

Releases: mmottl/sqlite3-ocaml

5.4.1

16 Apr 22:49
5.4.1

Choose a tag to compare

CHANGES:

Added

  • Added a child-process regression test covering the exec callback and
    concurrent statement preparation/finalization on a shared FULLMUTEX
    connection.

Changed

  • Removed the clib:pthread OPAM tag, keeping only clib:sqlite3 as package
    classification metadata.
  • Bumped ocamlformat to version 0.29.0.

Fixed

  • Released the OCaml runtime lock around more explicit SQLite API calls that can
    contend on SQLite connection or statement mutexes, reducing the risk of
    deadlocks in multi-threaded code.

5.4.0

19 Feb 22:33
5.4.0

Choose a tag to compare

CHANGES:

Added

  • column_is_null function in the low-level column API. Thanks to Alexander
    Keleshev for the contribution.
  • Makefile support for generating compile_commands.json and improved
    generation for better LSP support in editors.

Changed

  • Updated GitHub Actions actions/checkout from version 4 to version 6.
  • Bumped ocamlformat version.
  • Strengthened tests for column_is_null to cover both NULL and non-NULL
    values.

5.3.1

07 Mar 17:48
5.3.1

Choose a tag to compare

CHANGES:

  • Made reference counting of database handles atomic for thread-safety. Thanks
    to Christoph Wintersteiger for the suggestion, and to o3-mini-high for
    finding a reference counting bug when handling exceptions.
  • Fixed collation link freeing bug. Thanks to o3-mini-high for suggesting the
    fix without even being prompted (minus-shot).
  • Removed obsolete compiler flags. OCaml already passes optimization flags, and
    flags for position-independent code should not be necessary. Thanks to Jonah
    Beckford for the contribution.

5.3.0

20 Jan 16:07
5.3.0

Choose a tag to compare

CHANGES:

Added

  • Collation support. Thanks to Gusted.

Changed

  • Builds now respect $PKG_CONFIG. Thanks to Antonio Nuno Monteiro.

5.2.0

01 Aug 05:02
5.2.0

Choose a tag to compare

CHANGES:

  • Support MSVC compiler (Jonah Beckford)

  • Add extended_errcode_int function (Petter A. Urkedal)

  • Fix memory alloc in caml_sqlite3_backup_init()
    (Mark Elvers, Pierre Boutillier, and Benjamin Canou)

  • Add Github CI (Yilin Wei)

  • Detect pkgconf on Windows/mingw (Mark Elvers, reviewed by Shon Feder)

  • Fixed shadowing of agg_ctx when using sizeof.

  • Formatted sources using ocamlformat and clang-format.

  • Fixed switch syntax error flagged by cppcheck.

  • Added .editorconfig.

  • Removed superfluous macro conditions.

  • Improved API documentation formatting.

  • Improved README, license file, copyright notices, and changelog format.

5.1.0

23 Sep 01:19
5.1.0

Choose a tag to compare

CHANGES:

  • Added let&-operator for implicit closing of an opened database.

    Thanks to Yawar Amin yawar.amin@gmail.com for this contribution!

5.0.3

19 Mar 03:49
5.0.3

Choose a tag to compare

CHANGES:

  • Fixed missing GC registration of init values in aggregate functions.

    • Fixed call to final aggregate function when no step function was called.

    • Fixed incorrect required minimum OCaml version (now 4.12).

5.0.2

30 Jul 20:42
5.0.2

Choose a tag to compare

CHANGES:

  • Added missing dune-configurator dependency.

    • Removed redundant build dependencies.

    • Use caml_alloc_initialized_string wherever possible.

    • Fixed documentation typos and wording.

    • Added support for const char strings in stubs due to stricter handling
      in newer OCaml runtimes. This eliminates C-compiler warnings.

5.0.1

02 Dec 04:42
5.0.1

Choose a tag to compare

CHANGES:

  • Added missing :with-test declaration in Dune project file.

    • Improved portability to older SQLite3 versions.

5.0.0

02 Dec 03:57
5.0.0

Choose a tag to compare

CHANGES:

  • Breaking change:

    * `Data.to_string` is now `Data.to_string_coerce` to more clearly reflect
      that non-string data will be converted to strings.
    
    • Added support for SQLite3 window functions.

    • Added Sqlite3.Rc.check and Sqlite3.Rc.is_success for easier return
      code checking.

    • Added Sqlite3.prepare_or_reset for reusing prepared statements in loops.

    • Added Sqlite3.iter and Sqlite3.fold for more convenient handling of
      row data.

    • Added more data conversion functions, also for direct access to column data.

    • Added more data binding functions.

    • Improved closing behavior of database using new SQLite3 API.

    • Improved testing framework using ppx_inline_test.

    • Each test case now has its own database for parallel testing.

    • Switched from caml_alloc_custom to caml_alloc_custom_mem.

    • Switched to OPAM file generation via dune-project.

    • Improved compatibility with older OCaml versions. Thanks to Simon Cruanes
      for this patch!

    Thanks to Shawn shawnw.mobile@gmail.com and Ted Spence tspence@fb.com
    for their work on many of these contributions!