| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Quick grouping is not supported for JSON_OBJECTAGG. The same for GROUP_CONCAT too
so make sure that Item::quick_group is set to FALSE. We need to make sure that in
the case of JSON_OBJECTAGG we don't create an index over grouping fields of
the temp table and update the result after each iteration.
Instead we should first sort the result in accordance to the
GROUP BY fields and then perform the grouping and
write the result to the temp table.
|
| | |
| | |
| | |
| | | |
Item_field::is_json_value() implemented.
|
| | |
| | |
| | |
| | | |
Warning message and function result fixed
|
| | |
| | |
| | |
| | |
| | |
| | | |
either.
ORDER BY fixed for JSON_ARRAYAGG.
|
| | |
| | |
| | |
| | |
| | |
| | | |
We have to include NULL in the result which the GOUP_CONCAT doesn't
always do. Also converting should be done into another String instance
as these can be same.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
…while using json_arrayagg() as a window function.
We don't support JSON_ARRAYAGG and JSON_OBJECTAGG in window functions
yet.
|
| | | |
|
| | |
| | |
| | |
| | | |
Ison_objectagg implemented.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The JSON_ARRAYAGG function extends the GROUP_CONCAT function and provides
a method of aggregating JSON results. The current implementation supports
DISTINCT and LIMIT but not ORDER BY (Oracle supports GROUP BY).
Adding GROUP BY support is possible but it requires some extra work as the
grouping appears to be done inside a temporary table that complicates
matters.
Added test cases that covert aggregation of all JSON types and JSON
validation for the generated results.
|
| | |
| | |
| | |
| | |
| | | |
Fix "consistent override", and "unused private field" warnings
in popular header files.
|
|/ / |
|
|\ \
| |/ |
|
| |
| |
| |
| |
| | |
JSON_MERGE_PATCH implemented. Added JSON_MERGE_PRESERVE as a synonim for
the JSON_MERGE.
|
|\ \
| |/ |
|
| |
| |
| |
| | |
Item_func_json_search needs a member to store the path.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| | |
Locked_tables_list::unlock_locked_table
fix_length_and_dec now return result (error/OK)
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
get_item_copy()
TODO:
- Make get_thd_memroot() inline
- To do this, we need to reduce dependence of include files, especially
so that sql_class.h is not depending in item.h
|
| |
| |
| |
| |
| |
| | |
- Implementing stricter data type control for Item_long_func descendants
- Cleanup: renaming Type_handler::can_return_str_ascii() to can_return_text()
(a better name).
|
|\ \
| |/ |
|
| |
| |
| |
| | |
JSON_QUOTE return type set to be JSON.
|
| |
| |
| |
| |
| |
| | |
JSON_EXTRACT behaves specifically in the comparison,
so we have to implement specific method for that in
Arg_comparator.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
JSON_EXTRACT behaves specifically in the comparison,
so we have to implement specific method for that in
Arg_comparator.
Conflicts:
sql/item_cmpfunc.cc
|
|\ \
| |/ |
|
| |
| |
| |
| |
| | |
Comparison fixed to take the actual type of JSON value into
account. Bug in escaping handling fixed.
|
|/
|
|
| |
type for INT functions
|
|
|
|
| |
Now let's check JSON length to fit the max_allowed packet.
|
|
|
|
|
|
|
|
| |
character (").
The my_wildcmp function doesn't expect the string parameter to
have escapements, only the template. So the string
should be unescaped if necessary.
|
|
|
|
|
|
| |
Use JSON_COMPACT(X) instead of CAST(X AS JSON).
Bonus - X is validated to be a valid JSON.
Fix a typo in the error message.
|
|
|
|
|
|
| |
work.
json_detailed() fixed
|
|
|
|
| |
Fixes for issues found.
|
|
|
|
| |
json_no_table.test ported.
|
|
|
|
| |
Item_func_json_length fixed.
|
|
|
|
| |
The weird logic of json_contains was implemented.
|
|
|
|
| |
Item_func_json_merge fixed.
|
|
|
|
| |
CAST AS JSON didn't set the null_value mark properly.
|
|
|
|
|
| |
The rest of mysql/json functions implemented.
CAST AS JSON implemented.
|
|
strings/json_lib.c added as a JSON library.
SQL frunction added with sql/item_jsonfunc.h/cc
|