31 Commits

Author SHA1 Message Date
Anarthal (Rubén Pérez)
793b678287
Updated file copyrights to 2025 2025-02-11 20:42:41 +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)
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)
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)
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)
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)
f7acfbe306
Unified CMake workflows
close #238
2024-03-18 17:46:33 +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
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
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
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
Ruben Perez
b51115668d Added support for the static interface
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 #60
close #153
close #154
2023-05-22 14:05:12 +02:00
Ruben Perez
ed007e31ae Multi-resultset
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 #133
Close #132
Close #8
2023-03-31 00:44:46 +02:00
Ruben Perez
3606474a50 Added ARM CIs
Added ARM docker images
Added ARM CIs for gcc and clang on Linux
Fixed a linker error on cmake when no CMAKE_CXX_STD
    is specified and the compiler defaults to C++03
ci.py now supports empty cxxstd for cmake

Close #130
Close #134
2023-03-26 23:28:46 +02:00
Ruben Perez
643e39f85e JSON and TEXT fields with binary collations support.
JSON fields are now read as strings instead of blobs.
TEXT fields with binary collations (e.g. utf8_bin or
    the JSON type in MariaDB) are now read as strings instead of blobs.
Added the column_type::json type.
The CI script now loads all data into the databases. There is no
    longer need to rebuild DB containers when test data changes.
2023-03-04 10:21:36 +01:00
Ruben Perez
7ebea35291 General documentation fixes.
Removed the notion of "single stream read and write"
    for the notion of "single async operation"
UNIX socket examples no longer use SSL.
Added Doxygen reference template and applied it
    to all functions and classes.
Improved the overview section.
Misc corrections in discussion.
Added missing members to quickref.
Fixed usage instructions.
Fixed issue in rows that caused an unnecessary copy of the strings.
Added upgrade instructions from 0.2.x.
Added SQL injection warnings in connection::query docs.
Fixed problems with missing icons.

Close #66
Close #96
Close #78
Close #47
2023-02-24 19:26:41 +01:00
Ruben Perez
b63eaf761e Revert "Added a warning on the API being experimental"
This reverts commit 06357f17d153d2578c61ef507825c431097b03b5.
2023-02-21 13:34:48 +01:00
Ruben Perez
06357f17d1 Added a warning on the API being experimental 2023-02-20 13:23:56 +01:00
Ruben Perez
7280ad6ed9 B2 CIs now runs unit tests
Fixed problem that caused build failures under GCC11/C++17
Close #117
2023-02-08 18:30:01 +01:00
Ruben Perez
7c4de363bb CMake version & OpenSSL degradation
The integrated CMake Boost build won't fail if OpenSSL is not found
The integrated CMake Boost build now requires cmake 3.5
2023-01-01 22:21:11 +01:00
Ruben Perez
31bc3b9dac Copyright year bump 2022-12-31 16:28:59 +01:00
Ruben Perez
a975273490 Multi-function operations
Added proper support for multi-function operations, segregating
  the API in single-function and multi-function operations.
  Removed resultset as I/O object, the read_xxx owning functions
  and read_all.
Unit test infrastructure for async testing.
Reference types lifetime fixes.
Removed connection::valid.
Fixed a serialization bug for statements with no parameters.
Binary protocol strings now use the type recommended by MySQL.
Refactored Jamfile to match best practices.
Updated description in libraries.json.

Close #82
Close #81
Close #73
Close #59
Close #58
Close #53
Close #41
Close #22
2022-12-31 15:49:09 +01:00
Ruben Perez
bf4071f370 Boostification, part 2
Fully migrated Linux and Windows jobs to Drone
Fixed time-zone related issue in integ tests
Support for MSVC 14.1
Support for latest docca version
Recover codecov support
Test to verify cmake find_package for a b2-generated distribution
Resilience against openssl not being found in Windows
2022-12-05 19:04:24 +01:00
Ruben Perez
f662df3635 Boostification, part 1
Proper cmake support
New UNIX B2 builds
New UNIX CMake builds
Removed appveyor support
New Windows B2 drone builds
2022-11-28 17:29:56 +01:00