Not all database-specific ODBC drivers support every feature, and some drivers have known limitations, or bugs with some obscure features. This is a list of known issues, at this time:
The current MySQL driver makes severals calls to setlocale() which changes the application's global locale, which affects all threads. Even if the application initializes a global locale at startup, for the entire application lifetime, other threads may find their locale changing unexpectedly.
MySQL's ODBC connector does not implement inserting blobs with execute_vector(). fetch_vector() will also not work with blobs until http://bugs.mysql.com/bug.php?id=61991 gets fixed (the referenced bug affects only blobs, non-blob columns, which LIBCXX SQL Library fetches using bound columns, do not appear to be affected).
Using limit
()
with MySQL's ODBC connector breaks all
subsequent catalog functions
until
http://bugs.mysql.com/bug.php?id=69554
gets fixed.
This also affects several features in the
SQL database interface; namely the
only
()
and maybe
() methods,
and
insert
();
because they invoke limit
() internally.
Blob support with PostgreSQL requires some additional setup for what it calls “large objects”.
Positioned updates and deletes do not work with MySQL resultsets that have more than one row, retrieved by execute_vector(). It looks like MySQL's ODBC driver always executes a positioned update or delete for the first row in the resultset.
MySQL connections require a connection parameter with non-default
parameter values.
For MySQL driver prior to 5.2, the parameter
“option” must be set to "67108864" to enable SQL
batches. The 5.2 driver needs two options,
“MULTI_STATEMENTS=1” and
“NO_SSPS=1”.
This is required by
x::sql::dbi
classes.
See MySQL documentation for more information. However,
config_get_batch_support
()
still shows support for batches even if the option is not set.