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

JSON_KEYS returns duplicate keys twice

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Minor
    • Resolution: Fixed
    • 10.2.5
    • 10.2.8
    • JSON
    • None
    • Linux CentOS 6.5

    Description

      When there are multiple attributes in a JSON object with the same name, which is allowed but discouraged in JSON, JSON_KEYS returns one entry for each duplicate:

      MySQL [test]> select JSON_KEYS('{"c1": "value 1", "c1": "value 2"}');
      +-------------------------------------------------+
      | JSON_KEYS('{"c1": "value 1", "c1": "value 2"}') |
      +-------------------------------------------------+
      | ["c1", "c1"]                                    |
      +-------------------------------------------------+
      

      MySQL 5.7 returns just the single key:

      MySQL [test]> select JSON_KEYS('{"c1": "value 1", "c1": "value 2"}');
      +-------------------------------------------------+
      | JSON_KEYS('{"c1": "value 1", "c1": "value 2"}') |
      +-------------------------------------------------+
      | ["c1"]                                          |
      +-------------------------------------------------+
      

      Multiple values for a single key are discouraged, but I think MySQL has the correct behavior as the JSON_KEYS function should return an array of the keys, and although "c1" in the example above exists twice in the object, it is the same key.

      Attachments

        Activity

          People

            holyfoot Alexey Botchkov
            karlsson Anders Karlsson
            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.