Details
-
Task
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
Q2/2026 Server Maintenance
Description
The original patch for MDEV-37530 / MDEV-28302 leveraged extensive C++17
features to maximize code re-use and extensibility. However, this
approach is inconsistent with the prevailing architectural standards of
the MariaDB server project, which maintains a C-centric codebase where
C++ features are reserved as exceptions, primarily for performance,
readability improvements, or when C implementation is infeasible. The
core rationale, provided by monty, is that the server source code must
avoid abstractions that obscure underlying implementation details,
ensuring all operational steps are fully transparent without relying on
deep layering in header files or compiled shared libraries. Therefore,
the task requires a comprehensive refactoring of MDEV-37530 and
MDEV-28302 to eliminate abstract C++ features and ensure full compliance
with the project's mandated C-based transparency standards.
Note that the server’s existing coding_standards.md does not convey this
limitation:
Language standards
For pure-C files we use C99 (starting with 10.4.25) and for C++ we use
C++17 (starting with 11.8.1). The code need to be able to compile on
multiple platforms using different compilers (for example: Windows /
Linux, x86_64 / ARM).
Though correcting this file is outside of the scope of this task.
Attachments
Issue Links
- is caused by
-
MDEV-28302 Configurable defaults for MASTER_SSL_* settings for CHANGE MASTER
-
- Closed
-
-
MDEV-37530 Refactor Master & Relay Log info to iterable tuples
-
- Closed
-
- relates to
-
MDEV-38973 update CODING_STANDARDS.md
-
- Open
-
-
MDEV-39000
Empirically compare MariaDB internal structures and the C++ standard library
-
- Open
-