Evan Miller
09c497bffd
Fix double free with backend dictionary
2020-08-20 20:10:51 -04:00
Evan Miller
6d7a5c79af
Merge branch 'master' into backend-thread-safety
2020-08-20 19:53:29 -04:00
Evan Miller
f8cff52eb1
Merge pull request #34 from nyalldawson/read_after_free
...
Fix read after free error
2020-08-20 19:50:26 -04:00
Evan Miller
e743949e47
Change char * to const char *
2020-08-20 15:46:06 -04:00
Evan Miller
f668f25d99
Use GCC struct initializers for clarity
2020-08-20 15:37:05 -04:00
Evan Miller
b36f2bff1d
Merge branch 'master' into backend-thread-safety
2020-08-20 15:22:52 -04:00
Evan Miller
0f017883f6
Merge pull request #33 from evanmiller/remove-dmalloc
...
Remove references to dmalloc
2020-08-20 15:22:17 -04:00
Evan Miller
90ee7bfcb5
Remove references to dmalloc
...
There are more modern tools for memory debugging, get rid of DMALLOC
crap in the source code.
I've left one reference in backend.c to prevent a merge conflict but
this can be removed later.
2020-08-20 08:59:08 -04:00
Evan Miller
452cd29343
Get rid of more static memory
...
* Replace backend_is_init (formerly is_init) with relationships_table
* Remove deprecated functions that used static variables
* Move static "bound" variable to MdbHandle as relationships_values
2020-08-20 08:47:13 -04:00
Evan Miller
588663675e
Move backend dictionary and state to MdbHandle
...
Attempt to make the backend handling logic thread-safe. This removes the
last MDB_CONSTRUCTOR. Also get rid of some JAVA junk and make the
remaining static variables in backend.c constant. Finally remove some
obsolete fields from MdbFile.
2020-08-20 07:58:53 -04:00
Evan Miller
c2087a95cc
Merge pull request #30 from nyalldawson/fix_28
...
ODBC requires dates formatted in ISO standards
2020-08-20 06:26:17 -04:00
Evan Miller
5d078838ed
[API break] Make date/boolean formats thread safe
...
Store the preferred date and boolean formats in the MdbHandle rather
than in global memory.
2020-08-19 21:26:06 -04:00
Evan Miller
7b51824c89
Consolidate / fix UUID formatting
2020-08-19 20:53:35 -04:00
Evan Miller
2887fa49ed
Merge pull request #24 from evanmiller/odbc-thread-safety
...
Make the ODBC driver thread-safe. Multiple simultaneous handles should work fine now, but individual handles should only be used by one thread at at time.
2020-08-19 19:55:29 -04:00
Evan Miller
673c7700b9
Store OLE strings on the statement object
...
Also cut MDB_OLE out into its own code path. This removes the last of
the global / thread-local storage in the ODBC driver, I think.
2020-08-19 19:24:40 -04:00
Evan Miller
55e0d4ff07
Store sqlState separtely on ODBC env / handle / stmts
...
Also fix the fact that "08001" was always returned by SQLError instead
of the actual SQL state.
2020-08-19 17:34:57 -04:00
Evan Miller
00b3ab9571
Store statement and handle errors separately
2020-08-19 17:22:54 -04:00
Evan Miller
a84c07980f
Make lastError thread-safe
2020-08-19 17:03:06 -04:00
Evan Miller
e67c8e6d52
Remove obsolete comment about thread safety
2020-08-19 16:32:13 -04:00
Evan Miller
3d63f16fc0
Fix errors
...
It helps to enable ODBC when testing ODBC :-P
2020-08-19 16:16:25 -04:00
Evan Miller
684fa55781
Fix unused variable warning
2020-08-19 15:50:57 -04:00
Evan Miller
9020ca9a1e
Attempt to make the ODBC driver thread-safe
...
I'm not sure if this is a complete solution - some of the global state
has been moved to thread-local storage. So passing an ODBC handle across
threads may have unexpected results. But at least it's not global state.
Each ODBC handle now has its own iconv_t object.
See #23
2020-08-19 15:35:02 -04:00
Evan Miller
1ad0dd2d8b
Simplify code
2020-08-18 21:20:40 -04:00
Evan Miller
008b3b462b
Merge pull request #22 from nyalldawson/no_crash
...
Don't crash when a table can't be read for some reason
2020-08-18 21:10:52 -04:00
Evan Miller
ab1a253f45
Merge pull request #21 from nyalldawson/fix_19
...
Fix empty table results
2020-08-18 21:10:11 -04:00
Evan Miller
463fd0af11
Make thread-safety a goal, why not
2020-08-18 12:59:56 -04:00
Evan Miller
ea368bc0e3
Require Bison 3.0+ at configure time for SQL features
2020-08-18 10:02:56 -04:00
Evan Miller
2a808d8d05
Fix Travis Mac GCC configurations
2020-08-18 09:34:39 -04:00
Evan Miller
5758cd6861
Try fixing Mac build with explicit Yacc output file
2020-08-18 09:06:17 -04:00
Evan Miller
60c820245d
Only set -Wno-yacc if $YACC supports it
2020-08-18 09:05:33 -04:00
Evan Miller
83666459d2
Add test coverage for mdb-sql
2020-08-18 09:04:20 -04:00
Evan Miller
78707f7aa3
Remove second -d flag
2020-08-18 07:48:54 -04:00
Evan Miller
ec8492f1ee
Try fixing Travis and Appveyor
...
The new re-entrant parser requires Bison 3, which is not installed
on macOS by default. It also appears to require -Wno-yacc.
2020-08-18 07:32:15 -04:00
Evan Miller
858e1dff49
Merge pull request #16 from nyalldawson/reentrant
...
Make SQL parser/lexer reentrant
2020-08-18 07:20:35 -04:00
Evan Miller
1e983c70f1
Merge pull request #18 from nyalldawson/fix_limit
...
Fix LIMIT clause is ignored when executing SQL via ODBC, incorrect behavior with LIMIT 0
2020-08-18 07:02:00 -04:00
Evan Miller
91c6d3048c
Merge pull request #17 from nyalldawson/fix_leak
...
Fix leak after running "SELECT COUNT(*)..." sql query
2020-08-18 06:56:21 -04:00
Evan Miller
4cc7999022
Replace obsolete AC_TRY_LINK with AC_LINK_IFELSE
2020-08-14 07:18:23 -04:00
Evan Miller
6171472411
Change -Bsymbolic-functions to -Wl,-Bsymbolic-functions
2020-08-14 00:12:07 -04:00
Evan Miller
dfd41f2283
Try fixing unixODBC deadlock with -Bsymbolic-functions
...
This flag compels the dynamic library to prefer its own function symbols
to those in the global symbol table. This behavior should let us
directly call SQL* functions from inside other SQL* functions without
fear of interference by the host program.
2020-08-13 21:52:03 -04:00
Evan Miller
4f330ea6be
Enable GCC 10 on Travis
2020-08-13 06:44:05 -04:00
Evan Miller
2629ce5136
Appveyor fix
2020-08-13 06:44:00 -04:00
Evan Miller
3c6c8e07db
Make mdb-count case-insensitive to table names
...
This matches the behavior of mdb-export. Thanks to Nicholas Crookston.
2020-08-13 06:32:41 -04:00
Evan Miller
4bde3609c1
Remove ODBC from appveyor for now
...
Nothing seems to be working :-(
2020-08-13 06:31:20 -04:00
Evan Miller
085c6cc96e
Appveyor debugging
2020-08-13 06:22:31 -04:00
Evan Miller
70467dfd64
Merge branch 'master' of github.com:evanmiller/mdbtools
2020-08-12 23:40:25 -04:00
Evan Miller
093c6f1774
Try setting --no-undefined on Linux
2020-08-12 23:39:57 -04:00
Evan Miller
cca922562f
Merge pull request #13 from nyalldawson/fix_placeholder
...
Fix placeholder text used instead of type name in SQLGetData SQLColumns_TYPE_NAME call
2020-08-12 22:48:41 -04:00
Evan Miller
0a72c5407b
Merge pull request #14 from nyalldawson/char_len
...
Correctly return len of character data when SQLColAttributes is called with SQL_COLUMN_TYPE_NAME
2020-08-12 22:46:52 -04:00
Evan Miller
fde72aa3b6
Merge pull request #12 from nyalldawson/needs_term2
...
Don't automatically add terminators when reading data parts via SQLGetData for OLE fields
2020-08-12 18:22:53 -04:00
Evan Miller
3a164c7709
More appveyor tweaks
2020-08-12 18:19:26 -04:00
Evan Miller
24111d4a7c
Tweak Appveyor
2020-08-12 18:09:26 -04:00
Evan Miller
130a122c54
Build ODBC on Appveyor
2020-08-12 17:55:45 -04:00
Evan Miller
362938f17c
ODBC build fixes
...
* Require SQLGetPrivateProfileString in ODBC libraries
* Attempt to fix reported deadlock with unixODBC by rearranging
functions
2020-08-12 15:05:25 -04:00
Evan Miller
acbace242c
Add Travis targets with --enable-glib
2020-08-12 06:38:57 -04:00
Evan Miller
bd6aa50f73
Merge pull request #11 from nyalldawson/binary_type
...
Report more accurate field type for OLE fields
2020-08-12 06:26:00 -04:00
Evan Miller
1c20f688e3
Merge pull request #10 from nyalldawson/guint_warn
...
Fix int/guint comparison warnings
2020-08-12 06:17:50 -04:00
Evan Miller
ef3a9f99a8
Merge pull request #9 from nyalldawson/free_str
...
Fix incorrect early free of str when reading ole fields
2020-08-11 20:03:01 -04:00
Evan Miller
b25eb73648
Merge pull request #8 from evanmiller/odbc-fix
...
Fix for variable-length fields using SQLGetData
2020-08-11 15:14:00 -04:00
Evan Miller
953375ead0
Define separate Travis targets for iODBC and unixODBC
2020-08-11 12:23:59 -04:00
Evan Miller
f7e863b8e4
Put unixODBC under basic build / test coverage
2020-08-11 11:56:08 -04:00
Evan Miller
71e10395fd
Try another SQLGetData fix
...
Set the length of the return value to include the NUL termination
charaacter.
2020-08-11 07:30:33 -04:00
Evan Miller
e330feebd6
Fix for variable-length fields using SQLGetData
...
See:
brianb/mdbtools#130
brianb/mdbtools#131
evanmiller/mdbtools#6
2020-08-10 21:38:08 -04:00
Evan Miller
02c5544c14
Syntax fix
2020-08-10 19:19:19 -04:00
Evan Miller
a712dfef65
Get rid of indirection in ODBC driver
2020-08-10 19:15:03 -04:00
Evan Miller
05b1e2229a
Fix unittest exit code
2020-08-10 17:08:55 -04:00
Evan Miller
c471570d16
Fix __attribute__ syntax
2020-08-10 17:07:54 -04:00
Evan Miller
280075a3e2
Fix unused function warnings
2020-08-10 17:04:11 -04:00
Evan Miller
abe7ebcb74
Add ODBC unittest to Travis
2020-08-10 16:59:15 -04:00
Evan Miller
4ca16b8edf
Fix bug in fake g_strsplit
...
Lack of NULL termination caused an occasional crash
2020-08-10 16:58:11 -04:00
Evan Miller
cc292b3f0d
Improved ODBC error messages
2020-08-10 16:57:43 -04:00
Evan Miller
3c7761f965
Support --disable-glib flag with ODBC driver
2020-08-10 15:58:22 -04:00
Evan Miller
d4f7bd6ec5
Remove mdb-check
...
This program is not built by default, and its functionality is covered
by the other utilties.
2020-08-10 06:58:05 -04:00
Evan Miller
82bbc0cef7
Improved bounds checking
2020-08-09 16:38:25 -04:00
Evan Miller
7690ef376f
Turn off -Wsign-compare for the lexer
...
Flex doesn't like it.
2020-08-09 16:23:06 -04:00
Evan Miller
c93156626c
Fix all sign-compare warnings
...
Also flip on -Wsign-compare in the default configuration
2020-08-09 16:15:20 -04:00
Evan Miller
99099cdada
Remove unnecessary "extern" keywords from header files
2020-08-09 16:14:19 -04:00
Evan Miller
de46410a8e
Tweak README
2020-08-09 15:23:38 -04:00
Evan Miller
98381e83a5
Merge pull request #7 from evanmiller/update-iconv-m4
...
Update iconv.m4
2020-08-07 13:28:09 -04:00
Evan Miller
5c3cc98447
Update iconv.m4
...
The existing iconv.m4 warns against using a serial version, but adding
an empty config.rpath to build-aux/ should make it work just fine.
The new version should work better on various less-popular platforms.
2020-08-07 13:02:06 -04:00
Evan Miller
2e1e1ed796
Simplify bounds checking logic with snprintf
2020-08-06 23:58:34 -04:00
Evan Miller
47724e50c9
Merge pull request #5 from nyalldawson/fix_SQL_COLUMN_TYPE_NAME
...
Implement SQL_COLUMN_TYPE_NAME field identifier in SQLColAttributes
2020-08-06 23:57:15 -04:00
Evan Miller
e7782f7821
Remove debugging comments from mdb-schema
2020-08-06 23:18:05 -04:00
Evan Miller
2e6e88b96f
Improve bounds and return-value checking
...
Fixes a memory leak and a number of buffer overruns
2020-08-06 15:17:04 -04:00
Evan Miller
b01c4b8941
Check result of mdb_find_pg_row / fix crash
2020-08-06 14:14:32 -04:00
Evan Miller
4682ec0f8a
Fix crash
2020-08-06 14:08:30 -04:00
Evan Miller
63e8cb54ac
Merge pull request #1 from evanmiller/no-glib
...
Remove GLib dependency
2020-08-06 13:19:25 -04:00
Evan Miller
272bd191bc
Merge branch 'master' into no-glib
2020-08-06 12:51:52 -04:00
Evan Miller
2117195fac
Update README
2020-08-06 12:51:45 -04:00
Evan Miller
9b6b52cc8c
Fix buffer overflow in mdb_numeric_to_string brianb/mdbtools#124
2020-08-06 12:34:09 -04:00
Evan Miller
c67a92f459
Provide NUMERIC type in Postgres backend brianb/mdbtools#129
2020-08-06 08:20:11 -04:00
Evan Miller
edc20bcc39
Merge branch 'master' into no-glib
2020-08-06 08:16:06 -04:00
Evan Miller
c17aeb0826
Remove length specifier from MySQL TEXT types brianb/mdbtools#133
2020-08-06 08:15:06 -04:00
Evan Miller
d0d3060223
Fix program_invocation_short_name on Cygwin
2020-08-05 23:59:58 -04:00
Evan Miller
0b6809be82
Fix program_invocation_short_name on Linux
2020-08-05 23:54:25 -04:00
Evan Miller
7c324a9cb4
Fix warnings
2020-08-05 23:48:49 -04:00
Evan Miller
8bacbf1678
Fix unused result warning
2020-08-05 23:27:19 -04:00
Evan Miller
04b736c9ff
Fix indentation warnings
2020-08-05 23:22:08 -04:00
Evan Miller
514b74744b
Try fixing Linux warnings
2020-08-05 23:17:22 -04:00
Evan Miller
783304c164
Turn on -Werror
2020-08-05 23:07:48 -04:00
Evan Miller
fe28ce8d25
Fix vasprintf warning with GCC
2020-08-05 23:07:13 -04:00