Changed the algorithm that calculates how many connections to create to
correctly take into account the number of pending requests.
This makes the pool resize as expected and avoids potential deadlocks.
close#395
Added a tutorial on UPDATEs, transactions and multi-queries
Added a tutorial on connection_pool
Added a tutorial on error handling
Added examples on INSERTs and DELETEs
Rewrote the discussion page on character sets
Added a discussion page on the templated connection class
Removed superseded examples on timeouts and multi-queries
Updated the coverage build to gcc-14 (gcc-13 was using a non-LTS release
that caused problems)
Contributes to #365 and #366
Added tutorials 2, 3 and 4
Changed most of the discussion to use any_connection
Added examples on disabling TLS, multi-function operations, multi-queries and transactions
All examples now use any_connection
Automate parts of example qbk generation
Partially addresses #365 and #366
This makes asio::as_tuple and asio::redirect_error usable as partial
completion tokens with any_connection and connection_pool.
Fixed a Jamfile issue that caused warnings in dependencies to fail CI builds.
Removed leftover comment in the pipeline example.
Renamed format_sequence_view to format_sequence
format_sequence members are now part of the public API
Moved sequence to a separate header
Added sequence_range_t
close#359
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
any_connection max buffer size is now 64MB
Renamed any_connection_params::initial_read_buffer_size to initial_buffer_size
Renamed pool_params::initial_read_buffer_size to initial_buffer_size
close#278
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
Added a Linux b2 build without OpenSSL
Fixed issue in install_boost.py that made rebuilds to error
Removed workaround for https://github.com/boostorg/boost/issues/711
Changed boost.mysql.use-ts-executor default value to off
close#235
Fixed a problem that caused any_connection::(async_)connect to fail with client_errc::auth_plugin_requires_ssl under UNIX sockets when authenticating caching_sha2_password users that are not loaded to the cache
close#189
Added format_sql, format_sql_to and basic_format_context
Boost.Charconv is now a mandatory dependency
Text queries are now locale-independent
any_connection::current_character_set now uses system::result
Added any_connection::format_opts
field_view, field and statement::bind now disallow character types
escape_string can now be used with any OutputString type
Added constant_string_view
character_set now uses string_view and span
set_character_set hardening
close#69close#208