connection and any_connection now check whether there is an in-progress
async operation, and fail with client_errc::operation_in_progress if
there is one. This situation no longer triggers undefined behavior.
Refactored the internal sans-io algorithms
close#405
Immediate completions in connection and any_connection are now correctly
dispatched to the token's immediate executor using asio::async_immediate
instead of plain asio::post.
Added a section on executors in the reference docs of async functions in
connection and any_connection
Disabled TSAN connection_pool_cancel_get_connection for libc++ builds
close#301
Please use asio::cancel_after, instead.
Replaced client_errc::timeout, client_errc::cancelled by
client_errc::no_connection_available, client_errc::pool_cancelled
async_get_connection no longer uses the last connect error code as failure error code,
but embeds this info in the output diagnostics
close#349
Thread-safety is now achieved using pool_params::thread_safe.
Removed pool_executor_params::thread_safe
Unsafe pools now use the standard Asio semantics
Safe pools are now safe even if the handlers' associated executors point
to a context different from the pool's context
close#268
Added the ability to detect the executor call stack and whether we're
running from an initiating function or not.
Integration tests now consistently check these two.
Introduced BOOST_MYSQL_DISABLED_SERVER_FEATURES env var
Removed BOOST_MYSQL_NO_UNIX_SOCKET_TESTS env var
JSON tests in database_types are now actually run
close#29
character_set::name is now a const char*, since NULL characters are not
allowed by MySQL
character_set::next_char doesn't need to be noexcept
Removed noexcepts from next_char functions
Internal refactor
Fixed problem with header-only builds where
meta_check_context didn't include its .ipp file
Fixed integer overflow problems in datetime::datetime
Fixed NULL memcpy problem in serialization_context::write
Updated tested systems in README and intro
close#33
Separate compilation
Immediate completions are now posted through the I/O executor
Jamfiles now correctly requires C++11
Refactored the protocol and channel modules
Removed example on default completion tokens
close#23close#112
Added support for the static interface
Statement execution now supports bool and optionals
Replaced the FieldLikeTuple and FieldLike concepts
by WritableFieldTuple and WritableField
Added diagnostics::client_message
Solved a problem with blob types and stored procedures
under MariaDB
Removed a troublesome assert in row_impl
Protected numeric_limits min/max from intrusive macros
Added C++11/14 order management examples
Documentation section collapsing
Test Jamfiles now show output only on failure
close#60close#153close#154
Added support for running stored procedures that SELECT data
Added support for running multiple semicolon-separated queries
Added support for running stored procedures with OUT params
Added resultset and resultset_view
Fixed documentation typos and wording
Refactored object creation in tests
Close#133Close#132Close#8
JSON fields are now read as strings instead of blobs.
TEXT fields with binary collations (e.g. utf8_bin or
the JSON type in MariaDB) are now read as strings instead of blobs.
Added the column_type::json type.
The CI script now loads all data into the databases. There is no
longer need to rebuild DB containers when test data changes.
The collation enum has been converted into plain integers.
Separate headers for MySQL and MariaDB collation IDs have been added.
A script to generate those headers from table dumps has been added.
Close#120
Separate error categories for common, mysql and mariadb codes.
DB "flavor" detection.
CI mechanism to run db-specific integration tests.
Recovered PCHs in cmake and made them more sane.
close#108
resultset has been renamed to results, to support multi-resultset
without changing the API.
server_diagnostics has been renamed to diagnostics, allowing
the library to emit future client diagnostics
server_error has been renamed to error_with_diagnostics
throw_on_error semantics have been simplified
field::emplace_xxx functions have been removed (redundant)
connection::read_one_row has been removed (redundant)
close#119
Prepared statements are no longer I/O objects.
Closing a statement no longer resets it.
Statements are no longer required to be kept alive
during async execution and close.
close#118
Added metadata_mode and the ability to not read metadata string fields.
buffer_params is now handled by connection's ctor instead of handshake.
Added CMake CI builds covering Release and MinSizeRel build types.
Hide all internal API functions from public classes.
Removed operator<< for row and row_view.
Moved ssl_mode to a separate header file.
Changed metadata_collection_view to use boost::span.
Close#79
Renamed error_info to server_diagnostics.
server_diagnostics::message is now correctly treated as user-supplied input
(security fix). Added notes on examples on this.
Split server and client errors in different categories.
Added throw_on_error.
Added connection::rebind_executor.
Made error categories public.
Exception throwing now uses Boost.Exception.
Improved error handling in examples.
Updated Asio dependencies for stackful coroutines.
Close#64Close#107
Added proper support for multi-function operations, segregating
the API in single-function and multi-function operations.
Removed resultset as I/O object, the read_xxx owning functions
and read_all.
Unit test infrastructure for async testing.
Reference types lifetime fixes.
Removed connection::valid.
Fixed a serialization bug for statements with no parameters.
Binary protocol strings now use the type recommended by MySQL.
Refactored Jamfile to match best practices.
Updated description in libraries.json.
Close#82Close#81Close#73Close#59Close#58Close#53Close#41Close#22
Binary types now use the new blob and blob_view types
New date and datetime types that can handle invalid and zero date and datetimes
Protection against min and max macros
Improvements in field docs
Docs section on character sets
Introduced new collations with id from 250 to 309
database_types test full refactor
Close#104Close#103Close#95Close#94Close#91Close#90Close#85Close#80Close#77