96 Commits

Author SHA1 Message Date
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)
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)
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)
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)
c3f1cbfd8f
Added an HTTP server example using C++20 coroutines
Contributes to #365
2025-02-11 18:43:35 +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
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
2024-11-29 17:47:44 +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
2024-11-05 00:12:27 +01: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)
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
Anarthal (Rubén Pérez)
820e10ed55
Fuzzers now run normally and are more resilient to failures
Updated build-clang17 and build-clang18 to use ubuntu:24.04
Fix missing package in build-clang18
Fuzzers now fail if OpenSSL can't be found

close #323
2024-07-24 17:38:55 +02:00
Anarthal (Rubén Pérez)
c3337d20d4
Added a CI build with UNIX sockets disabled
close #196
2024-07-14 21:51:33 +02:00
Anarthal (Rubén Pérez)
a918c6b6b5
Improved server feature detection for integration tests
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
2024-07-11 17:36:42 +02:00
Anarthal (Rubén Pérez)
3faf2947f9
Removed explicit architecture feature in b2 CI
close #248
2024-07-09 16:59:03 +02:00
Anarthal (Rubén Pérez)
3a49afeb87
Boost 1.86 new CI builds
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
2024-07-08 17:12:43 +02:00
Anarthal (Rubén Pérez)
6c48d6c6a6
Boost 1.86 new server error codes
close #304
2024-07-08 10:57:48 +02:00
Ruben Perez
f14e0a6d33 Boost 1.86 DBs and compiler Docker images 2024-07-03 11:27:45 +02:00
Anarthal (Rubén Pérez)
08abb5d073
Client-side SQL formatting now supports specifiers
Added the 'i' and 'r' specifiers
Removed the identifier class

close #217
2024-06-17 21:53:07 +02:00
Anarthal (Rubén Pérez)
1b6a908ba9
Marked constants as inline constexpr
close #265
2024-05-16 17:13:11 +02:00
Anarthal (Rubén Pérez)
752e445752
CMake test targets are now marked EXCLUDE_FROM_ALL
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
2024-05-16 12:45:57 +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)
75c7415118
Added is_fatal_error
Updated osx CIs to run in macos-latest (macos 14)

close #253
2024-04-30 16:17:16 +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
Anarthal (Rubén Pérez)
343006142b
Test Jamfiles now use the built-in OpenSSL module
Added a Linux b2 build without OpenSSL
Fixed issue in install_boost.py that made rebuilds to error
Removed workaround for https://github.com/boostorg/boost/issues/711
Changed boost.mysql.use-ts-executor default value to off

close #235
2024-03-27 16:43:37 +01:00
Anarthal (Rubén Pérez)
f7acfbe306
Unified CMake workflows
close #238
2024-03-18 17:46:33 +01:00
Anarthal (Rubén Pérez)
e68ff579c3
Moved Valgrind functionality to b2
close #239
2024-03-16 14:32:37 +01:00
Anarthal (Rubén Pérez)
c0f305d007
Added injection fuzzing to format_sql
CI refactor

close #215
2024-03-16 11:09:39 +01:00
Anarthal (Rubén Pérez)
5e3220fce3
Updated workflows to always use PRs
close #233
2024-03-14 17:18:05 +01:00
Ruben Perez
5d97dd8d81 New code coverage workflow
Code coverage is now using GHA and b2
Split Linux and Windows docker image builds
Updated some Linux images to include gpg

close #152
2024-03-14 13:28:05 +01: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
5b604cfd75 Boost 1.85 compiler builds and DB updates
close #224
2024-03-07 20:07:03 +01:00
Ruben Perez
ef3e5e40bf Removed unnecessary Valgrind suppressions
close #225
2024-03-06 12:55:40 +01:00
Ruben Perez
d8b69d0e78 Bumped copyright to 2024 2024-02-18 12:48:14 +01:00
Ruben Perez
ce53f3e0c0 Support for BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT
Fixed connection_pool to build under this macro
Fixed tests and examples to build under this macro
Added CIs for this macro

close #184
2024-02-16 17:27:31 +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
2c46f54098 Removed __unused error codes
Such codes used reserved C++ identifiers, containing two consecutive underscores, and are no longer used by MySQL.

close #205
2024-01-03 12:50:49 +01:00
Ruben Perez
e38506d0b2 common_error_messages is now correctly namespaced
close #204
2024-01-02 21:56:09 +01:00
Ruben Perez
50d2c2efd2 Workaround for b2 not supporting clang 3.6
close #203
2023-12-28 21:27:07 +01:00
Ruben Perez
05640cb670 Warning cleanup
Builds no longer use -pedantic
B2 builds now use -Wextra
Fixed various warnings

close #186
2023-12-21 13:54:01 +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
0bc8554627 Upgrade to MySQL 8.1.0, MariaDB 11.1.2
Updated test database containers
Added new error codes
Fixed build problem in OSX CI
Docker images are now built automatically when they change

close #178
2023-10-11 23:15:26 +02: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
cc73a0592f Fuzz testing
close #31
2023-07-07 17:22:54 +02:00
Ruben Perez
2f5f391c56 Boost 1.83 new error codes
Boost 1.83 new error codes
Error code generation now uses a CSV and a new algorithm
    to guarantee backwards compatibility

close #168
2023-06-24 23:21:12 +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
00c605565d Boost 1.83 builds for latest compilers & DBs
Updated MySQL to 8.0.33
Updated MariaDB to 11.0
Added a clang 16 build
Added a clang 16 32-bit build
Added a gcc 13 build
Fixed a warning in Windows/CMake about _WINNT_VERSION not being defined

close #167
2023-06-23 20:32:05 +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