mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-12604 Comparison of JSON_EXTRACT result differs with Mysql.
JSON_EXTRACT behaves specifically in the comparison, so we have to implement specific method for that in Arg_comparator.
This commit is contained in:
@ -133,8 +133,6 @@ public:
|
||||
const char *func_name() const { return "json_unquote"; }
|
||||
void fix_length_and_dec();
|
||||
String *val_str(String *);
|
||||
double val_real();
|
||||
longlong val_int();
|
||||
Item *get_copy(THD *thd, MEM_ROOT *mem_root)
|
||||
{ return get_item_copy<Item_func_json_unquote>(thd, mem_root, this); }
|
||||
};
|
||||
@ -160,12 +158,16 @@ class Item_func_json_extract: public Item_json_str_multipath
|
||||
protected:
|
||||
String tmp_js;
|
||||
public:
|
||||
String *read_json(String *str, json_value_types *type,
|
||||
char **out_val, int *value_len);
|
||||
Item_func_json_extract(THD *thd, List<Item> &list):
|
||||
Item_json_str_multipath(thd, list) {}
|
||||
const char *func_name() const { return "json_extract"; }
|
||||
enum Functype functype() const { return JSON_EXTRACT_FUNC; }
|
||||
void fix_length_and_dec();
|
||||
String *val_str(String *);
|
||||
longlong val_int();
|
||||
double val_real();
|
||||
uint get_n_paths() const { return arg_count - 1; }
|
||||
Item *get_copy(THD *thd, MEM_ROOT *mem_root)
|
||||
{ return get_item_copy<Item_func_json_extract>(thd, mem_root, this); }
|
||||
|
Reference in New Issue
Block a user