summaryrefslogtreecommitdiff
path: root/sql/item_jsonfunc.h
diff options
context:
space:
mode:
authorAlexey Botchkov <holyfoot@askmonty.org>2017-08-11 00:50:29 +0400
committerAlexey Botchkov <holyfoot@askmonty.org>2017-08-11 00:50:29 +0400
commit79d28533549d15e848b342cf518ae4b409ba3e64 (patch)
treedefca6f922ea782facd0b36f5cec20e2fb4d0cc7 /sql/item_jsonfunc.h
parentbfffe571accb93c80066b070688e6712d4cb5643 (diff)
downloadmariadb-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.h6
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); }