Skip to content
Commit 08ac1466 authored by Jarosław Staniek's avatar Jarosław Staniek
Browse files

Update to current mdbtools

(Merge branch 'D14486' into 3.1)

Summary:
FIXED-IN:3.1.1

Bug fixes relevant to KEXI:
- Fix crash on importing zero length memos (long text)
- Fix not being able to handle binary objects larger than 16 MiB. Limit is now 256 MiB.
- Fix possible crash when importing MDB file having non-latin characters in column names of unexpected length
BUG:396984

Details:
- GIT_SILENT Fix typos
mdbtools 9fb36c0f075de 772b5675dd98bda

- Segfault fix on memo zero length multiple page
While converting memo field to string, stop processing on zero length multiple
page. mdbtools a89baeacf5976daf196

- Fix binary output
Closes issue #44. mdbtools 9ab40e83e6789015c965

- Introduce MDB_BACKEND_* enum
mdbtools cce6cfead2377ae7d

- Fix for dates in mdb-props
mdbtools a3ab6c7969ee379e2393f

- Allow CFLGAS="-std=c99 -D_POSIX_C_SOURCE=2"
Use glib function:
strcasecmp -> g_ascii_strcasecmp
bzero -> memset
strdup -> g_strdump
Don't use arithmetic void*+int
mdbtools 2a70e16a8b943b25bc

- Avoid dynamic array allocation on stack.
This might help some non C99 compliant compilers, while being a trivial change.
mdbtools 9b4d5e624b4e16fd1097

- Compiles with VC++ as a .dll. Set up to use static glib, libiconv, libintl for ease of use.
mdbtools cb65d4f3ddd5d95261

- Fix warnings mostly related unsigned char after merging mdbtools cb65d4f3ddd5d952

- Fix not being able to handle blobs > 16 MB. Limit now at 256 MB
mdbtools 850d9e169d91bda02

- JET 4: index flags (eg, UNIQUE) 4 bytes later.
Re-reverse engineered index meta information layout in JET 4
file format, based particularly on jackcess (Java) JET/Access
database library (https://github.com/jahlborn/jackcess), and
hexdumps of JET 4 database index meta information.  Based both
on byte counting of jackcess reading of index definitions and
also expected flag values (0x80, 0x89, etc), the flags of JET 4
index definition are 4 bytes later than mdbtools previously thought.
See IndexData.read() and private static class Jet4Format in
src/main/java/com/healthmarketscience/jackcess/impl/IndexData.java
src/main/java/com/healthmarketscience/jackcess/impl/JetFormat.java
in jackcess source for layout reference.
Now appears to get sensible "CREATE INDEX"/"CREATE UNIQUE INDEX"
behaviour on export to PostgreSQL schema.
Also added extensive index definition byte layout reference to top
of src/libmdb/index.c for ease of reference, plus more debugging
assistance (and comments of phases reading index for readability).
mdbtools 999f6f5f104393f77

- mdb-export: Add boolean words option (TRUE/FALSE)
Adds "-B" (--boolean-words) option to mdb-export, which will reconfigure
mdb/data.c to export TRUE/FALSE for boolean values instead of 1/0.  The
option is needed to support BOOLEAN fields on PostgreSQL, which will not
implicitly cast bare 1/0 into a BOOLEAN value.  Value literals are the
SQL TRUE/FALSE, and _quoted_ words meaning true/false and _quoted_
'1'/'0'.  With this flag the SQL TRUE/FALSE values are output, which should
work with several SQL databases.
PostgreSQL Reference: http://www.postgresql.org/docs/current/static/datatype-boolean.html
(note for KEXI: note used but added to make data.c merges more cleanly)
mdbtools 8b1db6c08edbdf

- At least for me IS NULL and IS NOT NULL are the wrong way round in SQL, fixed it.
mdbtools 2355aec912724a2

- bug fix for 'bad' data with odd number of UCS-2 bytes (fixes BUG:396984 in KEXI)
mdbtools 9d56b0c3d80cdabc21b

Test Plan: See description of https://bugs.kde.org/show_bug.cgi?id=396984

Reviewers: piggz

Reviewed By: piggz

Subscribers: anthonyfieroni, pino, Kexi-Devel-list

Tags: #kexi

Maniphest Tasks: T1361

Differential Revision: https://phabricator.kde.org/D14486
parents d194b984 82a619c0
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment