diff options
author | Alexey Botchkov <holyfoot@askmonty.org> | 2017-08-11 00:50:29 +0400 |
---|---|---|
committer | Alexey Botchkov <holyfoot@askmonty.org> | 2017-08-11 00:50:29 +0400 |
commit | 79d28533549d15e848b342cf518ae4b409ba3e64 (patch) | |
tree | defca6f922ea782facd0b36f5cec20e2fb4d0cc7 /sql/item_jsonfunc.h | |
parent | bfffe571accb93c80066b070688e6712d4cb5643 (diff) | |
download | mariadb-git-79d28533549d15e848b342cf518ae4b409ba3e64.tar.gz |
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.
Diffstat (limited to 'sql/item_jsonfunc.h')
-rw-r--r-- | sql/item_jsonfunc.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sql/item_jsonfunc.h b/sql/item_jsonfunc.h index cc089129556..b5c35ff551f 100644 --- a/sql/item_jsonfunc.h +++ b/sql/item_jsonfunc.h @@ -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); } |