diff options
author | Alexander Barkov <bar@mariadb.com> | 2020-06-22 15:43:53 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.com> | 2020-06-22 15:43:53 +0400 |
commit | 30903c37432e518e09b87610f6edd0a1d039669c (patch) | |
tree | d62ca4a19569f0cec9a7cce80aec7ecdd2a9d5f0 /sql/item_jsonfunc.h | |
parent | 009ef36d9ae01a44ddf5e1af35f54740838e1e70 (diff) | |
download | mariadb-git-30903c37432e518e09b87610f6edd0a1d039669c.tar.gz |
MDEV-22976 CAST(JSON_EXTRACT() AS DECIMAL) does not handle boolean values
Item_func_json_extract did not implement val_decimal(),
so CAST(JSON_EXTRACT('{"x":true}', '$.x') AS DECIMAL) erroneously
returned 0 with a warning because of convertion from the string "true"
to decimal.
Implementing val_decimal(), so boolean values are correctly handled.
Diffstat (limited to 'sql/item_jsonfunc.h')
-rw-r--r-- | sql/item_jsonfunc.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sql/item_jsonfunc.h b/sql/item_jsonfunc.h index d7f804a1b60..0277cb15154 100644 --- a/sql/item_jsonfunc.h +++ b/sql/item_jsonfunc.h @@ -171,6 +171,7 @@ public: String *val_str(String *); longlong val_int(); double val_real(); + my_decimal *val_decimal(my_decimal *); 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); } |