Markus Mäkelä
d0fc07c85f
MDEV-16620: Add JSON_ARRAYAGG function
...
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.
2019-07-04 13:12:08 +03:00
Alexander Barkov
3e7e87ddcc
MDEV-19897 Rename source code variable names from utf8 to utf8mb3
2019-06-28 12:37:04 +04:00
Alexander Barkov
323a87b591
MDEV-19888 Add abstract class Item_json_func
2019-06-28 12:35:02 +04:00
Oleksandr Byelkin
c07325f932
Merge branch '10.3' into 10.4
2019-05-19 20:55:37 +02:00
Sergei Golubchik
c1fd027115
Merge branch '10.2' into 10.3
2019-05-17 17:23:01 +02:00
Alexey Botchkov
cd16d6d518
MDEV-13992 Implement JSON_MERGE_PATCH.
...
JSON_MERGE_PATCH implemented. Added JSON_MERGE_PRESERVE as a synonim for
the JSON_MERGE.
2019-05-17 11:53:58 +04:00
Marko Mäkelä
514b305dfb
Merge 10.3 into 10.4
...
The MDEV-17262 commit 26432e49d3
was skipped. In Galera 4, the implementation would seem to require
changes to the streaming replication.
In the tests archive.rnd_pos main.profiling, disable_ps_protocol
for SHOW STATUS and SHOW PROFILE commands until MDEV-18974
has been fixed.
2019-03-20 10:41:32 +02:00
Sergei Golubchik
b64fde8f38
Merge branch '10.2' into 10.3
2019-03-17 13:06:41 +01:00
Sergei Golubchik
f1134d5676
post-merge: gcc 8 warnings
...
note: Inherit String from Sql_alloc,
to get operators new and new[] in sync
in rocksdb gcc was complaining that non-lvalue was cast to const.
2019-03-15 21:00:50 +01:00
Marko Mäkelä
e450527938
Merge 10.3 into 10.4
2019-03-12 16:14:31 +02:00
Marko Mäkelä
b32bc70e34
Merge 10.2 into 10.3
2019-03-12 14:26:34 +02:00
Alexey Botchkov
acb4a87204
MDEV-18886 JSON_ARRAY() does not recognise JSON argument.
...
JSON_ARRAY and JSON_OBJECT functions with no arguments now get the
connection charset. Item_func_convert_charset returns the correct
is_json() flag.
2019-03-12 01:09:55 +04:00
Sergei Golubchik
d68d7e50f9
json helpers
2018-12-12 00:31:43 +01:00
Marko Mäkelä
dde2ca4aa1
Merge 10.3 into 10.4
2018-11-19 20:22:33 +02:00
Marko Mäkelä
fd58bb71e2
Merge 10.2 into 10.3
2018-11-19 18:45:53 +02:00
Alexey Botchkov
5cfb043d29
MDEV-16174 Assertion `0' failed in Type_handler_string_result::make_sort_key(uchar*, Item*, const SORT_FIELD_ATTR*, Sort_param*)
...
maybe_null should be always set to TRUE in
Item_func_json_array_append::fix_length_and_dec()
2018-11-09 22:55:34 +04:00
Marko Mäkelä
444c380ceb
Merge 10.3 into 10.4
2018-10-05 08:09:49 +03:00
Sergei Golubchik
57e0da50bb
Merge branch '10.2' into 10.3
2018-09-28 16:37:06 +02:00
Alexey Botchkov
f54485eadb
MDEV-17001 JSON_MERGE returns nullwhen merging empty array.
...
Don't add the comma if nothing appended to the array.
2018-09-13 13:42:09 +04:00
Alexey Botchkov
a93363022c
MDEV-17018 JSON_SEARCH and User-Defined Variables.
...
Item_func_json_search needs a member to store the path.
2018-09-12 21:57:28 +04:00
Alexey Botchkov
c8bb43a938
MDEV-17121 JSON_ARRAY_APPEND.
...
Extra comma added to the result when an json array is empty.
2018-09-11 14:37:45 +04:00
Marko Mäkelä
734db318ac
Merge 10.3 into 10.4
2018-08-16 10:08:30 +03:00
Sergei Golubchik
0aa9b03393
Merge branch '10.2' into 10.3
2018-08-12 12:02:23 +02:00
Alexey Botchkov
4ddcb4eb46
MDEV-16750 JSON_SET mishandles unicode every second pair of arguments.
...
The charset of temporary storage (Item_func_json_insert::tmp_js)
was not properly set.
2018-08-06 13:37:09 +04:00
Alexey Botchkov
fc324a5f87
MDEV-16869 String functions don't respect character set of JSON_VALUE.
...
Item_func_json_value::val_str() produced string of wrong charset.
2018-08-05 18:33:17 +04:00
Alexander Barkov
9c0f5a252b
Merge remote-tracking branch 'origin/10.3' into 10.4
2018-07-25 08:25:57 +04:00
Alexander Barkov
294a426088
Merge remote-tracking branch 'origin/10.2' into 10.3
2018-07-24 18:44:49 +04:00
Alexander Barkov
a8227a1543
MDEV-16814 CREATE TABLE SELECT JSON_QUOTE(multibyte_charset_expr) makes a field of a wrong length
2018-07-24 18:15:15 +04:00
Alexander Barkov
e61568ee93
Merge remote-tracking branch 'origin/10.3' into 10.4
2018-07-03 14:02:05 +04:00
Sergei Golubchik
36e59752e7
Merge branch '10.2' into 10.3
2018-06-30 16:39:20 +02:00
Oleksandr Byelkin
083279f783
Merge commit '6b8802e8dd5467556a024d807a1df23940b00895' into bb-10.3-fix_len_dec
2018-06-19 14:51:50 +02:00
Alexey Botchkov
5ba6cee012
MDEV-16209 JSON_EXTRACT in query crashes server.
...
The optimizer can create various item's over the original one,
so we can't count on the exact item's type inside the comparison.
2018-06-18 23:00:34 +04:00
Alexey Botchkov
352c7e0dfa
MDEV-15905 select json_value('{"b":true}','$.b')=1 --> false with
...
"Truncated incorrect DOUBLE value: 'true'".
JSON_VALUE_TRUE and JSON_VALUE_FALSE should be handled specifically
in Item_json_value.
2018-06-17 17:15:21 +04:00
Oleksandr Byelkin
6b8802e8dd
MDEV-11071: Assertion `thd->transaction.stmt.is_empty()' failed in Locked_tables_list::unlock_locked_table
...
fix_length_and_dec now return result (error/OK)
2018-06-15 10:31:30 +02:00
Igor Babaev
cab1d63826
Merge branch '10.3' into 10.4
2018-06-03 10:34:41 -07:00
Alexander Barkov
ffe83e8e7b
MDEV-16351 JSON_OBJECT() treats hybrid functions with boolean arguments as numbers
...
Now the boolean data type is preserved in hybrid functions and MIN/MAX,
so COALESCE(bool_expr,bool_expr) and MAX(bool_expr) are correctly
detected by JSON_OBJECT() as being boolean rather than numeric expressions.
2018-05-31 18:52:32 +04:00
Monty
30ebc3ee9e
Add likely/unlikely to speed up execution
...
Added to:
- if (error)
- Lex
- sql_yacc.yy and sql_yacc_ora.yy
- In header files to alloc() calls
- Added thd argument to thd_net_is_killed()
2018-05-07 00:07:32 +03:00
Michael Widenius
ddc5764303
Remove compiler warnings
...
- Remove unused variables
- Mark variables unused
- Fix wrong types
- Add no-strict-aliasing to BUILD scripts
2018-04-16 20:16:43 +03:00
Marko Mäkelä
145ae15a33
Merge bb-10.2-ext into 10.3
2018-01-04 09:22:59 +02:00
Monty
fbab79c9b8
Merge remote-tracking branch 'origin/10.2' into bb-10.2-ext
...
Conflicts:
cmake/make_dist.cmake.in
mysql-test/r/func_json.result
mysql-test/r/ps.result
mysql-test/t/func_json.test
mysql-test/t/ps.test
sql/item_cmpfunc.h
2018-01-01 19:39:59 +02:00
Alexey Botchkov
f0f3b6549a
MDEV-13970 crash in Item_func_json_extract::read_json.
...
Item_func_json_extract::val_int fixed.
It wasn't tested yet as it's called in exotic cases only.
2017-12-25 08:10:48 +04:00
Marko Mäkelä
7cb3520c06
Merge bb-10.2-ext into 10.3
2017-11-30 08:16:37 +02:00
Alexander Barkov
4a8039b04e
Merge remote-tracking branch 'origin/10.2' into bb-10.2-ext
2017-11-20 11:12:08 +04:00
Alexey Botchkov
842dce378a
MDEV-14402 JSON_VALUE doesn't escape quote.
...
Result unescaping added.
2017-11-16 19:59:27 +04:00
Marko Mäkelä
5603a5842b
Merge bb-10.2-ext into 10.3
2017-11-02 12:08:37 +02:00
Marko Mäkelä
2ec7b87053
Merge 10.2 into bb-10.2-ext
2017-11-01 14:37:31 +02:00
Alexander Barkov
835cbbcc7b
Merge remote-tracking branch 'origin/bb-10.2-ext' into 10.3
...
TODO: enable MDEV-13049 optimization for 10.3
2017-10-30 20:47:39 +04:00
Alexey Botchkov
b5689c6c87
Compiler warnings fixed.
2017-10-30 14:59:43 +04:00
Alexander Barkov
30e7d6709f
Merge remote-tracking branch 'origin/10.2' into bb-10.2-ext
2017-10-18 14:11:55 +04:00
Alexey Botchkov
a3ba8c3660
MDEV-13703 Illegal mix of collations for operation 'json_object' on
...
using JSON_UNQUOTE as an argument.
The coercibility and repertoire should be set properly for the
JSON_UNQUOTE.
2017-10-06 09:28:33 +04:00