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

    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

              monty Michael Widenius
              bnestere Brandon Nesterenko
              Jimmy HĂş Jimmy HĂş
              Michael Widenius Michael Widenius
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:

                Time Tracking

                  Estimated:
                  Original Estimate - 6d Original Estimate - 6d
                  6d
                  Remaining:
                  Time Spent - 14d 1h 25m Remaining Estimate - 2d
                  2d
                  Logged:
                  Time Spent - 14d 1h 25m Remaining Estimate - 2d
                  14d 1h 25m

                  Git Integration

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