mirror of
https://github.com/mdbtools/mdbtools.git
synced 2025-04-04 10:42:27 +08:00
244 lines
10 KiB
Plaintext
244 lines
10 KiB
Plaintext
Version 1.0.0
|
|
=============
|
|
|
|
MDB Tools 1.0 includes a number of new features compared to the 0.9 series. The
|
|
most significant change is that mdbtools.h is now generated at build time, and
|
|
its internal HAVE_ macros have been removed. This means that it is now safe for
|
|
clients to compile against mdbtools.h without needing to provide the same
|
|
HAVE_ICONV and HAVE_GLIB flags that were present when the library was first
|
|
compiled. For most users, MDB Tools 1.0 will be ABI and API compatible with the
|
|
0.9 series but see the notes in the "Install" section below.
|
|
|
|
The SQL engine has two new operators: ILIKE (case-insensitive pattern matching)
|
|
and <> (not equals).
|
|
|
|
Changes since 0.9.4:
|
|
|
|
Build:
|
|
* Generate platform-specific `mdbtools.h` at configure-time #316
|
|
* Ensure compiler supports thread-local storage
|
|
* Fix `AC_PROG_LEX` warning with autoconf 2.70
|
|
* Rely on autoconf to define appropriate values of `_XOPEN_SOURCE` and friends
|
|
* New `--disable-iconv` configure option (falls back to `wcstombs` where possible)
|
|
* Fix a build error when `./configure` detected iconv, but thought it was not working
|
|
* Generating the configure script now requires autoconf 2.64 or later
|
|
|
|
Install:
|
|
* Install `libmdbodbc.so` and `libmdbodbcW.so` into ${libdir}/odbc #315
|
|
* Do not install `mdb-sql` if SQL support was not built #276
|
|
* Do not install `libmdbsql.pc` if SQL support was not built
|
|
|
|
`pkg-config`:
|
|
* Simplify `--cflags` for libmdb
|
|
* Provide correct `--cflags` for libmdbsql
|
|
|
|
libmdb:
|
|
* Copy date formats when cloning handles #326
|
|
* Fix incorrect reading of double values #339 #342
|
|
* Fix accidental reads of non-index data #335 #343
|
|
* New `mdb_set_repid_fmt()` for setting the format of Rep IDs (UUIDs) #344
|
|
|
|
SQL:
|
|
* New case-insensitive, Unicode-aware `ILIKE` operator #244
|
|
* New `<>` (not equal) operator #329
|
|
* Improved support for comparing floating-point values to integers
|
|
* Improved support for floating point literals with no fractional digits (e.g. "3.")
|
|
* Add support for querying Rep IDs
|
|
|
|
ODBC:
|
|
* Format boolean values correctly as `SQL_C_CHAR` #327
|
|
* Add support for the `SQL_C_WCHAR` (UTF-16) return type #347 #348
|
|
* The Unicode driver (`libmdbodbcW.so`) no longer uses iconv #332 #333
|
|
* Add support for older iODBC installations lacking `odbcinst.h`
|
|
|
|
`mdb-export`:
|
|
* Convert table names to lower case when exporting to PostgreSQL #322
|
|
* Use `CREATE IF NOT EXISTS` when exporting to PostgreSQL #321
|
|
* Fix issue where byte columns with values > 127 were exported as negative numbers (regression introduced in v0.9.3-beta1) #350
|
|
|
|
`mdb-hexdump`:
|
|
* Deprecate tool
|
|
|
|
Version 0.9.4
|
|
=============
|
|
|
|
libmdb:
|
|
* Write encrypted pages #305
|
|
* Improved support for big-endian platforms
|
|
* Remove obsolete `AC_HEADER_STDC` macro from configure.ac
|
|
|
|
SQL:
|
|
* Fix compilation on RHEL 7.9 #301
|
|
* Add brackets around table names in `mdb-query` output #307
|
|
* Support for brackets around table names in SQL parser
|
|
* Fix regression in 0.9.3 where `COUNT(*)` resulted in a parse error #318 #319
|
|
|
|
ODBC:
|
|
* Fix `-Werror=array-bounds` compile error #313
|
|
|
|
Version 0.9.3
|
|
=============
|
|
|
|
libmdb:
|
|
* Support files created with Access 2019 #260 #277
|
|
* Fix a warning when reading in binary property values #262
|
|
* Fix signed-unsigned comparison warning #269
|
|
* Migrate to `g_memdup2` #287 #288
|
|
* Fix build when `_XOPEN_SOURCE` was already defined on the platform #298
|
|
* Fix build failure with emscripten #299
|
|
|
|
libmdbsql:
|
|
* Support negative floating point literals #274 #279
|
|
* Improved support for file paths in `CONNECT TO` statements #275 #280 #282
|
|
* Comparison operators behaved incorrectly when the constant was on the left #283 #285
|
|
* Allow double quoted (") database names #291
|
|
* Allow spaces in database names #292 #293
|
|
|
|
ODBC:
|
|
* unixODBC now uses the `--libdir` passed at configure-time #261
|
|
* Fix a segfault in PyODBC when `SQLGetTypeInfo` is called on an unsupported data type #278
|
|
|
|
Docs:
|
|
* Add JET version for access 2013/2016/2019 to docs #286
|
|
|
|
Version 0.9.2
|
|
=============
|
|
|
|
MDB Tools 0.9.2 is a security and bug-fix release. Due to a number of memory
|
|
errors uncovered by OSS-Fuzz, all users who use MDB Tools to read data from
|
|
untrusted sources are encouraged to upgrade to 0.9.2 as soon as possible.
|
|
|
|
The release also includes some minor improvements and behavior changes,
|
|
described below.
|
|
|
|
libmdb:
|
|
* Fix infinite loop with malformed input (oss-fuzz/28789)
|
|
* Fix buffer overrun and some out of bounds memory accesses (oss-fuzz/28832 + oss-fuzz/28807)
|
|
* Fix potential memory leak (oss-fuzz/28791)
|
|
* Improved bounds and return value checking (oss-fuzz/29328 + oss-fuzz/29329)
|
|
* Add support for numeric scale/precision on JET3 databases and floating-point column types
|
|
* `mdb_col_to_string` now prints a warning and returns `""` for any unsupported data type
|
|
* Improved warning with invalid row data #253
|
|
|
|
Command-line tools:
|
|
* All CLI tools which accept string arguments are now locale-aware (#237)
|
|
* All CLI tools now accept a `--version` argument (#232)
|
|
* `mdb-export`: Fix issue where exported SQL field sizes were sometimes twice the necessary size (#112)
|
|
* `mdb-export`: Improved handling of BLOBs (#250)
|
|
* `mdb-export`: Implement a serial type and relations for MySQL (#257)
|
|
* `mdb-queries` now has long option names `--list`, `--newline`, and `--delimiter`
|
|
* `mdb-schema`: Exit with an error code if the requested table is not found
|
|
|
|
ODBC:
|
|
* `SQLBindCol` now respects its TargetType (fCType) argument and converts bound data to the requested type (#23 #242)
|
|
* `SQLFetchCol` now returns `SQL_SUCCESS_WITH_INFO` if a bound column was truncated, and `SQL_ERROR` if a bound value is out of range of the target type.
|
|
* Fix handling of numeric types in ODBC driver (#255)
|
|
|
|
Build and documentation:
|
|
* Updated man pages with new SQL features and correct `MDBOPTS` information (#203)
|
|
* Add generated API documentation (#239)
|
|
* Move `HACKING` to `HACKING.md` (with a relocation notice) and `TODO` to `TODO.md`
|
|
* Fuzz-test all pull requests (#230)
|
|
* Add `-DHAVE_GLIB` to library's `pkg-config --cflags` if needed (#254)
|
|
|
|
|
|
Version 0.9.1
|
|
=============
|
|
|
|
* MDB Tools has migrated from Travis CI to GitHub Actions for automated builds
|
|
* Fix a build error with msys2 (Windows) when GLib was disabled
|
|
* Remove dependency on math.h #228
|
|
* mdb-export now uses scientific notation only for very small numbers #84
|
|
* mdb-schema no longer emits illegal ALTER TABLE statements for SQLite relationships #82
|
|
* mdb-schema now omits the namespace for PostgreSQL indexes and constraints #93
|
|
* Automatically detect character encoding of JET3 databases #224
|
|
* JET3: Transcode Latin-1 text to UTF-8 when iconv is not present
|
|
* JET4: Transcode Unicode text to UTF-8 when iconv is not present (using `wcstombs`) #223
|
|
* Fix a buffer overrun with binary string fields OSS-Fuzz/28779 #216
|
|
* Fix a stack overflow with malformed input OSS-Fuzz/28780 #217
|
|
* Improved validation of date input OSS-Fuzz/28790 #219
|
|
* Fix a potential buffer overrun when compiled without iconv OSS-Fuzz/28773 #220
|
|
* Fix an extra newline that appeared at the `mdb-sql` prompt when Readline was not present
|
|
* Fix potential stack corruption with malformed input
|
|
* mdb-export has a new --escape-invisible flag for C-style escaping of tabs and newlines #222
|
|
* Print a warning if MDBOPTS=use_index is set at run-time but libmswstr was absent at compile-time #215 #226
|
|
* Improved support for databases that were improperly closed #120
|
|
* Remove warnings about mdb_find_row and row_size that did not necessarily indicate a problem
|
|
|
|
|
|
Version 0.9.0
|
|
=============
|
|
|
|
MDB Tools is under new management! Update your bookmarks and tell your favorite
|
|
search engine that this is our new home on the WWW:
|
|
|
|
https://github.com/mdbtools/mdbtools
|
|
|
|
MDB Tools 0.9.0 builds off the fork of cyberemissary on GitHub, collects many
|
|
years of unapplied patches, and includes a number of internal improvements.
|
|
Besides a host of security fixes, GLib is now completely optional, files can
|
|
be opened completely in-memory, and many global variables have been eliminated
|
|
to facilitate thread safety.
|
|
|
|
The core library, libmdb, is believed to be thread-safe in the sense that
|
|
several handles can be opened simultaneously and passed between threads.
|
|
However, individual handles are NOT thread-safe, so don't try to do work
|
|
on a single handle from multiple threads without implementing your own
|
|
locking mechanism.
|
|
|
|
The auxiliary libraries, libmdbsql and ODBC, still have some non-reentrant
|
|
function calls. Thread safety is not promised, though the situation is
|
|
significantly improved from the 0.7 days.
|
|
|
|
The ABI has some slight changes (mostly having to do with struct layouts) so
|
|
you'll need to bump your SO numbers and such. The main changes to the API are
|
|
the introduction of a new function for in-memory parsing:
|
|
|
|
MdbHandle *mdb_open_buffer(void *buffer, size_t len, MdbFileFlags flags);
|
|
|
|
And the modification of the "mdb_set_date_fmt" function to include a handle
|
|
parameter, so that date formats can be set in a non-global fashion:
|
|
|
|
void mdb_set_date_fmt(MdbHandle *mdb, const char *);
|
|
|
|
The above function is the most common reason that old projects will fail to
|
|
compile on 0.9, and the fix is straightforward.
|
|
|
|
The previously-deprecated functions mdb_init() and mdb_exit() have been
|
|
removed. These functions did nothing; any calls to them should be excised with
|
|
prejudice.
|
|
|
|
This release introduces two new CLI tools (mdb-count and mdb-queries) and
|
|
deprecates mdb-array, mdb-header, and mdb-parsecsv. Several man pages have been
|
|
added or otherwise brought up to date.
|
|
|
|
The GNOME-based GUI tool that formerly shipped with MDB Tools has been moved to
|
|
a separate project, here:
|
|
|
|
https://github.com/mdbtools/gmdb2
|
|
|
|
It seems to compile but should probably be classified as abandonware. The
|
|
project uses a deprecated GUI toolkit, and as such gmdb2 is no longer included
|
|
in Linux distros that used to carry it.
|
|
|
|
Version 0.7.1
|
|
=============
|
|
autogen.sh is no more. Use "autoreconf -if" to bootstrap the configuration.
|
|
|
|
autoconf/automake has been updated to more recent standards.
|
|
- config.guess config.sub depcomp install-sh ltmain.sh missing ylwrap
|
|
files are now in build-aux/ directory
|
|
You'll now need autoconf >= 2.58
|
|
|
|
An experimental (buggy) version of ODBC driver that supports UCS-2 interface
|
|
is now available: libmdbodbcW.so
|
|
Note that libmdbodbc supports UTF-8 really well, so that this is usually not
|
|
needed.
|
|
|
|
Version 0.3
|
|
===========
|
|
The organization of the project files has changed a bit from that last release.
|
|
The autoconf stuff has been moved to the root directory. The include directory
|
|
has also been moved from src/include to include
|
|
|