Commit Graph
100 Commits
Author SHA1 Message Date
Evan Miller 4143f34706 Install ODBC drivers to odbc/ subdirectory
See #315
2021-08-04 16:29:31 -04:00
Evan Miller 7791c74246 README fixes 2021-08-04 16:13:09 -04:00
Evan Miller d5a42d9fed Bump _XOPEN_SOURCE to 700
This allows locale_t to be defined on Linux.
2021-08-04 16:06:47 -04:00
Evan Miller c866b04b74 Fix Linux build 2021-08-04 15:59:17 -04:00
Evan Miller a803abe1cf Change #if to #ifdef in a couple places 2021-08-04 15:55:20 -04:00
Evan Miller 2a58435fbf Fix build 2021-08-04 15:39:09 -04:00
Evan Miller 12a888988d Update README and deprecate mdb-hexdump 2021-08-04 15:33:43 -04:00
Evan Miller e88e3cc7e7 Remove HAVE_ macros from mdbtools.h and mdbsql.h
Generate mdbtools.h at configure-time. This ensures that the public
interface matches the compiled structures.

See #316
2021-08-04 15:29:23 -04:00
Evan Miller a44a8ed8ae Postgres-style ILIKE operator (with Unicode support) (#244)
Access's `LIKE` is actually case-insensitive, but to prevent breaking existing
programs that rely on mdbtools' case-sensitive behavior, introduce a new
`ILIKE` operator to perform a case-insensitive match. Use GLib's `g_utf8_casefold`
to make the comparison UTF-8 aware. A "poor man's" version is implemented
in fakeglib, which relies on `towlower`, and won't work with multi-grapheme
case transformations (e.g. German Eszett).

Fixes #233
2021-08-04 14:45:31 -04:00
Evan Miller 1b147b8d29 Merge pull request #276 from mdbtools/no-sql
Don't build/install mdb-sql if SQL is not supported
2021-08-04 14:12:20 -04:00
Evan Miller 12643bd95b Merge pull request #310 from maharmstone/mdb_read_next_dpg
mdbtools.h: add mdb_read_next_dpg
2021-08-04 14:10:58 -04:00
Evan Miller 930f234f05 Merge pull request #322 from doraemoncito/name-normalization
Added support for name normalisation when generating code for PostgreSQL
2021-08-01 15:06:07 -04:00
Evan Miller ce4cf5acbf Merge pull request #321 from doraemoncito/custom-create-table-statements-standalone
Introduced customised "create table" DDL statements per database type.
2021-07-31 08:49:13 -04:00
Evan Miller a73202c8df Merge pull request #320 from doraemoncito/ignore-intellij-idea-state-files
Ignore the the .idea folder in the project's root directory contains IntelliJ IDE project specific settings files.
2021-07-31 07:39:24 -04:00
Evan Miller 8692586205 Merge branch 'dev' into no-sql 2021-07-24 11:34:25 -04:00
Evan Miller 3cc0871339 Only install libmdbsql.pc if libmdbsql is built 2021-07-24 11:33:33 -04:00
Evan Miller f3053fbd45 MDB Tools 0.9.4, Beta 1 2021-07-18 14:01:24 -04:00
Evan Miller 9fe8c43ab8 Remove obsolete AC_HEADER_STDC macro 2021-07-17 10:35:00 -04:00
Evan Miller f79f942d1f Fix RC4 decryption on big-endian platforms 2021-07-17 10:13:24 -04:00
Evan Miller 45779d03ff Merge pull request #319 from Bob620/dev
sql: Properly handle arbitrary parentheses placements in PATH breaking SELECT functions
2021-07-14 12:41:59 -04:00
Evan Miller fe77bc5c8e Remove uses of ntohl 2021-07-14 09:33:24 -04:00
Evan Miller 398d46577a Merge pull request #313 from jwrdegoede/fedora34-compile-fix
Fix -Werror=array-bounds compile error in src/odbc/odbc.c
2021-07-08 16:53:02 -04:00
Evan Miller 2be2ab711e Remove tautological comparison
Fixes warnings with some versions of GCC
2021-06-10 09:50:51 -04:00
Evan Miller d72e6381fe Fix build on some ancient systems 2021-06-03 10:05:18 -04:00
Evan Miller a31a95056d Simplify logic 2021-06-02 09:16:55 -04:00
Evan Miller 6136252a85 Merge pull request #306 from mdbtools/issue-301
Set _XOPEN_SOURCE to 600
2021-05-19 10:09:15 -04:00
Evan Miller aeda51440a Merge pull request #305 from filmor/write-encrypted-pages
Write encrypted pages
2021-05-19 10:08:54 -04:00
Evan Miller 3e11f6dc26 Set _XOPEN_SOURCE to 600. Fixes #301
Some platforms including RHEL need _XOPEN_SOURCE to be defined as a
particular value. 600 seems to be a popular choice.
2021-05-18 14:01:01 -04:00
Evan Miller 373b7ff4c4 Version 0.9.3, final 2021-05-01 07:03:58 -04:00
Evan Miller e52c47d561 MDB Tools 0.9.3, Beta 4 2021-04-25 13:25:57 -04:00
Evan Miller 31a075e08b Remove function pointer casts 2021-04-25 11:23:38 -04:00
Evan Miller e796ac173a Merge pull request #299 from filmor/patch-1
Adjust loop callback signatures (improve emscripten compatibility)
2021-04-25 11:22:46 -04:00
Evan Miller 74fd4b1ff9 MDB Tools 0.9.3, Beta 3 2021-04-16 13:43:03 -04:00
Evan Miller 05bee0c69f Remove unnecessary _XOPEN_SOURCE
This was originally intended to expose strptime, which is no longer
(never?) used  by data.c
2021-04-16 13:04:40 -04:00
Evan Miller ceb65d6ece Conditionally define _XOPEN_SOURCE
Fixes #298
2021-04-13 07:19:19 -04:00
Evan Miller a47224bb80 Version 0.9.3, Beta 2 2021-04-08 14:59:50 -04:00
Evan Miller fe0175aa63 Migrate to g_memdup2 (#288)
With fakeglib and older versions of GLib, fall back to g_memdup with
a #define inside mdbprivate.h.

Fixes #287
2021-04-05 09:04:29 -04:00
Evan Miller afd154f619 Merge pull request #293 from mdbtools/no-wordexp
SQL: Allow spaces in DB names (remove wordexp.h)
2021-04-05 09:00:57 -04:00
Evan Miller 88ecb2986b GitHub Actions: Enable fail-fast for macOS iODBC builds 2021-04-04 22:13:02 -04:00
Evan Miller c494f0d746 SQL: Allow spaces in DB names (remove wordexp.h)
Fixes #292
2021-04-04 22:07:31 -04:00
Evan Miller 015089ae34 Merge pull request #291 from Bob620/quoted-database-string
SQL: allow double quoted (") database names
2021-04-04 21:59:48 -04:00
Evan Miller f265cc1e15 Remove GCC 8 from GitHub Actions
This version of GCC has been removed from the default image; see

https://github.com/actions/virtual-environments/issues/2950
2021-04-03 08:30:56 -04:00
Evan Miller 459516920a Merge pull request #286 from andipaetzold/patch-1
Add JET version for access 2013/2016/2019 to docs
2021-03-31 14:27:31 -04:00
Evan Miller 7d10a50faf Version 0.9.3, Beta 1 2021-03-31 09:10:29 -04:00
Evan Miller 5992a1cc66 Merge pull request #285 from Bob620/issue-283
sql: correctly parse 'inverse' operators
2021-03-25 22:38:09 -04:00
Evan Miller ff3c6ebd01 Merge pull request #282 from Bob620/support-more-uri
Support more valid uri
2021-03-25 08:23:53 -04:00
Evan Miller 05a1492eef Merge pull request #280 from mdbtools/issue-275
libmdbsql: Allow dashes in paths
2021-03-24 18:36:09 -04:00
Evan Miller db7cefbc22 Merge pull request #279 from mdbtools/issue-274
libmdbsql: Support negative floating point literals
2021-03-24 18:35:20 -04:00
Evan Miller 8c2f8221b5 Allow dashes in paths #275
This is not a complete fix, but should address the immediate reported issue.
2021-03-24 09:57:41 -04:00
Evan Miller 58e4fe281d libmdbsql: Support negative floating point literals
Fixes #274
2021-03-24 09:47:52 -04:00
Evan Miller d8a81c49a3 Merge pull request #277 from mdbtools/access-2019
Support Access 2019
2021-03-24 09:28:00 -04:00
Evan Miller 8ddf8e6411 Merge pull request #278 from uweber/SQLGetTypeInfo_segv
Fix segfault when attempting to access empty table (e.g. from ODBC)
2021-03-24 09:27:27 -04:00
Evan Miller 8f1f080e3f Support Access 2019
Per #260 I am assuming that the internal version 6 refers to files
created with Access 2019. I can't find any documentation on this format,
so I am calling it ACE17. Testing welcome.
2021-03-23 15:56:39 -04:00
Evan Miller 58222eeb35 Don't build/install mdb-sql if SQL is not supported
Eliminates obsolete message about --enable-sql. See #273
2021-03-23 15:53:43 -04:00
Evan Miller e1a850d1a7 Merge pull request #272 from HenriHakonen/patch-1
Update write.c
2021-03-23 11:34:05 -04:00
Evan Miller 735351d0cb Fix signed-unsigned comparison
Fixes #269
2021-03-15 17:32:47 -04:00
Evan Miller cdfefe08e6 Merge pull request #268 from mdbtools/nirgal-patch-1
Refresh AUTHORS
2021-03-15 08:50:09 -04:00
Evan Miller ad8c80892b Fix compilation error 2021-03-07 14:36:07 -05:00
Evan Miller 46a65b9789 Fix warning when reading binary properties
Also fix some type-size issues in mdb_col_to_string.

See #262
2021-03-07 09:03:39 -05:00
Evan Miller 636d54b530 Clarify docs about the necessity of autoreconf 2021-03-07 09:02:51 -05:00
Evan Miller b185c277dc Merge pull request #261 from thesamesam/dev
configure.ac: Respect --libdir for unixODBC
2021-02-27 11:16:16 -05:00
Evan Miller 9b200549d7 Version 0.9.2, final 2021-02-27 09:04:27 -05:00
Evan Miller 1464882931 mdb-tables: Support --version flag 2021-02-22 09:24:06 -05:00
Evan Miller d59abb99b4 Version 0.9.2, Beta 6 2021-02-22 09:02:06 -05:00
Evan Miller ed894ef12c Merge pull request #257 from mjwoodcock/mysql-schema
Mysql schema
2021-02-16 16:48:42 -05:00
Evan Miller 1bfce353d4 Move mdb_col_to_string warning 2021-02-15 21:25:53 -05:00
Evan Miller abe820c66c Version 0.9.2, Beta 5 2021-02-15 19:59:23 -05:00
Evan Miller e655cba907 Fix handling of numeric types in ODBC driver
Fixes #255 and supersedes #256
2021-02-15 19:50:15 -05:00
Evan Miller b9c065885c Merge pull request #254 from h3xx/fix-library-cflags
Add -DHAVE_GLIB to library cflags if needed
2021-02-10 16:11:24 -05:00
Evan Miller c5593d893e Merge pull request #253 from kalpha2/patch-1
Update write.c
2021-02-10 12:45:22 -05:00
Evan Miller 0c34e1aa2b Versio 0.9.2, Beta 4 2021-02-05 14:02:12 -05:00
Evan Miller 763716ecc6 Fix unused function warning without iconv 2021-02-02 18:40:40 -05:00
Evan Miller 77f78ea757 Version 0.9.2, Beta 3 2021-01-29 08:32:49 -05:00
Evan Miller 4e969425ac Add (fake) g_unichar_to_utf8 2021-01-22 07:45:47 -05:00
Evan Miller da80fb3430 Make mdb_iconv_name_from_code_page static 2021-01-21 23:25:46 -05:00
Evan Miller 468502bc87 Terminate string 2021-01-21 23:16:33 -05:00
Evan Miller 0aa3aeee42 Simplify (fake) g_locale_to_utf8
Use mbstowcs and a manual UTF-8 conversion so we don't have to sniff
the locale and require iconv.
2021-01-21 23:08:55 -05:00
Evan Miller f1eac042b5 Fix misuse of "%*s" in sprintf strings
%*s takes the output length, not the input length. The intended
specifier was %.*s in several places. Bug(s) introduced in
2bb31f05ee
2021-01-21 18:27:20 -05:00
Evan Miller 848303f9f0 Version 0.9.2, Beta 2 2021-01-20 09:14:29 -05:00
Evan Miller 9904b079bf Restore the HACKING file with a redirect notice
Several pages link to the old file and we don't want to break those
links.
2021-01-20 09:13:30 -05:00
Evan Miller 70c1b66278 Use correct bind types for SQLBindCol / SQLFetch (#242)
SQLFetch / SQLExtendedFetch now skip the mdb_sql machinery and use
SQLGetData on their bound columns instead. We rely on mdb_fetch_row
to skip to the correct page without any bindings and then SQLGetData will
do the rest.

SQLFetch will now correctly return SQL_SUCCESS_WITH_INFO if one or more
 bound columns have their data truncated, and will return several kinds of errors
(provided by SQLGetData) that were previously ignored.

Updated the unit test with a SQL_C_LONG type for demonstration purposes.

Fixes #23
2021-01-20 09:00:48 -05:00
Evan Miller 615b625d79 Let LC_COLLATE influence string-comparison operations
By default this will be set to the C locale, but set it to the user's
locale when string comparisons are performed from mdb-sql. Note that
this can be overridden with the LC_COLLATE environment variable.

We could infer the collation locale from the file itself, but this will
likely require a big ball of glue between the Windows locales and Unix
ones.
2021-01-19 21:24:31 -05:00
Evan Miller f99c5539e7 Add --version option to the CLI tools
See #232
2021-01-19 20:37:25 -05:00
Evan Miller 9e85bc4153 Clean up backend export logic
* Differentiate character lengths from byte lengths (see #112)

* Use GNU-style indexed initializers for clarity

* Remove needs_quotes since it's not used anywhere
2021-01-19 18:03:10 -05:00
Evan Miller dbc1aa7ea2 Document TOP and LIMIT clauses in the man page 2021-01-19 16:43:10 -05:00
Evan Miller 8c91654426 Man page and usage updates
* MDBOPTS=no_memo is not used anywhere; mark deprecated and print a
  warning if enabled

* Mark MDBOPTS=use_index as experimental in the man pages

* MDBOPTS need to be colon separated

* Document new long forms of mdb-queries options
2021-01-19 16:27:36 -05:00
Evan Miller 0aa88f85d5 Support scale/precision with more column types 2021-01-19 15:55:57 -05:00
Evan Miller aec667a033 Fix numeric scale/precision on Jet3 databases 2021-01-19 15:23:28 -05:00
Evan Miller d089c4072d More locale-awareness for command line arguments 2021-01-18 18:15:30 -05:00
Evan Miller 1e35bddc62 Migrate mdb-queries over to the GLib machinery
This buys us an auto-generated usage string and locale-awareness for the
query name. Short option names are preserved and long names are added.
2021-01-18 17:45:24 -05:00
Evan Miller 8fff5b0ac0 Merge pull request #239 from pedromorgan/apidocs_1
apidocs with doxygen
2021-01-16 11:49:12 -05:00
Evan Miller 52cd0779d6 Version 0.9.2, Beta 1 2021-01-15 08:26:04 -05:00
Evan Miller dd13e20456 More bounds checking 2021-01-15 08:08:51 -05:00
Evan Miller 89e2361582 Fix buffer overrun (oss-fuzz/28832+28807)
len_out was wrapping to a large number when bad input was encountered.
Ensure it's non-zero before proceeding with iconv.
2021-01-15 07:44:50 -05:00
Evan Miller 0e3a627ee6 Make command-line arguments locale-aware (#237)
GLib will automatically convert command line options to UTF-8 provided that setlocale(LC_TYPE, "") is called first, and the argument type is STRING (but not FILENAME). Update the CLI tools to take advantage of this behavior, and likewise implement it in fakeglib.

GLib does not automatically convert non-option arguments (i.e. everything remaining in argv after option processing), so manually call g_locale_to_utf8 on these arguments when they represent table names. This should fix the CLI tools when processing non-ASCII table names in non-UTF-8 locales. Also update fakeglib to implement a fast and loose version of g_locale_to_utf8, and factor out some of the code page => iconv name logic in iconv.c so it can be used in our fake g_locale_to_utf8. This adds a new symbol mdb_iconv_name_from_code_page that is not advertised in the main header file. I did not want to include mdbtools.h from fakeglib.c, but maybe that's not important.
2021-01-14 17:34:50 -05:00
Evan Miller 42431bbba8 Fuzzing workflow (#230)
Add a CIFuzz workflow (and a corresponding badge to the README)
2021-01-14 14:54:37 -05:00
Evan Miller b9531290af GitHub Actions: Pass -e to test scripts
This ensures that the script will exit with an error code if any line of
the script fails
2021-01-13 06:47:25 -05:00
Evan Miller 20842c642a mdb-schema: Exit with code 1 if the requested table is not found 2021-01-12 14:08:25 -05:00
Evan Miller 7893a948ce Fix infinite loop (See oss-fuzz/28789)
A loop is still possible with mutually referencing pages but eliminating
self-references should fix the major timeouts
2021-01-07 21:29:37 -05:00
Evan Miller c0880f0e40 Fix potential realloc() memory leak reading OLE objects
See oss-fuzz/28791
2021-01-07 21:11:12 -05:00