Evan Miller
8b40423f65
Merge pull request #36 from nyalldawson/precedence
...
Setup operator precedence for parser to avoid ambiguity and fix shift/reduce warnings
2020-08-22 18:28:23 -04:00
Nyall Dawson
83104b7b69
Setup operator precedence for parser to avoid ambiguity and fix shift/reduce warnings
2020-08-23 07:57:17 +10:00
Nyall Dawson
88e2ffa34a
const correctness (fixes warning)
2020-08-23 07:56:26 +10:00
Evan Miller
a08dab706e
Fix crash in previous commit
2020-08-21 08:53:05 -04:00
Evan Miller
2ee83971fa
Clean up mdb_clone_handle
2020-08-20 21:57:25 -04:00
Evan Miller
4d443840cb
Try to fix a crash
2020-08-20 21:31:38 -04:00
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
Nyall Dawson
ab9d17ef98
Fix read after free error
2020-08-21 09:36:01 +10: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
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
Nyall Dawson
d0ea8a9a86
ODBC requires dates formatted in ISO standards
2020-08-20 14:07:17 +10: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
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
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
5758cd6861
Try fixing Mac build with explicit Yacc output file
2020-08-18 09:06:17 -04:00
Evan Miller
78707f7aa3
Remove second -d flag
2020-08-18 07:48:54 -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
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
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
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
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