diff options
author | Alexey Botchkov <holyfoot@askmonty.org> | 2016-12-05 08:59:55 +0400 |
---|---|---|
committer | Alexey Botchkov <holyfoot@askmonty.org> | 2016-12-05 08:59:55 +0400 |
commit | 2b01461629ea520c263eccc962a18b5a7ae7962f (patch) | |
tree | 1f47131ffd66009c0c4424735f70d8ddda8fd71c | |
parent | 75a51818b25c48783918464853cc965a180e1a97 (diff) | |
download | mariadb-git-2b01461629ea520c263eccc962a18b5a7ae7962f.tar.gz |
MDEV-11465 JSON_LENGTH returns incorrect length.
Item_func_json_length::val_int fixed.
-rw-r--r-- | mysql-test/r/func_json.result | 9 | ||||
-rw-r--r-- | mysql-test/t/func_json.test | 3 | ||||
-rw-r--r-- | sql/item_jsonfunc.cc | 3 |
3 files changed, 13 insertions, 2 deletions
diff --git a/mysql-test/r/func_json.result b/mysql-test/r/func_json.result index cf9e67793ab..e69e1f138c3 100644 --- a/mysql-test/r/func_json.result +++ b/mysql-test/r/func_json.result @@ -292,3 +292,12 @@ json_depth('[[], {}]') select json_depth('[[[1,2,3],"s"], {}, []]'); json_depth('[[[1,2,3],"s"], {}, []]') 4 +select json_length(''); +json_length('') +NULL +select json_length('{}'); +json_length('{}') +0 +select json_length('[1, 2, {"a": 3}]'); +json_length('[1, 2, {"a": 3}]') +3 diff --git a/mysql-test/t/func_json.test b/mysql-test/t/func_json.test index 60dbfa720fe..2a3d1cc81d2 100644 --- a/mysql-test/t/func_json.test +++ b/mysql-test/t/func_json.test @@ -129,3 +129,6 @@ select json_depth(cast(NULL as JSON)); select json_depth('[[], {}]'); select json_depth('[[[1,2,3],"s"], {}, []]'); +select json_length(''); +select json_length('{}'); +select json_length('[1, 2, {"a": 3}]'); diff --git a/sql/item_jsonfunc.cc b/sql/item_jsonfunc.cc index 375426c672e..5361f0143d3 100644 --- a/sql/item_jsonfunc.cc +++ b/sql/item_jsonfunc.cc @@ -1271,8 +1271,7 @@ longlong Item_func_json_length::val_int() return 0; } - return length; - + return length - 1; } |