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
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.
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.
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.
Added missing headers to msi. Headers now installed into include/mariadb
ALl headers have been renamed from .h to .hpp
ConnCpp.hpp renamed to conncpp.hpp(all small letters)
All headers but conncpp.hpp, have been moved to conncpp subdirectory in
include, and in the msi
All exception classes have got explicit (exported from dll on Windows) copyconstructor
decluration, and definition of those constructors in the connector
library. And to stay on the safe side, all other constructors and
destructors definitions have been moved to library side.
Fixed the error, that few exception methods were declared as
dllimported, and defined in the header at the same time.
This includes fixes of various outstanding bugs in CSPS
Made setDouble to accept long double(CONCPP-55)
static_test and driver_test now make one run with default CSPS, and one
with SSPS
Updated README.md with more options info. Changed desription of some
options in DefaultOptions.cpp. Fixed use of autoReconnect and
localSocket
Tests connection credentials can be passed using env variables. All
tests use the same settings for that.
Added the link to the documentation to the README(.md)
Changed in SQLString all size_t to std::size_t(more like for
consictency).
Added npos constant there
Lately to fix one test build with certain VS version, not portable
change has been made, that broke build on other platforms.
Fix of couple of tests for older server versions.
and bytes, Ints, Longs were not exported.
API change: execute(Large)Batch return reference to const objects,
rather than pointers.
Restructuring of API and internal headers and introducing of new
separate header files.
Added statement testsuite to ctest - that was forgotten
Connector quality set to RC
Also fixed error in tests, that could make ctest not to notice filed
test suites.
Increased timeouts for some tests(skysql)
Some changes in travis osx script
The public API has been slightly corrected - Statement methods
duplicated in PreparedStatement have been removed. A const qualifier has
been added to the parameter type in one of methods for consistency.
The testcase verifies, that exception is thrown, and with a correct
message.
In particular connector failed, if navigaten started from 'absolut()'
call, but coulrd be others problem as well.
The patch extended existing test.
Added 'unsorted_bugs testsuite to the ctest
Fix of the build on macos in travis - openssl libs could not be found
For binary protocol connector expected the string is null-terminated.
Also it getBoolead was subotimal and significantly slowed down the
testsuite running.
Removed 5.5 server from travis config
Fixed database metadata test to skip one check with 10.1 server, as it
returns wrong data in many cases.
functionality. Unlike connecting via Driver class,
DriverManager::getConnection methods throw an exception in case
connection could not be established for whatever reason. i.e. also if
the format of url is incorrect and could not be parsed.
DriverManager only permits jdbc:mariadb:// type of url. Well, it's
driver manager after all, and needs to know which driver to invoke.
Changed unit tests to connect via DriverManager
Added use examples to the README.md
Fixed return from false to nullptr in couple of methods of the Statement class. They were added to
remove warnings, bool value is wrong for the methods.
Fixed build of database metadata class test on 32b Windows
The biggest class of changes is making MariaDB schema(database) a schema
in the connector, and not a catalog.
Then many methods and/or tests returned/expected wrong data.
Fixed also issue with resultset navigation. Certain sequences of
the cursor navigation methods could cause the cursor to be at the wrong
position. If I am not mistaken, one of sequences could be next-set of
navigation commands-absolute(0)-next
enum's in all public interface classes have been verified and changed
where needed.
getBestRowIdentifier returns bestRowSession for SCOPE, not unique
indexes excluded, and generated columns are said to be "pseudo"
Moved common files to the separate OBJECT lib, as it looked like it is
quite difficult for the gcc to chew it.
Skipped tiem-outing test for now. Needs to be fixed.