diff options
author | Rucha Deodhar <rucha.deodhar@mariadb.com> | 2023-03-02 19:09:45 +0530 |
---|---|---|
committer | Rucha Deodhar <rucha.deodhar@mariadb.com> | 2023-04-26 11:00:09 +0530 |
commit | dffd1679ba97e5e8145575f0f11cb87553670c6f (patch) | |
tree | bb8ecb0ef138d0c2fdb90939e59bb0bb481a72b2 /mysql-test/main | |
parent | d555f38af819db8b051c4f754358041f146e83f4 (diff) | |
download | mariadb-git-dffd1679ba97e5e8145575f0f11cb87553670c6f.tar.gz |
MDEV-30703: JSON_SCHEMA_VALID : Enum array must have at least one value
Analysis: Current implementation does not check the number of elements in
the enum array and whether they are unique or not.
Fix: Add a counter that counts number of elements and before inserting the
element in the enum hash check whether it exists.
Diffstat (limited to 'mysql-test/main')
-rw-r--r-- | mysql-test/main/func_json.result | 15 | ||||
-rw-r--r-- | mysql-test/main/func_json.test | 20 |
2 files changed, 35 insertions, 0 deletions
diff --git a/mysql-test/main/func_json.result b/mysql-test/main/func_json.result index 8b4c98ae9fd..5fee9ce4c32 100644 --- a/mysql-test/main/func_json.result +++ b/mysql-test/main/func_json.result @@ -4590,4 +4590,19 @@ JSON_SCHEMA_VALID(@invalid_schema, '{"number1":3, "obj2":{"key1":3}}') NULL Warnings: Warning 4038 Syntax error in JSON text in argument 1 to function 'json_schema_valid' at position 45 +# +# MDEV-30703: JSON_SCHEMA_VALID : Enum array must have at least one value +# +SET @schema = '{ + "type":"array", + "enum": [] + }'; +SELECT JSON_SCHEMA_VALID(@schema, '2'); +ERROR HY000: Invalid value for keyword enum +SET @schema = '{ + "type":"number", + "enum": [2, 2] + }'; +SELECT JSON_SCHEMA_VALID(@schema, '2'); +ERROR HY000: Invalid value for keyword enum # End of 11.1 test diff --git a/mysql-test/main/func_json.test b/mysql-test/main/func_json.test index c417a8ea4f8..a1e52a0494c 100644 --- a/mysql-test/main/func_json.test +++ b/mysql-test/main/func_json.test @@ -3357,6 +3357,7 @@ SET @schema_reference= '{"$defs": "http://example.com/custom-email-validator.jso SELECT JSON_SCHEMA_VALID(@schema_reference, '{}'); + --echo # --echo # MDEV-30795: JSON_SCHEMA_VALID bugs mentioned in comment --echo # @@ -3474,4 +3475,23 @@ SET @invalid_schema= '{"type":"object" }'; SELECT JSON_SCHEMA_VALID(@invalid_schema, '{"number1":3, "obj2":{"key1":3}}'); +--echo # +--echo # MDEV-30703: JSON_SCHEMA_VALID : Enum array must have at least one value +--echo # + +SET @schema = '{ + "type":"array", + "enum": [] + }'; +--error ER_JSON_INVALID_VALUE_FOR_KEYWORD +SELECT JSON_SCHEMA_VALID(@schema, '2'); + +SET @schema = '{ + "type":"number", + "enum": [2, 2] + }'; +--error ER_JSON_INVALID_VALUE_FOR_KEYWORD +SELECT JSON_SCHEMA_VALID(@schema, '2'); + + --echo # End of 11.1 test |