Commit 8711adb7 authored by Sergei Golubchik's avatar Sergei Golubchik

fix JSON_ARRAYAGG not to over-quote json in joins

use metadata (in particular is_json() property) of the original
argument item, even if the actual argument was later replaced
with an Item_temptable_field
parent c8fb911e
......@@ -1376,9 +1376,9 @@ SELECT t1.id, JSON_ARRAYAGG(JSON_OBJECT('id',t2.id)) as materials
from t1 LEFT JOIN t2 on t1.id = t2.owner_id
GROUP BY t1.id ORDER BY id;
id materials
1 ["{\"id\": 1}","{\"id\": 2}"]
2 ["{\"id\": 3}"]
3 ["{\"id\": 4}"]
1 [{"id": 1},{"id": 2}]
2 [{"id": 3}]
3 [{"id": 4}]
DROP TABLE t1;
DROP TABLE t2;
#
......
......@@ -3723,12 +3723,12 @@ String *Item_func_json_arrayagg::get_str_from_item(Item *i, String *tmp)
}
String *Item_func_json_arrayagg::get_str_from_field(Item *i,Field *f,
String *Item_func_json_arrayagg::get_str_from_field(Item *, Field *f,
String *tmp, const uchar *key, size_t offset)
{
m_tmp_json.length(0);
if (append_json_value_from_field(&m_tmp_json, i, f, key, offset, tmp))
if (append_json_value_from_field(&m_tmp_json, *orig_args, f, key, offset, tmp))
return NULL;
return &m_tmp_json;
......
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