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

Json_writer allows one to create duplicate object members

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • 10.4(EOL)
    • 10.8.0
    • Optimizer
    • None

    Description

      Json_writer code allows one to write multiple members with the same name in a JSON object.

      This is likely to prevent proper processing of the created document.

      The most striking example is EXPLAIN FORMAT=JSON:

      {
        "query_block": {
          "select_id": 1,
          "table": {
            "table_name": "table",
            ...
          },
           "table": {
            ...
      

      The solution has two parts:

      Part #1: Follow the MDEV-23766 approach and make debug build generate assertion failures.

      Part #2: Fix EXPLAIN FORMAT=JSON code to not produce such invalid (or valid but not processable) JSON output.

      As for which version to fix this in: The problem with EXPLAIN FORMAT=JSON output is present from the very early versions (10.1). However, the fix will cause a lot of changes in EXPLAIN FORMAT=JSON output (the changes will be dummy but they will be there). This may not be desirable for older versions. Because of that, for now I'm setting fixVersion to 10.8.

      A question to be resolved: how to modify EXPLAIN/ANALYZE to make them well-formed JSON? Should we wrap them into an array, like MySQL does or do something else?)

      Attachments

        Issue Links

          Activity

            Transition Time In Source Status Execution Times
            Sergei Krivonos (Inactive) made transition -
            Open In Progress
            1h 2m 1
            Sergei Krivonos (Inactive) made transition -
            In Progress In Review
            1h 1m 1
            Sergei Petrunia made transition -
            In Review Stalled
            13d 21h 44m 1
            Sergei Krivonos (Inactive) made transition -
            Stalled Closed
            6h 40m 1

            People

              sergei.krivonos Sergei Krivonos (Inactive)
              psergei Sergei Petrunia
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

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