- add util::param_string for input PHP arguments
- remove custom util::string_view class
- add new alias util::string_view equal to std::string_view from C++17
- replace all occurrences of MYSQLND_CSTRING with new util::string_view
- replace all occurrences of MYSQLND_STRING with util::string
- few other fixes and refactorings
- modify schema.createCollection to support schema validation (optional input parameter)
- add schema.modifyCollection
- support both strict and off level of validation
- support empty validation schema
- add tests
- in case of atypical identifier (number, beginning with character other than letter, etc.) there have to be applied backticks '`' for aliasing expressions, e.g.
before:
$.tree."100" AS 100
currently:
$.tree."100" AS `100`
- remove default ciphers, as we work with mysql 8.x or newer we rely only on user explicit setting
- improve error messages - in case user tries to setup secure connection, and it fails, then check whether openssl is available, if not then generate proper message
- new option in uri: 'connect-timeout' to set connection timeout (only connection, not subsequent operations)
- if it is not passed, then assume default timeout (for the moment it is 10sec)
- if it is set to 0, then do not set timeout explicitly (will work under current conditions)
- it has to be integer non-negative number, else warning reported, and connection fails
- new envars supported MYSQLX_TEST_CONNECTION_TIMEOUT, MYSQLX_CONNECTION_TIMEOUT
- TCs added for following timeout connections: default, disabled, elapsed, incorrect timeout, and successful no-timeout
- mysqlnd VIO used to operate on timeouts
in older versions of boost (e.g. 1.53.0 which is at the moment still officially
delivered as the newest one package for CentOS7) there is bug in boost::property_tree
it doesn't support strings with custom allocator - somewhere deep in code there is
applied std::string directly with standard allocator
compiler fails at conversion std::string <=> util::string (custom allocator)
in newer versions it is fixed
the oldest version we've successfully tried is 1.59.0
and beginning with that version we apply util::string, while for older one std::string
0) st_mysqlnd_error_info::error_list as zend_llist* vs zend_llist
following 'external' commit:
Revision: 69462bdf4c9dcfef7056be5e075a7545724004b3
Author: Dmitry Stogov <dmitry@zend.com>
Date: 14.11.2017 22:53:51
Message:
Embeded zend_list into st_mysqlnd_error_info, to avoid extra allocation/deallocation.
changes API of mysqlnd, i.e. st_mysqlnd_error_info::error_list from zend_llist* into zend_llist
hence we have few build errors, and has to support st_mysqlnd_error_info::error_list
a) as zend_llist* in PHP-7.1/7.2
b) as zend_llist in PHP-master (in the future 7.3 or newer)
1) Z_IMMUTABLE_P is obsolete
2) IS_CONSTANT is not available
3) bulk change include guards for util/*.h
from
#ifndef MYSQL_XDEVAPI_PHPUTILS_*
into
#ifndef MYSQL_XDEVAPI_UTIL_*
4) clear warnings