Alexander Barkov
30903c3743
MDEV-22976 CAST(JSON_EXTRACT() AS DECIMAL) does not handle boolean values
...
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.
2020-06-22 15:43:53 +04:00
Monty
9cba6c5aa3
Updated mtr files to support different compiled in options
...
This allows one to run the test suite even if any of the following
options are changed:
- character-set-server
- collation-server
- join-cache-level
- log-basename
- max-allowed-packet
- optimizer-switch
- query-cache-size and query-cache-type
- skip-name-resolve
- table-definition-cache
- table-open-cache
- Some innodb options
etc
Changes:
- Don't print out the value of system variables as one can't depend on
them to being constants.
- Don't set global variables to 'default' as the default may not
be the same as the test was started with if there was an additional
option file. Instead save original value and reset it at end of test.
- Test that depends on the latin1 character set should include
default_charset.inc or set the character set to latin1
- Test that depends on the original optimizer switch, should include
default_optimizer_switch.inc
- Test that depends on the value of a specific system variable should
set it in the test (like optimizer_use_condition_selectivity)
- Split subselect3.test into subselect3.test and subselect3.inc to
make it easier to set and reset system variables.
- Added .opt files for test that required specfic options that could
be changed by external configuration files.
- Fixed result files in rockdsb & tokudb that had not been updated for
a while.
2019-09-01 19:17:35 +03: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ä
f72760df33
Add an end-of-tests marker to ease merges
2019-03-12 14:20:01 +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
Alexey Botchkov
b290ef8c76
MDEV-17454 JSON_VALID( '{"a":1]' ) evaluates to 1.
...
Produce syntax error when '{...]'.
2018-11-12 01:50:07 +04: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
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
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
Alexey Botchkov
f4eac2deeb
MDEV-16054 simple json functions flatline cpu on garbage input.
...
Incorrect char sentence should be handled properly.
2018-07-31 16:33:05 +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
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
Alexey Botchkov
d702e46390
MDEV-15561 json_extract returns NULL with numbers in scientific notation.
...
Scientific notation handling fixed.
2018-03-25 00:15:11 +04: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
Alexey Botchkov
842dce378a
MDEV-14402 JSON_VALUE doesn't escape quote.
...
Result unescaping added.
2017-11-16 19:59:27 +04:00
Alexey Botchkov
1e2d4f677e
MDEV-13971 crash in skip_num_constant.
...
Character bigger than 0x60 wasn't handled properly
inside a numeric constant.
2017-11-11 13:54:56 +04:00
Alexey Botchkov
3557de68d1
MDEV-12312 JSON_CONTAINS_PATH does not detect invalid path and returns
...
TRUE.
Let's make empty brackets to be the syntax error in the JSON
paths.
2017-10-06 10:01:35 +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
Alexey Botchkov
f1a20ec396
MDEV-12311 Insufficient check for argument validity in JSON functions.
...
Check validity to the end of the JSON in the json_length
function.
2017-10-05 23:46:25 +04:00
Alexey Botchkov
1f6ada8da8
MDEV-13306 JSON_CONTAINS returns wrong value.
...
The 'value' state should be saved to be compared against the
next array item.
2017-10-05 23:23:39 +04:00
Alexey Botchkov
dc82f70e9f
MDEV-13633 JSON_ARRAY() - bad output with some UTF8 characters.
...
set_charset() calls added for Item_func_json_arran
and Item_func_json_object::val_str-s.
2017-09-13 15:17:28 +04:00
Alexey Botchkov
80a3837283
MDEV-12877 Wrong result from JSON native function.
...
JSON_QUOTE return type set to be JSON.
2017-09-12 19:15:31 +04:00
Alexey Botchkov
825c8d793d
MDEV-12774 JSON_EXTRACT fails with some escaped unicode as key.
...
Tests added.
2017-09-12 17:30:46 +04:00
Alexey Botchkov
0cd731864e
MDEV-13104 Json functions.
...
An extra ',' added to the JSON_MERGE result making it invalid.
2017-09-12 15:21:53 +04:00
Alexey Botchkov
467acc2119
MDEV-13324 JSON_SET returns NULL instead of object.
...
Superfluous ',' was added to the JSON_SET result so it became
invalid.
2017-09-12 14:40:18 +04:00
Alexey Botchkov
594c6b37f3
MDEV-13138 JSON_OBJECT returns null with strings containing backticks.
...
Condition was fixed.
2017-09-12 13:26:03 +04:00
Alexey Botchkov
6352ec2184
MDEV-12982 JSON_EXTRACT returns data for invalid JSON.
...
Let's check the validity to the end of the JSON.
2017-09-12 11:20:30 +04:00
Alexey Botchkov
4bca34d8a4
MDEV-12789 JSON_KEYS returns duplicate keys twice.
...
Check for duplicating keys added.
2017-08-08 15:40:11 +04:00
Alexey Botchkov
bb71d9abf2
MDEV-12604 Comparison of JSON_EXTRACT result differs with Mysql.
...
Comparison fixed to take the actual type of JSON value into
account. Bug in escaping handling fixed.
2017-08-08 10:35:26 +04:00
Alexey Botchkov
f701ac65e9
MDEV-12324 Wrong result (phantom array value) on JSON_EXTRACT.
...
Fixed the path comparison.
2017-08-07 13:46:45 +04:00
Alexey Botchkov
3ea9d3e59e
MDEV-12363 Assertion `0' failed in Type_handler_string_result::make_sort_key(uchar*, Item*, const SORT_FIELD_ATTR*, Sort_param*).
...
maybe_null wasn't properly set for Item_json_func_keys.
2017-05-02 15:47:43 +04:00
Alexey Botchkov
4a484e7a20
MDEV-12351 Assertion `cur_step->type & JSON_PATH_KEY' failed in
...
json_find_path.
The ..[0] path can be treated wrong on second json_find_path
call.
2017-05-02 15:16:01 +04:00
Alexey Botchkov
42ad4f2821
MDEV-12364 Server crashes in __memcpy_sse2_unaligned / String::copy on
...
JSON_SEARCH with variables.
Wrong index for the tmp_paths array in
Item_func_json_search::val_str.
2017-05-02 14:28:57 +04:00
Alexey Botchkov
76f6c1e1ed
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.
2017-03-20 15:18:06 +04:00
Alexey Botchkov
af6eee1fc5
MDEV-11833 JSON functions don't seem to respect max_allowed_packet.
...
Now let's check JSON length to fit the max_allowed packet.
2017-03-14 17:31:14 +04:00
Alexey Botchkov
7c7c0696e7
MDEV-11856 json_search doesn't search for values with double quotes
...
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.
2017-03-14 15:25:02 +04:00
Sergei Golubchik
6f6d0531dc
MDEV-11439 No data type JSON, but CAST(something AS JSON) pretends to work
...
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.
2017-02-14 20:43:41 +01:00
Alexey Botchkov
f76d5fefb8
MDEV-11439 No data type JSON, but CAST(something AS JSON) pretends to
...
work.
json_detailed() fixed
2017-02-14 17:51:03 +04:00
Sergei Golubchik
e1f0f0dd06
Revert "MDEV-11439 No data type JSON, but CAST(something AS JSON) pretends to work"
...
This reverts commit 1f372cf1de2a15057a09c6936f025f09500c0228.
Wasn't supposed to be pushed just yet.
2017-02-13 18:37:06 +01:00
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