Sergei Golubchik
1f372cf1de
MDEV-11439 No data type JSON, but CAST(something AS JSON) pretends to work
...
remove CAST(... AS JSON) from the grammar for 10.2.4
2017-02-13 18:19:02 +01:00
Alexey Botchkov
25aaecb240
MDEV-11858 json_merge() concatenates instead of merging.
...
Fix json_merge implementation.
2017-02-10 01:05:27 +04:00
Alexey Botchkov
0e6968c244
MDEV-11857 json_search() shows "Out of memory" with empty key.
...
We should be ready for an empty key.
2017-02-09 17:38:53 +04:00
Alexey Botchkov
abf7582112
MDEV-11557 port MySQL-5.7 JSON tests to MariaDB.
...
Fixes for issues found.
2017-02-06 06:47:48 +04:00
Alexey Botchkov
d123ed852a
MDEV-11938 json.json_no_table crashes or fails with valgrind warnings in json_find_path / Item_func_json_length::val_int.
...
Paths with quoted keynames handled improperly.
2017-02-02 18:56:15 +04:00
Alexey Botchkov
d96ee168a1
MDEV-11557 port MySQL-5.7 JSON tests to MariaDB.
...
paths ending on [0]..[0] should be handled in conforming manner.
2017-01-26 16:35:05 +04:00
Alexey Botchkov
50831b0f19
MDEV-11557 port MySQL-5.7 JSON tests to MariaDB.
...
json_no_table.test ported.
2017-01-24 17:34:44 +04:00
Alexey Botchkov
3a1772798d
MDEV-11573 JSON_LENGTH returns incorrect results.
...
Item_func_json_length fixed.
2016-12-24 11:40:31 +04:00
Alexey Botchkov
4d10273b4f
MDEV-11571 JSON_EXTRACT returns wrong results.
...
Array counter didn't increment after an item was found.
2016-12-24 10:51:43 +04:00
Alexey Botchkov
95228dc80b
MDEV-11570 JSON_MERGE returns incorrect result.
...
JSON merging fixed.
2016-12-20 17:32:08 +04:00
Alexey Botchkov
ce55094f4f
MDEV-11572 JSON_DEPTH returns wrong results.
...
JSON depth calculation fixed.
2016-12-16 14:06:12 +04:00
Alexey Botchkov
30c231b03a
MDEV-11569 JSON_ARRAY_INSERT produces an invalid result.
...
String insertion fixed.
2016-12-16 13:51:35 +04:00
Alexey Botchkov
beded4350f
MDEV-JSON_CONTAINS_PATH returns incorrect results and produces wrong warning.
...
The Item_func_json_contains_path was mistakenly set with the
no '*' paths limitation.
2016-12-16 12:43:44 +04:00
Alexey Botchkov
e5377be211
MDEV-11562 Assertion `js->state == JST_VALUE' failed in check_contains(json_engine_t*, json_engine_t*).
...
check_contains() fixed. When an item of an array is a complex
structure, it can be half-read after the end of the recursive
check_contains() call. So we just manually get to it's ending.
2016-12-16 12:32:56 +04:00
Alexey Botchkov
d26b9f670d
MDEV-11470 JSON_KEYS accepts arguments in invalid format.
...
Now JSON functions return warnings if arguments are invalid.
2016-12-13 12:39:48 +04:00
Alexey Botchkov
9320d8ae30
MDEV-11453 JSON_CONTAINS returns incorrect values.
...
The weird logic of json_contains was implemented.
2016-12-11 01:12:33 +04:00
Alexey Botchkov
04aa31c70b
MDEV-11469 JSON_SEARCH returns incorrect results.
...
Support for '**' in json path expressions added.
2016-12-09 12:26:32 +04:00
Alexey Botchkov
7f6710e5be
MDEV-11489 Assertion `0' failed in json_find_path.
...
When the json was just a scalar value, json_extract tried
to parse after the value ended.
2016-12-08 11:25:21 +04:00
Alexey Botchkov
3371904380
MDEV-11447 JSON_MERGE merges valid JSON objects incorrectly.
...
Test case added.
2016-12-06 01:39:06 +04:00
Alexey Botchkov
fba1eab92f
MDEV-11446 JSON_MERGE accepts arguments in invalid format.
...
Test case added.
2016-12-06 01:35:40 +04:00
Alexey Botchkov
3bae5328ea
MDEV-11433 JSON_MERGE returns a non-NULL result with a NULL argument.
...
Item_func_json_merge fixed.
2016-12-06 01:32:13 +04:00
Alexey Botchkov
486079d159
MDEV-11440 JSON has become a reserved word in MariaDB.
...
'JSON' made possible identifier.
2016-12-06 00:39:53 +04:00
Alexey Botchkov
3743b4c3ef
MDEV-11468 JSON_UNQUOTE returns incorrect results.
...
Now return the argument's value when error.
2016-12-06 00:34:25 +04:00
Alexey Botchkov
1da0865058
MDEV-11467 JSON_EXTRACT returns incorrect results.
...
Item_func_json_extract::val_str fixed.
2016-12-05 09:34:28 +04:00
Alexey Botchkov
2b01461629
MDEV-11465 JSON_LENGTH returns incorrect length.
...
Item_func_json_length::val_int fixed.
2016-12-05 08:59:55 +04:00
Alexey Botchkov
75a51818b2
MDEV-11448 Assertion `*p_cur_step < p->last_step' failed in strings/json_lib.c handle_match.
...
Test case added.
2016-12-05 08:52:37 +04:00
Alexey Botchkov
fe6d0a0719
MDEV-11471 JSON_ARRAY_APPEND returns incorrect results.
...
Item_func_json_array_append::val_str fixed.
2016-12-05 08:43:15 +04:00
Alexey Botchkov
abb80d25f4
MDEV-11472 JSON_ARRAY_INSERT returns incorrect results.
...
Item_func_json_array_insert::val_str fixed.
2016-12-05 08:03:11 +04:00
Alexey Botchkov
7e03c67ae8
MDEV-11474 JSON_DEPTH returns incorrect results.
...
Item_func_json_depth::val_int fixed.
2016-12-05 07:17:54 +04:00
Alexey Botchkov
78dc7c3a6e
MDEV-11461 JSON_TYPE does not recognize integer/double types.
...
Integer/Double recognition added.
2016-12-05 01:03:31 +04:00
Alexey Botchkov
5454500562
MDEV-11452 JSON_CONTAINS accepts wrong number of arguments.
...
Create_func_json_contains::create_native fixed.
2016-12-05 01:03:31 +04:00
Alexey Botchkov
c89c514ed3
MDEV-11445 JSON_MERGE requires at least two arguments in MySQL, but not in MariaDB.
...
Create_func_json_merge::create_native fixed.
2016-12-05 01:03:30 +04:00
Alexey Botchkov
12897a5bba
MDEV-11437 JSON_QUOTE function does not quote and uses wrong character set.
...
json_quote fixed.
2016-12-05 01:03:30 +04:00
Alexey Botchkov
b4cbaf0b7c
MDEV-11436 CREATE TABLE .. AS SELECT JSON_OBJECT truncates data.
...
fix_length_and_dec() didn't calculate the length of the result
properly.
2016-12-05 01:03:30 +04:00
Alexey Botchkov
f391ab4f01
MDEV-11438 Assertion `null_value' failed in Item::send(Protocol*, String*) upon casting NULL as JSON.
...
test added.
2016-12-05 01:03:30 +04:00
Alexey Botchkov
f105014e9b
MDEV-11464 Server crashes in mark_object upon JSON_VALID.
...
Depth of nested objects should be controlled.
2016-12-03 12:41:19 +04:00
Alexey Botchkov
7fca133028
MDEV-11463 Server crashes in mark_array upon JSON_VALID.
...
The depth of nested arrays should be controlled, as it's limited.
2016-12-03 12:36:10 +04:00
Alexey Botchkov
edc75c9c16
MDEV-11450 Assertion `!null_value' failed invirtual bool Item::send on json_search.
...
Item_func_json_search::val_str didn't set the null_value
properly. So that affected the next record in the resultset.
2016-12-03 12:11:06 +04:00
Alexey Botchkov
a8467e2fab
MDEV-11449 Server crashes in Item_func_or_sum::agg_item_collations.
...
JSON_ARRAY didn't expect 0 arguments.
2016-12-03 11:45:24 +04:00
Alexey Botchkov
eca1579051
MDEV-11444 Server crashes in String::ptr / Item_func_json_depth::val_int.
...
CAST AS JSON didn't set the null_value mark properly.
2016-12-03 11:32:47 +04:00
Alexey Botchkov
4ad0813a55
MDEV-11143 Server crashes in json_string_set_cs.
...
Some JSON functions didn't expect NULL as a path.
2016-12-03 11:22:42 +04:00
Alexey Botchkov
e8c419570f
MDEV-11442 Server crashes in String::length / parse_one_or_all /Item_func_json_contains_path::val_int
...
Didn't expect 'one_or_all' parameter to be NULL.
2016-12-03 11:02:28 +04:00
Alexey Botchkov
b28626e842
MDEV-11441 Server crashes in String::append /Item_func_json_extract::val_str.
...
Wrong 'value_lengh' taken
2016-12-03 10:53:12 +04:00
Alexey Botchkov
ebe5ebba16
MDEV-9143 JSON_xxx functions.
...
The rest of mysql/json functions implemented.
CAST AS JSON implemented.
2016-11-15 17:04:31 +04:00
Alexey Botchkov
27025221fe
MDEV-9143 JSON_xxx functions.
...
strings/json_lib.c added as a JSON library.
SQL frunction added with sql/item_jsonfunc.h/cc
2016-10-19 14:10:03 +04:00