38 Commits

Author SHA1 Message Date
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)
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)
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
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)
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)
d1f1219e4b
Removed the pipeline static interface
close #288
2024-06-26 16:47:27 +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)
9ba4f9dfed
Pipeline API
Removed sansio_algorithm base class

close #75
2024-06-08 12:47:42 +02:00
Anarthal (Rubén Pérez)
6e2b833a05
Split snippets into separate files (#242)
close #237
2024-03-21 23:22:10 +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
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
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
0571e4b886 Generic execute and start_execution functions
Added execute, start_execution, ExecutionRequest and
    statement::bind. Deprecated query, execute_statement,
    start_query and start_statement_execution.
Statements can now be executed specifying parameters
    as iterator ranges.
Fixed a bug that caused build problems when FieldViewForwardIterator's
    reference is convertible to field_view, but not field_view.

Close #111
Close #137
Close #138
2023-04-03 16:31:33 +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
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
7c5c7a6cd4 Collations for MySQL and MariaDB are now independent.
The collation enum has been converted into plain integers.
Separate headers for MySQL and MariaDB collation IDs have been added.
A script to generate those headers from table dumps has been added.

Close #120
2023-02-20 02:18:44 +01:00
Ruben Perez
48658b8cca Snippets are now run as tests.
Snippets are now built and executed as tests.
Added date::now and datetime::now
Renamed date::time_point_time => date::time_point
Renamed datetime::time_point_time => datetime::time_point
Added a snippet on how to work with TIMESTAMP objects

Close #106
2023-02-17 17:42:26 +01:00
Ruben Perez
e6bf59be8a Metadata strings are now read only when requested.
Added metadata_mode and the ability to not read metadata string fields.
buffer_params is now handled by connection's ctor instead of handshake.
Added CMake CI builds covering Release and MinSizeRel build types.
2023-01-21 15:47:11 +01:00
Ruben Perez
ac7285c621 server_diagnostics and client/server error categories.
Renamed error_info to server_diagnostics.
server_diagnostics::message is now correctly treated as user-supplied input
  (security fix). Added notes on examples on this.
Split server and client errors in different categories.
Added throw_on_error.
Added connection::rebind_executor.
Made error categories public.
Exception throwing now uses Boost.Exception.
Improved error handling in examples.
Updated Asio dependencies for stackful coroutines.

Close #64
Close #107
2023-01-17 19:41:21 +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
a3c9844ef3 New blob, date and datetime types
Binary types now use the new blob and blob_view types
New date and datetime types that can handle invalid and zero date and datetimes
Protection against min and max macros
Improvements in field docs
Docs section on character sets
Introduced new collations with id from 250 to 309
database_types test full refactor

Close #104
Close #103
Close #95
Close #94
Close #91
Close #90
Close #85
Close #80
Close #77
2022-12-15 19:24:18 +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
Ruben Perez
752fb7a538 qbk name tidy up 2022-11-15 12:32:16 +01:00
Ruben Perez
287cde2ae6 Fields 2022-11-15 12:30:46 +01:00
Ruben Perez
e792ef0773 Removed FieldViewCollection 2022-11-12 13:15:35 +01:00
Ruben Perez
6369158acf Advanced on overview docs page 2022-11-05 20:08:15 +01:00
Ruben Perez
486bddc8ef Renamed qbks to include ordering 2022-11-04 19:08:07 +01:00