mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-24538: JSON_LENGTH does not return error upon wrong number of parameters
This commit is contained in:
committed by
Daniel Black
parent
cacea31687
commit
a80eb9832e
@ -1289,5 +1289,12 @@ JSON_LOOSE(JSON_EXTRACT(a, '$**.analyzing_range_alternatives'))
|
|||||||
[{"range_scan_alternatives": [{"index": "a_b", "ranges": ["2 <= a <= 2 AND 4 <= b <= 4", "123"], "rowid_ordered": true, "using_mrr": false, "index_only": true, "rows": 1, "cost": 1.1752, "chosen": true}], "analyzing_roworder_intersect": {"cause": "too few roworder scans"}, "analyzing_index_merge_union": [], "test_one_line_array": ["123"]}]
|
[{"range_scan_alternatives": [{"index": "a_b", "ranges": ["2 <= a <= 2 AND 4 <= b <= 4", "123"], "rowid_ordered": true, "using_mrr": false, "index_only": true, "rows": 1, "cost": 1.1752, "chosen": true}], "analyzing_roworder_intersect": {"cause": "too few roworder scans"}, "analyzing_index_merge_union": [], "test_one_line_array": ["123"]}]
|
||||||
drop table t200;
|
drop table t200;
|
||||||
#
|
#
|
||||||
|
# MDEV-24538: JSON_LENGTH does not return error upon wrong number of parameters
|
||||||
|
#
|
||||||
|
SELECT JSON_LENGTH('{"a":"b"}','$','$', 'foo');
|
||||||
|
ERROR 42000: Incorrect parameter count in the call to native function 'json_length'
|
||||||
|
SELECT JSON_LENGTH();
|
||||||
|
ERROR 42000: Incorrect parameter count in the call to native function 'JSON_LENGTH'
|
||||||
|
#
|
||||||
# End of 10.4 tests
|
# End of 10.4 tests
|
||||||
#
|
#
|
||||||
|
@ -665,6 +665,7 @@ SELECT 1 + JSON_VALUE('{"nulltest": null}', '$.nulltest');
|
|||||||
SELECT NULL;
|
SELECT NULL;
|
||||||
SELECT JSON_EXTRACT('{"a":null, "b":10, "c":"null"}', '$.a');
|
SELECT JSON_EXTRACT('{"a":null, "b":10, "c":"null"}', '$.a');
|
||||||
|
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # End of 10.3 tests
|
--echo # End of 10.3 tests
|
||||||
--echo #
|
--echo #
|
||||||
@ -816,6 +817,14 @@ select JSON_PRETTY(JSON_EXTRACT(a, '$**.analyzing_range_alternatives')) from t20
|
|||||||
select JSON_LOOSE(JSON_EXTRACT(a, '$**.analyzing_range_alternatives')) from t200;
|
select JSON_LOOSE(JSON_EXTRACT(a, '$**.analyzing_range_alternatives')) from t200;
|
||||||
drop table t200;
|
drop table t200;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-24538: JSON_LENGTH does not return error upon wrong number of parameters
|
||||||
|
--echo #
|
||||||
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
||||||
|
SELECT JSON_LENGTH('{"a":"b"}','$','$', 'foo');
|
||||||
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
||||||
|
SELECT JSON_LENGTH();
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # End of 10.4 tests
|
--echo # End of 10.4 tests
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -310,6 +310,11 @@ class Item_func_json_length: public Item_long_func
|
|||||||
{
|
{
|
||||||
bool check_arguments() const
|
bool check_arguments() const
|
||||||
{
|
{
|
||||||
|
if (arg_count == 0 || arg_count > 2)
|
||||||
|
{
|
||||||
|
my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), func_name());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
return args[0]->check_type_can_return_text(func_name()) ||
|
return args[0]->check_type_can_return_text(func_name()) ||
|
||||||
(arg_count > 1 &&
|
(arg_count > 1 &&
|
||||||
args[1]->check_type_general_purpose_string(func_name()));
|
args[1]->check_type_general_purpose_string(func_name()));
|
||||||
|
Reference in New Issue
Block a user