2
0
mirror of https://github.com/boostorg/mysql.git synced 2026-01-22 17:32:25 +00:00

33 Commits

Author SHA1 Message Date
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
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
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)
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)
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)
793b678287 Updated file copyrights to 2025 2025-02-11 20:42:41 +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)
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
Anarthal (Rubén Pérez)
e39c978514 Removed the global io_context in tests
Now tests are independent of each other
Refactor common utilities for separate compilation
2024-09-28 19:36:43 +02:00
Anarthal (Rubén Pérez)
0f843cd963 Refactored connection_pool unit tests
Removed IoTraits
Removed mock_timer_service
Simplified connection_pool_impl unit tests
2024-09-16 17:32:41 +02:00
Anarthal (Rubén Pérez)
00bc81260c Added LCOV_EXCL_LINE to unreachable lines
close #227
2024-08-13 10:49:38 +02:00
Anarthal (Rubén Pérez)
a20fc3e5ea Added with_params
close #218
2024-08-01 12:59:56 +02:00
Anarthal (Rubén Pérez)
b0c2639dbb Writes exceeding max buffer size no longer resize the buffer before failing
close #297
2024-07-26 11:46:32 +02:00
Anarthal (Rubén Pérez)
a8c992dd95 as_netresult completion token for tests
Restructured handshake integration tests
Removed er_connection infrastructure
Reworked network_result
Greatly simplified integration tests
2024-07-23 18:27:30 +02:00
Anarthal (Rubén Pérez)
cf74314c4e Improved tracker_executor
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.
2024-07-15 12:26:47 +02:00
Anarthal (Rubén Pérez)
0944b2af77 Added a max limit to any_connection buffer size
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
2024-06-30 15:49:27 +02:00
Anarthal (Rubén Pérez)
1ad51fc579 Character set clean-up
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
2024-06-24 17:10:12 +02:00
Anarthal (Rubén Pérez)
9ba4f9dfed Pipeline API
Removed sansio_algorithm base class

close #75
2024-06-08 12:47:42 +02:00
Anarthal (Rubén Pérez)
77de54cf2c any_stream->engine, asio::coroutine ODR violation fix
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 #75
close #259
2024-05-10 14:03:05 +02:00
Anarthal (Rubén Pérez)
03f1dd5df2 Pipeline-friendly serialization
Updated the serialization functions to take framing into account when
serializing. This is a requirement to implement #75.

close #255
2024-05-08 11:02:19 +02:00
Anarthal (Rubén Pérez)
7eec4954a7 Added support for Boost.PFR in the static interface
target_include_directories no longer uses the SYSTEM option

close #185
2024-04-18 15:52:00 +02:00
Ruben Perez
cdb31452f6 Added fuzzers for client-side SQL formatting functions
Refactored seed corpus generation
Refactored ci.py into smaller modules
Removed unnecessary check in utf8mb4_next_char

close #214
2024-03-07 23:00:28 +01:00
Ruben Perez
f98427c3b8 Connection pools now always use utf8mb4
Fixes error-prone behavior for connection pools, where connections would use the server's default character set.

close #187
2024-03-04 18:11:00 +01:00
Ruben Perez
d8b69d0e78 Bumped copyright to 2024 2024-02-18 12:48:14 +01:00
Ruben Perez
5e8992ba88 Client-side SQL formatting functions
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 #69
close #208
2024-02-15 16:02:39 +01:00
Ruben Perez
88d12feb58 Added escape_string and character_set
Added any_connection::backslash_escapes
Added utf8mb4_charset and latin1_charset

close #202
2024-01-02 21:51:38 +01:00
Ruben Perez
bc5577ede5 Connection pool
Added any_connection and any_address
Added connection_pool and pooled_connection
Added thread_safety tests
Added defaults.hpp header

close 19
2023-12-20 18:46:31 +01:00
Ruben Perez
c35b404af7 Implementation now uses a sans-io strategy
close #179
2023-10-30 18:16:43 +01:00
Ruben Perez
c60de9cee4 Support for reset_connection
Refactored integration tests network functions

Close #141
2023-07-14 16:27:31 +02:00
Ruben Perez
2dcea3f5e7 Added sanitizer builds
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
2023-06-24 22:41:49 +02:00
Ruben Perez
88fbe387ac Separate compilation
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 #23
close #112
2023-06-22 12:03:24 +02:00