Added one_small_row, one_big_row, many_rows, stmt_params benchmarks against libmysqlclient and libmariadb
Added a CI build to compile and run benchmarks
Added a Python script to run the benchmarks
Refactored the connection_pool benchmark to be use data independent from examples
close#458
Attempting to start an operation involving server communication after a
multi-function operation has been started and before all its associated
packets have been read now fails with
client_errc::engaged_in_multi_function, instead of causing undefined
behavior.
Attempting to start a read_some_rows or read_resultset_head operation
with no in-progress multi-function operation now fails with
client_errc::not_engaged_in_multi_function.
Attempting to start an operation that requires an established session
before a successful connect now fails with client_errc::not_connected.
Added the three client_errc enum values mentioned above.
Renamed detail::connection_status (connection_pool) to node_status.
Added detail::connection_status (connection_state_data).
Removed redundant spotcheck tests.
close#448close#450
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
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
any_connection, client-side SQL formatting and connection_pool are now
stable
connection is now marked as legacy (not recommended for new code)
Added legacy/experimental tags in quickref file
close#364
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
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
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
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
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 execute, start_execution, ExecutionRequest and
statement::bind. Deprecated query, execute_statement,
start_query and start_statement_execution.
Statements can now be executed specifying parameters
as iterator ranges.
Fixed a bug that caused build problems when FieldViewForwardIterator's
reference is convertible to field_view, but not field_view.
Close#111Close#137Close#138
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