In case of CSPS, connector prepared for the bulk query all changed to
lower case. Besides being wrong in general, that could cause errors on
platforms, where names are case sensitive.
Also made few methods(including batch execution methods) to unlock the
mutex in case of error, because some routines processing error also try
to acquire the lock, and it is not re-entrant.
The feature is enabled with useBulkStmts boolean options, that is off by
default. Works only with MariaDB servers >= 10.2.7. It won't be used
with streaming parameters.
The RowProtocal class used reference to static object, that caused race
condition in concurrent environment.
Also, small addition to packaging on macos.
For insert queries, rewrites batch of staments to execute in a single
executeQuery. e.g.
insert into ab (i) values (?) with first batch values = 1, second = 2
will be rewritten as insert into ab (i) values (1), (2)
If query cannot be rewriten in "multi-values", rewrite will use
multi-queries, i.e.
insert into ab (i) values (1);insert into ab (i) values (2)
Using this option causes the useServerPrepStmts option to be set to false
CPack generates configs for package and source_package
They both contain CPACK_PACKAGE_FILE_NAME. Somehow after the CPack being
included, be the name CPACK_PACKAGE_FILE_NAME in cmake script the value
from source_package config is accessible.
It's about descending part of an index.
Moved 10.8 out of allowed failures section on Travis
Fixed getServerVersion in the test framework to work correctly with
minor versions >9(and affected testcases)
The merge was done manually copying relevant code changes from 1.1.
In particulary merged the patch for CONCPP-94
Also many changes, that fix real possible issues, that was also present in 1.0 and found while
working on 1.1. For example(but not limited to), there were many cases of incorrect
find_first_of std::string method, where find had to be really used.
The fix sets precision 30 for conversion of the double number to its
string representation, requeired for "client side" statement preparing(server
side wasn't affected by the bug). 30 is taked because it's max number of
decimals for decimal column type. This can cause "overflow" errors if
setDouble is used to populate shorter varchar or other types. SOme older
test have been amended to deal with that.
Testframework was fixed to be more informative about where the error
occured(often it printed line where the exception was caught, and for
some tests that is not very helpful.
Fixed couple of compilation warnings.
When using the `+` operator on a string literal (which is natively a `char*`) and an integer, you are actually adding to the pointer value rather than concatenating to the string. Instead, by first explicitly constructing an `std::string` from the string literal, and second using `std::to_string` on the integer, the string will be properly concatenated.
79: Updated C/C submodule to the fix of critical cmake error in C/C
80: Fix of setting defualt WITH_SSL value - that has to be CONC_WITH_SSL
variable, rather than WITH_SSL
81: Removed redundant "." from installation paths
Added to README description of two more supported options - useCompression and jdbcCompliantTruncation
Changed error message about required gcc version from >4.8 to >=4.9
Added default value for WITH_SSL, as currently project cannot be
generated without encryption support.
Removed "ga" from tarballs and source package names. While alpha, beta
and rc should be there, ga should not
Plus forgotten in the previous commit removal of Windows Travis build from
"allowed failures"
Also internally used class Value is changed to use SQLString, instead of
(smart) pointer to it. Added missing SQLString object creation/destruction in
that class.
Checking in appveyor initial configuration.
Added windows test (try) to travis config.
The reason was, that filling of vector with executeBatch results was
done using undefined behavior - it was done using [] operator member
access for not existing members. The values were inserted correctly, but
the size of vector happened to not always be reported correctly.
Added similar test to preparedstatement.
Made clearBatch not to reset current set of parameters - that looks
like to be that jdbc specs expect.
Fixed other such cases of wrong vector use.
Made some to/from text conversion to use C locale.
The problem was, that if the created exception was a subclass as SQLException, it(or it's
copy) would eventually be destructed as SQLException. Thus, everything
but SQLException would leak. That happened, because as a quick solution
at the time, they all were thrown as SQLException. Caught as
SQLException&(they could not be caught as an exception of its own
class), they would be destructed as SQLException.
As the solution, exception are thrown at the moment of creation, if
possible. Otherwise connector operates spesially created
class(MariaDBExceptionThrower), that
can throw exception of the correct type
It choked on const initialization with constexpr
Second possible issue was with
REASON_UNKNOWN in the ClientInfoStatus enum. It clashes with define in
one of Windows headers(Winreg.h). Added undersore prefix to the name.
Also fixed most often warning there.
Additionaly the commit contains some fixes in test faramework and in
tests.