Diffusion Kexi 08ac1466f449

Update to current mdbtools

Authored by staniek on Aug 30 2018, 9:04 PM.

Description

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

Details

Merged Changes

CommitAuthorDetailsCommitted
82a619c04ad2staniek
MDB: Finalize removal of num_bytes defines 
Aug 30 2018
410db4e37623Brian Bruns/staniek
Bug fix for 'bad' data with odd number of UCS-2 bytes 
Aug 30 2018
437231a67574Brian Bruns/staniek
At least for me IS NULL and IS NOT NULL are the wrong way round in SQL, fixed… 
Aug 30 2018
02c776909888Ewen McNeill/staniek
mdb-export: Add boolean words option (TRUE/FALSE) 
Aug 30 2018
be5be41d28eeEwen McNeill/staniek
JET 4: index flags (eg, UNIQUE) 4 bytes later 
Aug 30 2018
4ac1730c9778Jimmy Taker/staniek
Fix not being able to handle blobs > 16 MB. Limit now at 256 MB 
Aug 30 2018
c9b2c9efc9cfstaniek
Fix warnings mostly related unsigned char after merging mdbtools… 
Aug 30 2018
f800776b2dbbJimmy Taker/staniek
Compiles with VC++ as a .dll. Set up to use static glib, libiconv, libintl for… 
Aug 30 2018
1bc284de58f0Nirgal Vourgère/staniek
Avoid dynamic array allocation on stack. 
Aug 30 2018
54e1f67ff4e9Nirgal Vourgère/staniek
Allow CFLGAS="-std=c99 -D_POSIX_C_SOURCE=2" 
Aug 30 2018
f5a48f9cd417Shane Mc Cormack/staniek
Fix for dates in mdb-props 
Aug 30 2018
268ebe8c26d3Maurus Cuelenaere/staniek
Introduce MDB_BACKEND_* enum 
Aug 30 2018
bc1348c0ffb8Zhao Qi/staniek
Fix binary output 
Aug 30 2018
56b0498c362cNirgal Vourgère/staniek
Segfault fix on memo zero length multiple page 
Aug 30 2018
39b87f3360f6staniek
GIT_SILENT Fix typos 
Aug 30 2018
733ff1d6978estaniek
Update KEXIMDB's README 
Aug 30 2018