Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-38972

Refactor MDEV-37530 and MDEV-28302 to Use Internal Data Structures

    XMLWordPrintable

Details

    • 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

          Activity

            People

              ParadoxV5 Jimmy Hú
              bnestere Brandon Nesterenko
              Jimmy Hú Jimmy Hú
              Michael Widenius Michael Widenius
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.