Commit 76f6c1e1 authored by Alexey Botchkov's avatar Alexey Botchkov

MDEV-12262 Assertion `!null_value' failed in virtual bool Item::send on

JSON_REMOVE.

        null_value wasn't properly set in Item_json_func_remove::val_str.
parent a06da5c8
......@@ -618,3 +618,14 @@ connection default;
set @@global.max_allowed_packet = default;
set @@global.net_buffer_length = default;
disconnect newconn;
create table t1(j longtext, p longtext);
insert into t1 values
('{"a":1,"b":2,"c":3}','$.a'),
('{"a":1,"b":2,"c":3}','$.b'),
('{"a":1,"b":2,"c":3}','$.c');
select j, p, json_remove(j, p) from t1;
j p json_remove(j, p)
{"a":1,"b":2,"c":3} $.a {"b": 2, "c": 3}
{"a":1,"b":2,"c":3} $.b {"a": 1, "c": 3}
{"a":1,"b":2,"c":3} $.c {"a": 1, "b": 2}
drop table t1;
......@@ -263,3 +263,14 @@ set @@global.max_allowed_packet = default;
set @@global.net_buffer_length = default;
--disconnect newconn
#
# MDEV-12262 Assertion `!null_value' failed in virtual bool Item::send on JSON_REMOVE.
#
create table t1(j longtext, p longtext);
insert into t1 values
('{"a":1,"b":2,"c":3}','$.a'),
('{"a":1,"b":2,"c":3}','$.b'),
('{"a":1,"b":2,"c":3}','$.c');
select j, p, json_remove(j, p) from t1;
drop table t1;
......@@ -2633,6 +2633,7 @@ String *Item_func_json_remove::val_str(String *str)
str->length(0);
if (append_simple(str, js->ptr(), rem_start - js->ptr()) ||
(je.state == JST_KEY && n_item > 0 && str->append(",", 1)) ||
append_simple(str, rem_end, js->end() - rem_end))
goto js_error; /* Out of memory. */
......@@ -2658,6 +2659,7 @@ String *Item_func_json_remove::val_str(String *str)
if (json_nice(&je, str, Item_func_json_format::LOOSE))
goto js_error;
null_value= 0;
return str;
js_error:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment