diff --git a/CHANGES.md b/CHANGES.md index f8e91fe..14e9433 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -29,15 +29,15 @@ - Added let&-operator for implicit closing of an opened database. - Thanks to Yawar Amin for this contribution! + Thanks to Yawar Amin for this contribution. ## 5.0.3 (2021-03-18) - Fixed missing GC registration of init values in aggregate functions. -- Fixed call to final aggregate function when no step function was called. +- Fixed call to final aggregate function when not calling step function. -- Fixed incorrect required minimum OCaml version (now 4.12). +- Fixed incorrect required OCaml version (now 4.12). ## 5.0.2 (2020-07-30) @@ -62,8 +62,8 @@ - Breaking change: - - `Data.to_string` is now `Data.to_string_coerce` to more clearly reflect - that non-string data will be converted to strings. + - `Data.to_string` is now `Data.to_string_coerce` to reflect + that we convert non-string data to strings. - Added support for SQLite3 window functions. @@ -90,10 +90,10 @@ - Switched to OPAM file generation via `dune-project`. - Improved compatibility with older OCaml versions. Thanks to Simon Cruanes - for this patch! + for this patch. Thanks to Shawn and Ted Spence -for their work on many of these contributions! +for their work on these contributions. ## 4.4.1 (2018-10-25) @@ -106,7 +106,7 @@ for their work on many of these contributions! - uri - for URI filename interpretation - memory - for in-memory databases - Thanks to Raman Varabets for this contribution! + Thanks to Raman Varabets for this contribution. - Fixed warnings and errors in configuration code due to upstream changes. @@ -132,4 +132,254 @@ for their work on many of these contributions! - Added backup functionality Thanks to Markus W. Weissmann for this - contribution! + contribution. + +## Changes Before Version 4.2.0 + +```text +2017-06-11: Fixed return value bug in enable_load_extension. The result + was the opposite of what the API documentation says. + +2017-01-04: Added external dependency to OPAM spec for openSUSE support. + +2017-01-03: Fixed incorrect LGPL license reference in Oasis specification. + The software is actually distributed under the Expat-license. + +2016-12-15: Added new functions for more efficient and convenient blob access: + + * column_blob + * row_blobs + + Thanks to Nicolas Ojeda Bar + for this patch. + +2016-10-07: Some portability improvements and Travis integration + + Thanks to Leonid Rozenberg for his Travis work. + +2016-06-14: Changed default configuration setting for loadable extensions + on Mac OS X. Due to frequent installation issues the default + setting is now to turn off loadable extensions on that platform. + You will have to explicitly turn them on if you need them. + +2016-05-24: Fixed a bug finalizing user-defined functions for a database. + + Thanks to Mark Bradley for this patch. + +2015-11-18: More build process improvements for Homebrew users. + + Thanks to Leonid Rozenberg for this patch. + +2015-11-05: Improved build process for Homebrew users. + + Thanks to Leonid Rozenberg for this patch. + +2015-09-02: Major API change that is compatible with major release series 2: + + We can now return errors from user-defined SQL-functions by raising + (arbitrary) exceptions. This somewhat tricky internal change + eliminates the need for Data.ERROR and reestablishes compatibility + with major release series 2. + + Sorry for the churn, but the more elegant solution was not obvious. + +2015-08-29: Added user function error handling (major API change). + + Thanks to Joseph Young for this patch. + +2015-01-29: Fixed a build problem due to Oasis/ocamlbuild inconsistency. + + Thanks to Leonid Rozenberg for this patch. + +2014-10-08: Fixed a callback locking bug when encountering rows containing + unexpected NULLs. + + Thanks to for this patch. + +2014-07-04: Moved to GitHub. + +2012-12-02: Added new functions + + * sleep + * clear_bindings + + Old operating system distributions may have had problems linking + these functions, but reasonably recent ones support them. + +2012-11-19: Added missing .mldylib file for shared library support. + + Thanks to Hugo Heuzard for the bug report. + +2012-07-20: Downgraded findlib version constraint to support the Debian + testing branch. + +2012-07-16: Replaced String.trim function in myocamlbuild.ml to allow + compiling with OCaml 3.12.1. + +2012-07-15: New major release version 2.0.0: + + * Upgraded to OCaml 4.00 + * Switched to Oasis for packaging + * Switched to OCamlBuild for the build process + * Rewrote README in Markdown + * Added stricter compilation flags + +2012-05-19: Fixed cpp warnings and removed superfluous check for dynamic + linking library. The latter improves portability to FreeBSD. + + Thanks to Stéphane Legrand for the bug report. + +2011-03-10: Added sqlite3_open_v2 functionality. + + Thanks to Mike Lin for the initial patch. + +2010-12-20: Fixed linking problem with loadable module support. + + Thanks to Adrien Nader for the patch. + +2010-09-18: Fixed segfault related to incorrect handling of exceptions raised + from user callbacks. + + Thanks to William Le Ferrand for the bug + report. + +2009-12-15: Fixed segfault related to exceptions raised from C. + + Thanks to Gareth Smith for the + bug report. + +2009-09-14: Fixed build problem. + +2009-09-13: Removed deprecated functions and improved build process. + +2009-09-08: Added "changes" function. + + Thanks to for this patch. + +2009-08-22: enable_load_extension now raises an exception if unsupported. + +2009-07-28: Added better support for compiling with MSVC and ocamlbuild. + + Thanks to for this patch. + +2009-05-23: Fixed example to be consistent with new API. + +2009-05-16: Fixed mishandling of OCaml-runtime lock when callbacks raise + exceptions, and handle NULL-pointer results when getting column + type declarations. + + Thanks to Bruno Daniel for this patch. + + Changed API to expose optional results. + +2009-03-09: Fixed potential build problem. + +2009-03-01: Added support for user-defined aggregate functions. + + Thanks to Anil Madhavapeddy for the initial + version of the patch. + +2009-02-21: Added new function: + + * busy_timeout + + Thanks to Paolo Donadeo for the patch. + +2009-01-05: Switched to generational global root registration of + callbacks for better performance. + + Requires OCaml 3.11 or higher. + +2008-12-02: Added function enable_load_extension if available. + + Thanks to Pietro Abate for + the patch. + +2008-05-11: Added function column_count, used it internally in place of + data_count, and improved documentation of associated + functions. + + Thanks to James Cheney for the patch. + +2008-05-07: Renamed Data.to_string to Data.to_string_debug for converting + fields to strings with their data constructor. Replaced the + previous function with one that behaves more like users + would expect. Thanks to Stefano Zacchiroli + for the suggestion. + +2008-04-18: Improved backwards compatibility to older versions of SQLite. + +2008-04-04: Fixed a build problem on Mac OS X. + +2008-03-27: Fixed a build problem on FreeBSD. + + Thanks to Jaap Boender for + the patch. + +2008-03-14: Synced with Jane Street tree. + +2008-03-05: Added a patch to improve Windows support. Thanks to Alain + Frisch for the patch. + +2007-09-04: Fixed a minor bug converting status codes. + +2007-08-20: Fixed a GC-bug related to user-defined SQL-functions. + + Thanks to Enrico Tassi for the + test case to replicate this problem. + +2007-06-17: Added support for user-defined scalar functions. Thanks to + Enrico Tassi for the patch. + + Switched to sqlite3_prepare_v2 internally to avoid the older, + deprecated sqlite3_prepare-function. Thanks to Gabriel + Kerneis for the hint. + + Removed exec_sql-function, which was buggy in the last + release anyway (thanks to Paul Stodghill + for pointing this out). Its interface hides too much + important information from the user (e.g. BUSY-steps, etc.). + It did not seem possible to design a function that made + it as simple as exec_sql to run an SQL-statement without + inviting the user to write buggy/incomplete code, or that + wouldn't make the interface almost as complicated as + writing the correct code that handles all cases by oneself. + +2007-05-07: Further GC-bug fixes. There was a design bug in the library + that was causing all these GC issues (C-structs allocated in the + OCaml-heap). This seemed safe (and more efficient) to the initial + author, but after extensive checking it became obvious that this + does not work if C-structs reference each other, because the GC + might move these memory regions. Allocations of C-structs and + using indirections to access them seems safer with "malloc". + +2007-05-04: Fixed GC-bugs, and improved thread interaction. + +2007-04-23: callback_exn -> caml_callback_exn. + +2007-03-30: Fixed a GC-bug. + +2007-03-19: Fixed an installation problem on Cygwin. + + Thanks to James Cheney for the hint. + +2007-02-27: Small API-change: the callback for exec is now an optional + argument. + + Added three more "exec"-functions, which do or do not take + headers or handle NULL-values. + + Improved quality of C-code (removed warnings). + +2007-02-23: Fixed a bug in the "db_close"-function. Improved documentation. + +2007-02-19: Added check for out of memory after malloc. + +2007-01-31: Fixed build problem on x86_64: added -fPIC flag to compilation + of C-stubs. + +2007-01-17: Complete rewrite by Markus Mottl . + +2005-04-xx: Initial coding (0.1) by + Christian Szegedy . +``` diff --git a/pre-v4.2.0-CHANGES.txt b/pre-v4.2.0-CHANGES.txt deleted file mode 100644 index b97d5fe..0000000 --- a/pre-v4.2.0-CHANGES.txt +++ /dev/null @@ -1,249 +0,0 @@ -2017-06-11: Fixed return value bug in enable_load_extension. The result - was just the opposite of what the API documentation says. - -2017-01-04: Added external dependency to OPAM spec for openSUSE support. - -2017-01-03: Fixed incorrect LGPL license reference in Oasis specification. - The software is actually distributed under the Expat-license. - -2016-12-15: Added new functions for more efficient and convenient blob access: - - * column_blob - * row_blobs - - Thanks to Nicolas Ojeda Bar - for this patch! - -2016-10-07: Some portability improvements and Travis integration - - Thanks to Leonid Rozenberg for his Travis work! - -2016-06-14: Changed default configuration setting for loadable extensions - on Mac OS X. Due to frequent installation issues the default - setting is now to turn off loadable extensions on that platform. - You will have to explicitly turn them on if you need them. - -2016-05-24: Fixed a bug finalizing user-defined functions for a database. - - Thanks to Mark Bradley for this patch! - -2015-11-18: More build process improvements for Homebrew users. - - Thanks to Leonid Rozenberg for this patch! - -2015-11-05: Improved build process for Homebrew users. - - Thanks to Leonid Rozenberg for this patch! - -2015-09-02: Major API change that is compatible with major release series 2: - - It is now possible to return errors from user-defined SQL-functions - by simply raising (arbitrary) exceptions. This somewhat - tricky internal change eliminates the need for Data.ERROR and - reestablishes compatibility with major release series 2. - - Sorry for the churn, but the more elegant solution was not - quite obvious! - -2015-08-29: Added user function error handling (major API change). - - Thanks to Joseph Young for this patch! - -2015-01-29: Fixed a build problem due to Oasis/ocamlbuild inconsistency. - - Thanks to Leonid Rozenberg for this patch! - -2014-10-08: Fixed a callback locking bug when encountering rows containing - unexpected NULLs. - - Thanks to for this patch! - -2014-07-04: Moved to GitHub. - -2012-12-02: Added new functions - - * sleep - * clear_bindings - - Really old operating system distributions may have had problems - linking these functions, but it seems that reasonably recent - ones support them. - -2012-11-19: Added missing .mldylib file for shared library support. - - Thanks to Hugo Heuzard for the bug report! - -2012-07-20: Downgraded findlib version requirement to support the Debian - testing branch. - -2012-07-16: Replaced String.trim function in myocamlbuild.ml to allow - compiling with OCaml 3.12.1. - -2012-07-15: New major release version 2.0.0: - - * Upgraded to OCaml 4.00 - * Switched to Oasis for packaging - * Switched to OCamlBuild for the build process - * Rewrote README in Markdown - * Added stricter compilation flags - -2012-05-19: Fixed cpp warnings and removed superfluous check for dynamic - linking library. The latter improves portability to FreeBSD. - - Thanks to Stéphane Legrand for the bug report! - -2011-03-10: Added sqlite3_open_v2 functionality. - - Thanks to Mike Lin for the initial patch! - -2010-12-20: Fixed linking problem with loadable module support. - - Thanks to Adrien Nader for the patch! - -2010-09-18: Fixed segfault related to incorrect handling of exceptions raised - from user callbacks. - - Thanks to William Le Ferrand for the bug - report! - -2009-12-15: Fixed segfault related to exceptions raised from C. - - Thanks to Gareth Smith for the - bug report! - -2009-09-14: Fixed build problem. - -2009-09-13: Removed deprecated functions and improved build process. - -2009-09-08: Added "changes" function. - - Thanks to for this patch! - -2009-08-22: enable_load_extension now raises an exception if unsupported. - -2009-07-28: Added better support for compiling with MSVC and ocamlbuild. - - Thanks to for this patch! - -2009-05-23: Fixed example to be consistent with new API. - -2009-05-16: Fixed mishandling of OCaml-runtime lock when callbacks - raise exceptions, and correctly handle NULL-pointer - results when getting column type declarations. - - Thanks to Bruno Daniel for this - patch! - - Changed API to expose optional results. - -2009-03-09: Fixed potential build problem. - -2009-03-01: Added support for user-defined aggregate functions. - - Thanks to Anil Madhavapeddy for the initial - version of the patch! - -2009-02-21: Added new function: - - * busy_timeout - - Thanks to Paolo Donadeo for the patch! - -2009-01-05: Switched to generational global root registration of - callbacks for better performance. - - Requires OCaml 3.11 or higher!!! - -2008-12-02: Added function enable_load_extension if it is available. - - Thanks to Pietro Abate for - the patch! - -2008-05-11: Added function column_count, used it internally in place of - data_count, and improved documentation of associated - functions. - - Thanks to James Cheney for the patch! - -2008-05-07: Renamed Data.to_string to Data.to_string_debug for converting - fields to strings with their data constructor. Replaced the - previous function with one that behaves more like users - would expect. Thanks to Stefano Zacchiroli - for the suggestion. - -2008-04-18: Improved backwards compatibility to older versions of SQLite. - -2008-04-04: Fixed a build problem on Mac OS X. - -2008-03-27: Fixed a build problem on FreeBSD. - - Thanks to Jaap Boender for - the patch! - -2008-03-14: Synced with Jane Street tree. - -2008-03-05: Added a patch to improve Windows support. Thanks to Alain - Frisch for the patch! - -2007-09-04: Fixed a minor bug converting status codes. - -2007-08-20: Fixed a GC-bug related to user-defined SQL-functions. - - Thanks to Enrico Tassi for the - test case to replicate this problem! - -2007-06-17: Added support for user-defined scalar functions. Thanks to - Enrico Tassi for the patch! - - Switched to sqlite3_prepare_v2 internally to avoid the older, - deprecated sqlite3_prepare-function. Thanks to Gabriel - Kerneis for the hint! - - Removed exec_sql-function, which was buggy in the last - release anyway (thanks to Paul Stodghill - for pointing this out!). Its interface hides too much - important information from the user (e.g. BUSY-steps, etc.). - It did not seem possible to design a function that made - it as simple as exec_sql to run an SQL-statement without - inviting the user to write buggy/incomplete code, or that - wouldn't make the interface almost as complicated as just - writing the correct code that handles all cases by oneself. - -2007-05-07: Further GC-bug fixes. There was a design bug in the library - that was causing all these GC issues (C-structs allocated - in the OCaml-heap). This obviously seemed safe (and more - efficient) to the initial author, but after extensive checking - it became apparent that this just does not work if C-structs - reference each other, because the GC might move these memory - regions. It seems safer to allocate C-structs with "malloc", - and use an indirection to access them. - -2007-05-04: Fixed several GC-bugs, and improved thread interaction. - -2007-04-23: callback_exn -> caml_callback_exn. - -2007-03-30: Fixed a GC-bug. - -2007-03-19: Fixed an installation problem on Cygwin. - - Thanks to James Cheney for the hint! - -2007-02-27: Small API-change: the callback for exec is now an optional - argument. - - Added three more "exec"-functions, which do or do not take - headers or handle NULL-values. - - Improved quality of C-code (removed warnings). - -2007-02-23: Fixed a bug in the "db_close"-function. Improved documentation. - -2007-02-19: Added check for out of memory after malloc. - -2007-01-31: Fixed build problem on x86_64: added -fPIC flag to compilation - of C-stubs. - -2007-01-17: Complete rewrite by Markus Mottl . - -2005-04-??: Initial coding (0.1) by - Christian Szegedy .