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
Added gcc-14 build
Updated mysql8 to MySQL 8.4.1
Updated mariadb to MariaDB 11.4.2
Updated some CMake builds to the latest compiler versions
Updated GHA workflows to use Node 20 actions
Updated deprecated ENV commands in Dockerfiles
Removed debugging statements in OSX CI build
DB entrypoints are now inline scripts in Dockerfiles
TSAN is now run in ARM CIs and recent gcc's
TSAN is now disabled for TS executors
close#302
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
All test targets (including integration tests) are now only built when
the `tests` target is built.
Added a CMake build that doesn't run integration testing (verifying that
BOOST_MYSQL_INTEGRATION_TESTS works)
close#261
Fixed a potential ODR violation with `asio::coroutine` under MSVC, manifesting as sporadic test failures under release configurations.
`any_stream` has been replaced by the internal `EngineStream` concept
and the `engine` interface.
`algo_runner` has been replaced by `top_level_algo`, improving algorithm
type-erasing
This change is required by #195 and beneficial for #75close#259