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

JSON_SCHEMA_VALID : Enum array must have at least one value

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • None
    • 11.1.1
    • JSON
    • None

    Description

      enum:

      The value of this keyword MUST be an array. This array SHOULD have at least one element. Elements in the array SHOULD be unique.

      https://json-schema.org/draft/2019-09/json-schema-validation.html#rfc.section.6.1.2

      So it is expected that JSON_SCHEMA_VALID for this schema returns warning:

      SET @schema = '{
                       "type":"array",
                        "enum": []
                      }';
      

      But actual result is:

      SELECT JSON_SCHEMA_VALID(@schema, '2');
      JSON_SCHEMA_VALID(@schema, '2')
      0
      SELECT JSON_SCHEMA_VALID(@schema, '[]');
      JSON_SCHEMA_VALID(@schema, '[]')
      0
      SELECT JSON_SCHEMA_VALID(@schema, null);
      JSON_SCHEMA_VALID(@schema, null)
      1
      

      Attachments

        Issue Links

          Activity

            rucha174 Rucha Deodhar added a comment - - edited Patch: https://github.com/MariaDB/server/tree/bb-MDEV-30703-json_schema

            You are correct that the JSON Schema specification states that the enum keyword should be an array with at least one element. In the example schema you provided, the enum keyword has an empty array as its value, which should trigger a warning according to the specification.

            However, the actual behavior of the JSON_SCHEMA_VALID function you are using may differ from the specification. It appears that the function is not returning a warning for the empty array in the enum keyword.

            It's possible that the function has different behavior for different versions or implementations of the JSON Schema specification. Alternatively, there may be a bug in the function that is causing it to incorrectly validate the schema.

            vaibhav990 vaibhav sharma added a comment - You are correct that the JSON Schema specification states that the enum keyword should be an array with at least one element. In the example schema you provided, the enum keyword has an empty array as its value, which should trigger a warning according to the specification. However, the actual behavior of the JSON_SCHEMA_VALID function you are using may differ from the specification. It appears that the function is not returning a warning for the empty array in the enum keyword. It's possible that the function has different behavior for different versions or implementations of the JSON Schema specification. Alternatively, there may be a bug in the function that is causing it to incorrectly validate the schema.
            rucha174 Rucha Deodhar added a comment -

            vaibhav990 , yes, the patch fixes that.

            rucha174 Rucha Deodhar added a comment - vaibhav990 , yes, the patch fixes that.

            ok to push.

            holyfoot Alexey Botchkov added a comment - ok to push.
            rucha174 Rucha Deodhar added a comment - Pushed to https://github.com/MariaDB/server/tree/bb-10.12-MDEV-27128

            People

              rucha174 Rucha Deodhar
              lstartseva Lena Startseva
              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.