mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-17018 JSON_SEARCH and User-Defined Variables.
Item_func_json_search needs a member to store the path.
This commit is contained in:
@ -796,3 +796,11 @@ JSON_SET('{}', '$.a', _utf8 X'C3B6', '$.x', 1, '$.b', _utf8 X'C3B6')
|
||||
select json_array_append('[ ]', '$', 'aue');
|
||||
json_array_append('[ ]', '$', 'aue')
|
||||
["aue"]
|
||||
#
|
||||
# MDEV-17018 JSON_SEARCH and User-Defined Variables.
|
||||
#
|
||||
SET @`json` := '["A", [{"B": "1"}], {"C": "AB"}, {"D": "BC"}]', @`value` := 'AB';
|
||||
SELECT JSON_SEARCH(@`json`, 'one', @`value`);
|
||||
JSON_SEARCH(@`json`, 'one', @`value`)
|
||||
"$[2].C"
|
||||
SET @`json` := NULL, @`value` := NULL;
|
||||
|
@ -455,3 +455,11 @@ SELECT JSON_SET('{}', '$.a', _utf8 X'C3B6', '$.x', 1, '$.b', _utf8 X'C3B6');
|
||||
|
||||
select json_array_append('[ ]', '$', 'aue');
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-17018 JSON_SEARCH and User-Defined Variables.
|
||||
--echo #
|
||||
|
||||
SET @`json` := '["A", [{"B": "1"}], {"C": "AB"}, {"D": "BC"}]', @`value` := 'AB';
|
||||
SELECT JSON_SEARCH(@`json`, 'one', @`value`);
|
||||
SET @`json` := NULL, @`value` := NULL;
|
||||
|
||||
|
@ -3056,7 +3056,7 @@ static int append_json_path(String *str, const json_path_t *p)
|
||||
String *Item_func_json_search::val_str(String *str)
|
||||
{
|
||||
String *js= args[0]->val_json(&tmp_js);
|
||||
String *s_str= args[2]->val_str(&tmp_js);
|
||||
String *s_str= args[2]->val_str(&tmp_path);
|
||||
json_engine_t je;
|
||||
json_path_t p, sav_path;
|
||||
uint n_arg;
|
||||
|
@ -400,7 +400,7 @@ public:
|
||||
class Item_func_json_search: public Item_json_str_multipath
|
||||
{
|
||||
protected:
|
||||
String tmp_js, esc_value;
|
||||
String tmp_js, tmp_path, esc_value;
|
||||
bool mode_one;
|
||||
bool ooa_constant, ooa_parsed;
|
||||
int escape;
|
||||
|
Reference in New Issue
Block a user