968 Commits

Author SHA1 Message Date
Anarthal (Rubén Pérez) b34120eb4b Reduces pool_params::ping_interval default from 1h to 10s (#512)
Improves the detection of broken connections to reduce the chance of
handing over broken connections.

close #510
boost-1.92.0.beta1
2026-06-17 10:54:03 +02:00
Anarthal (Rubén Pérez) 0661a2bb52 Adds a way to configure the server's default charset, for tracking (#511)
Adds a way to configure which character set is the server using by
default, to make tracking more intelligent. This can be used to avoid
redundant SET NAMES statements, specially when using connection_pool.

Adds pool_params::charset_strategy and pool_charset_strategy
Adds connect_params::server_default_charset
Adds the invalid_connection_id constant

close #498
2026-06-16 16:07:23 +02:00
Anarthal (Rubén Pérez) a2c0198ef6 Generates TLS certificates dynamically in CI (#505)
close #500
2026-06-04 16:38:46 +02:00
Anarthal (Rubén Pérez) 6fcb24c7a5 Removes functional from 2ndary deps in CMake subdir test (#508)
Removes Boost.Functional from the CMake add_subdirectory test.
This library is no longer a secondary dependency due to an update in
Fusion
2026-05-21 19:38:57 +02:00
vsoulgard 4558bb4579 Added unit tests for column_type (#503)
close #165
2026-03-29 12:16:53 +02:00
vsoulgard 5d9ff8f34d Optimizes message memmoves (#501)
Changes read_buffer to always use powers of two when growing in size
Optimizes message_reader to avoid memmoves when the data to move is big

close #462
2026-03-29 12:13:32 +02:00
Anarthal (Rubén Pérez) c20a0410fd Changes the coverage build to use a dedicate Docker container (#504) boost-1.91.0 2026-03-28 23:26:52 +01:00
Andrey Semashev 3ccd20da49 Remove dependencies on Boost.StaticAssert (#497)
Boost.StaticAssert has been merged into Boost.Config, so remove the
dependency.
boost-1.91.0.beta1
2026-01-23 00:24:13 +01:00
Anarthal (Rubén Pérez) c242bb0ffd Added CI tests for MySQL 9.x
close #303
boost-1.90.0.beta1 boost-1.90.0
2025-10-07 16:56:17 +02:00
Anarthal (Rubén Pérez) d66156ab61 Added builds for new compilers and restructured old ones (#495)
* Added coverage to fill the gaps between compiler versions for clang
and gcc under Linux
* Added clang-19 and clang-20 builds
* Added a gcc-15 build
* Replaced the old clang 3.6 build by clang 3.8

close #478 
close #477 
close #476
2025-10-07 14:41:04 +02:00
Anarthal (Rubén Pérez) 0e5f42aea9 Migrated Linux CIs to use containers from a separate repo (#491)
New repository: https://github.com/anarthal/cpp-ci-containers
Rationale: adding/modifying containers is easier. Containers can be
shared between libraries.
2025-10-06 16:51:39 +02:00
Anarthal (Rubén Pérez) 45687ea216 Disabled warning C4459 on MSVC, caused by Asio 2025-09-01 16:06:02 +02:00
Anarthal (Rubén Pérez) 6a82609638 caching_sha2_password can now be used without TLS
Fixed a problem that caused pfr_by_name<T> to fail compilation when T has no fields under older clang/libc++ versions.

close #313
close #483
boost-1.89.0
2025-06-07 13:20:48 +02:00
Anarthal (Rubén Pérez) 90405e79e4 Handshake is now more resilient
Errors issued by the server for caching_sha2_password users after a fast
auth OK packet has been received (e.g. bad database errors) are now
reported correctly
Handshake now correctly detects protocol violation errors, like double
auth switches

close #469 
close #468
2025-05-07 13:11:52 +02:00
Ruben Perez 6839555d83 Merge branch 'develop' of github.com:boostorg/mysql into develop 2025-05-07 11:56:38 +02:00
Ruben Perez b287ff6b85 bench/db_setup.sql now sets max_connections
This prevents sporadic CI failures due to exceeding the max connection limit
2025-05-07 11:56:34 +02:00
Holger Hoffstätte 472e844175 Add <cstdint> to fix compilation failures with gcc-15
This fixes compilation failures we've seen in Gentoo when trying to run
the boost testuite.
2025-05-07 11:55:15 +02:00
Anarthal (Rubén Pérez) 27e417dc2d capabilities is now a scoped enum
close #471
2025-04-25 20:11:19 +02:00
Anarthal (Rubén Pérez) cbe9270253 Added handshake unit tests
close #442
2025-04-25 17:10:34 +02:00
Anarthal (Rubén Pérez) d56b4cd421 metadata is now implemented as a single std::vector
Instead of several separate std::string objects, metadata now uses a
single std::vector<char> and offsets, which is more efficient
Default-constructing metadata objects now leaves all fields in a
  well-defined state
Added unit tests for metadata

close #461 
close #465 
close #164
2025-04-05 19:46:43 +02:00
Anarthal (Rubén Pérez) 303b9f0b59 Added benchmarks against the official drivers
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
2025-04-02 11:32:43 +02:00
Anarthal (Rubén Pérez) 6c2cfa6ee3 Migrated Ubuntu 23.04 containers to 24.04
Updated clang16, clang16-i386, gcc13

close #463
2025-03-31 16:09:25 +02:00
Anarthal (Rubén Pérez) fa397b7535 Fixed a race condition in per-operation cancellation in variant_stream
close #454
boost-1.88.0.beta1 boost-1.88.0
2025-02-26 16:49:50 +01:00
Anarthal (Rubén Pérez) e988c9ad9e Added docs on using asio::cancel_after with pool_params::thread_safe
close #402
2025-02-24 22:11:35 +01:00
Anarthal (Rubén Pérez) 33660e2710 Starting operations while engaged in multi-function ops is no longer UB
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 #448 
close #450
2025-02-22 19:15:03 +01:00
Anarthal (Rubén Pérez) 3868d8a0cf Added unit tests for the close connection algorithm
close #445
2025-02-19 16:13:23 +01:00
Anarthal (Rubén Pérez) dd9690921a Reworked the static interface exposition page
close #419
2025-02-19 16:13:07 +01:00
Anarthal (Rubén Pérez) 41a674628f Added quit_connection unit tests and refactored
Quit now correctly marks TLS as terminated, even if it encounters an error
Removed ssl_state

close #444
2025-02-17 18:46:46 +01:00
Anarthal (Rubén Pérez) 07200f17c2 Made the asio::yield_context HTTP server single-threaded and reworked it
The example is now much more legible
The example no longer crashes on termination
Renamed it to match the C++ standard it requires

close #414
2025-02-14 21:13:01 +01:00
Anarthal (Rubén Pérez) b4365f3254 Reworked the dynamic interface exposition page
close #418
2025-02-14 14:03:20 +01:00
Anarthal (Rubén Pérez) eb4c2af073 Added a section on interfacing sync and async code
Replaces an incorrect sync connection_pool snippet that contained a race
condition.

close #412
2025-02-14 14:03:03 +01:00
Anarthal (Rubén Pérez) 5a3a2f40c9 Reworked the text queries and SQL formatting exposition pages
close #417 
close #424
2025-02-13 21:40:01 +01:00
Anarthal (Rubén Pérez) cd0ee4ad14 Replaced C++20 feature test macros by Boost.Config's for C++17 headers 2025-02-13 08:03:57 +01:00
Anarthal (Rubén Pérez) 6a24faa7da Reworked the prepared statement exposition page
close #416
2025-02-12 18:17:52 +01:00
Anarthal (Rubén Pérez) c89e4f3751 Renamed the connection_pool example to http_server_cpp11_coroutines 2025-02-12 16:15:19 +01:00
Anarthal (Rubén Pérez) 793b678287 Updated file copyrights to 2025 2025-02-11 20:42:41 +01:00
Anarthal (Rubén Pérez) f5ff37539a Fixed a race condition in per-operation cancellation in connection operations
Now connection/any_connection async operations are cancelled even when
the cancellation signal is emitted after an intermediate operation
completes, but before its intermediate handler gets called.
Restored a connection_id integration test that required this fix.

close #199
2025-02-11 19:15:50 +01:00
Anarthal (Rubén Pérez) c3f1cbfd8f Added an HTTP server example using C++20 coroutines
Contributes to #365
2025-02-11 18:43:35 +01:00
Anarthal (Rubén Pérez) 829dbf775c Connections now check for in-progress async operations and fail without UB
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
2025-02-05 20:15:54 +01:00
Anarthal (Rubén Pérez) 91cd262c68 Simplified locking in sha256 tests by using GET_LOCK 2025-02-05 17:35:23 +01:00
Anarthal (Rubén Pérez) bef74828a9 Added any_connection::connection_id
close #408
2025-02-05 15:14:06 +01:00
Anarthal (Rubén Pérez) 195623e8db algo_test now systematically checks for connection state changes
close #406
2025-02-01 19:56:57 +01:00
Dirk Stolle 4bfdd8fba7 Removed the executable flag from .pem files
See https://github.com/boostorg/admin/issues/47#issuecomment-2575165830
2025-01-24 15:47:47 +01:00
Dirk Stolle 403ce603aa Fixed a few typos 2025-01-24 15:45:45 +01:00
Anarthal (Rubén Pérez) 25d8f7426e test_pos_map/reset_nonempty no longer triggers an assertion
Disabled warnings-as-errors for examples that use Boost.Context

close #403
2025-01-24 15:44:16 +01:00
Anarthal (Rubén Pérez) 1c67537290 connection_pool now resizes correctly in the presence of pending connections
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
2025-01-06 17:14:32 +01:00
Anarthal (Rubén Pérez) 25f9900c0b Fixed ping_interval docs regarding its relation with wait_timeout
close #391
2025-01-03 11:37:33 +01:00
Anarthal (Rubén Pérez) 94e3d4c282 Removed the -fcf-protection gcc workaround
Required because of
https://github.com/boostorg/context/issues/263
2025-01-03 11:36:47 +01:00
Anarthal (Rubén Pérez) 41597b782a Fixed a race condition in Windows CI when running the example servers
Refactored launch_server into a common utility
launch_server now uses `Popen.terminate()`, which handles the race
condition case

close #393
2025-01-01 21:23:14 +01:00
Anarthal (Rubén Pérez) c438f26731 Fixed a render problem in the async discussion page 2024-12-04 17:01:40 +01:00