Commit Graph

913 Commits

Author SHA1 Message Date
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
Nyall Dawson
40981d2fc6 Only handle tables in SQLColumns, not other objects 2020-08-19 10:50:12 +10:00
Nyall Dawson
b72ac6b1c0 Don't crash when a table can't be read for some reason 2020-08-19 10:44:17 +10:00
Nyall Dawson
333f4712b9 Fix empty table results
Fixes #19
2020-08-19 10:28:01 +10: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
Nyall Dawson
44529052be Try using homebrew version of bison 2020-08-18 15:21:36 +10:00
Nyall Dawson
083ec7f9e4 SELECT ... LIMIT 0 should return no rows, not all rows 2020-08-18 14:54:38 +10:00
Nyall Dawson
4e3ed3a5fd Fix LIMIT clause is ignored when executing SQL via ODBC 2020-08-18 14:54:19 +10:00
Nyall Dawson
e82c1e9e1b Fix another leak 2020-08-18 14:36:44 +10:00
Nyall Dawson
e8ab7e7ea6 Fix leak after running "SELECT COUNT(*)..." sql query 2020-08-18 12:36:29 +10:00
Nyall Dawson
c65b402348 Fix leak after running "SELECT COUNT(*)..." sql query 2020-08-18 12:31:38 +10:00
Nyall Dawson
86741f4614 More thread safety 2020-08-18 12:28:20 +10:00
Nyall Dawson
e92f14f9c4 Make SQL parser/lexer reentrant
Provides thread safety for mdbtools ODBC driver
2020-08-18 12:23:04 +10: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
Nyall Dawson
6085a89e1d Use ICONV_CONST 2020-08-13 12:42:32 +10:00
Nyall Dawson
3f278f3996 Correctly return len of character data when SQLColAttributes is called with SQL_COLUMN_TYPE_NAME 2020-08-13 12:40:46 +10:00
Nyall Dawson
1fc6d60dfa Fix placeholder text used instead of type name in SQLGetData SQLColumns_TYPE_NAME call 2020-08-13 12:12:57 +10:00
Nyall Dawson
1846fab4e6 Const correctness on src char pointers for unicode/ascii conversion 2020-08-13 12:12:52 +10: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