939 Commits

Author SHA1 Message Date
Ruben Perez
a3c70179f2 Fix formattable in C++11 2025-01-19 12:56:18 +01:00
Ruben Perez
53135eab08 warnings-as-errors=off in Boost.Context examples 2025-01-19 12:54:54 +01:00
Ruben Perez
d2ca75836e ifdef formattable tests 2025-01-18 12:50:04 +01:00
Ruben Perez
bcf46ce46f Disable warnings for Boost.Context using TUs 2025-01-18 12:49:54 +01:00
Ruben Perez
8492a64def Update remote to https 2025-01-17 23:27:05 +01:00
Ruben Perez
b9cb012599 CI 2025-01-17 23:17:55 +01:00
Ruben Perez
927d1eadce CMake restructure 2025-01-17 23:13:08 +01:00
Ruben Perez
b15b705e9a C++14 guards 2025-01-17 23:13:01 +01:00
Ruben Perez
9f082b6f44 Individual value first tests 2025-01-17 22:52:34 +01:00
Ruben Perez
9dc5197158 Formattable concepts 2025-01-17 22:51:20 +01:00
Ruben Perez
6bde0da3ad format_sql implementations 2025-01-17 22:51:08 +01:00
Ruben Perez
6a8faf7d0a Database types test 2025-01-17 20:03:15 +01:00
Ruben Perez
491a942041 Move to detail header 2025-01-16 17:46:39 +01:00
Ruben Perez
aaa0715144 Cleanup 2025-01-16 17:44:28 +01:00
Ruben Perez
0ac61641cd Add fast types and refactor 2025-01-16 17:43:36 +01:00
Ruben Perez
1b61077891 Initial impl 2025-01-16 17:32:22 +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
Anarthal (Rubén Pérez)
c343cde1fb
Improved discussion and examples
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
boost-1.87.0
2024-11-29 17:47:44 +01:00
Anarthal (Rubén Pérez)
ef9224c0ac
Updated the coverage build to use gcc-14
Workarounds a problem with the build-gcc13 container, which uses a
non-LTS Ubuntu release and can't be installed packages
2024-11-29 11:03:21 +01:00
Anarthal (Rubén Pérez)
f6c119210d
Boost 1.87: new discussion and examples (part 1)
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
boost-1.87.0.beta1
2024-11-05 00:12:27 +01:00
Anarthal (Rubén Pérez)
c57103bb75
Removed brittle checks in connection_pool_cancel test
These checks could cause false positive race conditions to be reported.
2024-11-04 13:13:36 +01:00
Anarthal (Rubén Pérez)
8b2727f840
with_diagnostics now passes through unknown signatures
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.
2024-11-02 20:10:22 +01:00
Anarthal (Rubén Pérez)
272533c938
Boost 1.87 API status update
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
2024-10-29 18:02:54 +01:00
Anarthal (Rubén Pérez)
dafe04a38d
Removed the Boost::coroutine dependency from cmake_test 2024-10-28 22:04:53 +01:00
Anarthal (Rubén Pérez)
fe5b27d78e
Document that ping_interval should be >= wait_timeout
Fix defect in connection_pool docs

close #290
2024-10-14 17:41:08 +02:00
Anarthal (Rubén Pérez)
eba723f5a7
connection_pool destructor now cancels async operations
Improved connection_pool docs on thread-safety.

close #370
2024-10-14 13:35:32 +02:00
Anarthal (Rubén Pérez)
6842c2d83d
sequence now returns an owning type
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
2024-10-11 22:17:17 +02:00
Anarthal (Rubén Pérez)
41f07d2e1e
clang builds now include llvm-symbolizer
Added the llvm package to clang Docker containers
2024-10-11 17:41:02 +02:00
Anarthal (Rubén Pérez)
bb568ba071
Documented connection_pool execution semantics
Refactored pool internals to remove wait_group
Added an external strand thread-safety test

close #361
2024-10-10 15:52:17 +02:00
Anarthal (Rubén Pérez)
b7b206189f
connection unit tests now cover get_executor 2024-10-04 16:58:33 +02:00
Anarthal (Rubén Pérez)
146b555817
Replaced run_with_timeout by asio::cancel_after
close #351
2024-10-04 11:35:02 +02:00
Anarthal (Rubén Pérez)
268aa33a84
Connections now support immediate executors
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
2024-10-03 20:19:51 +02:00
Anarthal (Rubén Pérez)
7ef6ff8773
Removed pool executor params
Added pool_params::connection_executor

close #350
2024-10-03 06:28:43 +02:00
Anarthal (Rubén Pérez)
a4a40d8b90
async_get_connection now waits if the pool is not running
close #356
2024-09-30 21:38:30 +02: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)
e72b4906af
Removed connection_pool::async_get_connection timeout overloads
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
2024-09-26 08:30:52 +02:00
Anarthal (Rubén Pérez)
a84b774bef
Per-operation cancellation for connection_pool
close #197
2024-09-21 21:10:31 +02:00
Anarthal (Rubén Pérez)
761d25bcdd
Removed gcc-11 PFR warning suppression
As per https://github.com/boostorg/pfr/issues/166
2024-09-17 18:32:01 +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)
1f79e5ce3f
connection_pool thread-safety is now more robust
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
2024-09-14 13:06:54 +02:00
Anarthal (Rubén Pérez)
4a1604d685
Remove incorrect noexcept from field_view ctor
close #340
2024-09-13 22:51:01 +02:00
Anarthal (Rubén Pérez)
6d08247bab
Migrate docs to pydocca
Improved reference docs linkage and fixed several formatting issues
Removed obsolete performance warning about close_statement

close #334
2024-09-06 16:38:38 +02:00
Anarthal (Rubén Pérez)
20335ac99e
Modular Boost CI fixes
Added a boost.mysql.valgrind b2 feature
Suppress warnings in dependencies

close #338
2024-09-05 17:00:38 +02:00
René Ferdinand Rivera Morell
69c457a3e7
Add support for modular build structure 2024-08-19 09:40:08 +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)
95a9aa1068
Added with_diagnostics completion token
Made with_diagnostics(deferred) the default token for any_connection and
connection_pool.
throw_on_error is now marked as legacy.

close #329 
close #296
2024-08-13 10:48:49 +02:00