Commit graph

129 commits

Author SHA1 Message Date
Marko Mäkelä
583a745299 Merge 10.6 into 10.11 2023-11-21 10:23:11 +02:00
Marko Mäkelä
0ead203111 Merge 10.5 into 10.6 2023-11-21 09:18:31 +02:00
Sergei Golubchik
8bbf6697cf MDEV-24784 JSON_ARRAYAGG charset issue
set the proper charset for a temporary result
2023-11-19 13:24:27 +01:00
Oleksandr Byelkin
04d9a46c41 Merge branch '10.6' into 10.10 2023-11-08 16:23:30 +01:00
Oleksandr Byelkin
b83c379420 Merge branch '10.5' into 10.6 2023-11-08 15:57:05 +01:00
Oleksandr Byelkin
6cfd2ba397 Merge branch '10.4' into 10.5 2023-11-08 12:59:00 +01:00
Oleksandr Byelkin
d594f1e531 Removing MDEV-27871 because it is not a bug
Part 1
2023-10-13 14:09:22 +02:00
Oleksandr Byelkin
34a8e78581 Merge branch '10.6' into 10.9 2023-08-04 08:01:06 +02:00
Oleksandr Byelkin
6bf8483cac Merge branch '10.5' into 10.6 2023-08-01 15:08:52 +02:00
Oleksandr Byelkin
f52954ef42 Merge commit '10.4' into 10.5 2023-07-20 11:54:52 +02:00
Rucha Deodhar
23e252aef2 MDEV-23187 misses resetting collation connection
MDEV-23187 misses resetting collation connection causing test failures for
10.5+ bugs.
2023-07-05 16:35:01 +05:30
Rucha Deodhar
b7b8a9ee43 MDEV-23187: Assorted assertion failures in json_find_path with certain
collations

Fix by Alexey Botchkov

The 'value_len' is calculated wrong for the multibyte charsets. In the
read_strn() function we get the length of the string with the final ' " '
character. So have to subtract it's length from the value_len. And the
length of '1' isn't correct for the ucs2 charset (must be 2).
2023-05-16 01:52:16 +05:30
Rucha Deodhar
3b34454c9d MDEV-23187: Assorted assertion failures in json_find_path with certain
collations

Analysis:
When we have negative index, the value in array_counter[] array is going to
be -1 at some point ( because in case of negative index in json path, the
initial value for a path with negative index is -<size_of_array>, and as we
move forward in array while parsing it and finding path, this value
increments). Since SKIPPED_STEP_MARK, is maximum uint value, it gets
compared to some int value in the array and eventually equates to -1
and messes with path.
Fix:
Make SKIPPED_STEP_MARK maximum of INT32.
2023-05-15 12:17:30 +05:30
Marko Mäkelä
d8997f875e Merge 10.8 into 10.9 2023-04-28 13:39:33 +03:00
Marko Mäkelä
7d967423fe MDEV-31147 json_normalize does not work correctly with MSAN build
json_normalize_number(): Avoid accessing str past str_len.
The function would seem to work incorrectly when some digits are
not followed by a decimal point (.) or an exponent (E or e).
2023-04-28 12:15:45 +03:00
Marko Mäkelä
44281b88f3 Merge 10.8 into 10.9 2023-04-14 11:32:36 +03:00
Marko Mäkelä
5bada1246d Merge 10.5 into 10.6 2023-04-11 16:15:19 +03:00
Oleksandr Byelkin
ac5a534a4c Merge remote-tracking branch '10.4' into 10.5 2023-03-31 21:32:41 +02:00
Marko Mäkelä
0d55914d96 Merge 10.8 into 10.9 2023-02-16 10:25:34 +02:00
Marko Mäkelä
96a3b11d13 Merge 10.5 into 10.6 2023-02-14 15:23:23 +02:00
Weijun Huang
a80eb9832e MDEV-24538: JSON_LENGTH does not return error upon wrong number of parameters 2023-02-14 12:03:28 +11:00
Weijun Huang
badf6de171 MDEV-30412: JSON_OBJECTAGG doesn't escape double quote in key 2023-02-14 11:55:11 +11:00
Oleksandr Byelkin
08d4968404 Merge branch '10.8' into 10.9 2023-01-18 16:39:11 +01:00
Oleksandr Byelkin
a01abad619 Merge branch '10.5' into 10.6 2023-01-18 16:33:06 +01:00
Rucha Deodhar
ff72a9431a MDEV-26392: Crash with json_get_path_next and 10.5.12
Analysis:
When we skip level when path is found, it changes the state of the json
engine. This breaks the sequence for json_get_path_next() which is called at
the end to ensure json document is valid and leads to crash.
Fix:
Use json_scan_next() at the end to check if json document has correct
syntax (is valid).
2023-01-18 16:28:50 +05:30
Rucha Deodhar
b915b96f72 MDEV-30304: Json Range only affects first row of the result set
Analysis:
Parsing json path happens only once. When paring, we set types of path
(types_used) to use later. If the path type has range or wild card, only
then multiple values get added to the result set.
However for each row in the table, types_used still gets
overwritten to default (no multiple values) and is also not set again
(because path is already parsed). Since multiple values depend on the
type of path, they dont get added to result set either.

Fix:
set default for types_used only if path is not parsed already.
2023-01-17 18:24:16 +05:30
Marko Mäkelä
5d5735c181 Merge 10.8 into 10.9 2023-01-13 11:22:29 +02:00
Marko Mäkelä
3386b30975 Merge 10.5 into 10.6 2023-01-13 10:45:41 +02:00
Marko Mäkelä
73ecab3d26 Merge 10.4 into 10.5 2023-01-13 10:18:30 +02:00
Weijun-H
12618cfb28 MDEV-19160 json_pretty() alias for json_detailed() 2023-01-12 17:51:42 +00:00
Rucha Deodhar
17920291a6 fixup for MDEV-19160 2023-01-12 20:11:19 +05:30
Monty
c08dba7b28 Fixed failing test main.func_json 2023-01-12 02:48:33 +02:00
Alexander Freiherr von Buddenbrock
0225159a8d MDEV-29381: SON paths containing dashes are reported as syntax errors in
procedures

MDEV-22224 caused the parsing of keys with hyphens to break by setting
the state transitions for parsing keys to JE_SYN (syntax error) when
they encounter a hyphen. However json key names may contain hyphens and
still be considered valid json.

This patch changes the state transition table so that key names with
hyphens remain valid. Note that unquoted key names in paths like
$.key-name are also valid again. This restores the previous behaviour
when hyphens were considered part of the P_ETC character class.
2023-01-06 12:55:51 +05:30
Weijun-H
111a752b96 MDEV-19160 JSON_DETAILED output unnecessarily verbose 2023-01-05 13:12:24 +00:00
Marko Mäkelä
a8e4540476 Merge 10.8 into 10.9 2022-09-21 10:07:09 +03:00
Marko Mäkelä
44fd2c4b24 Merge 10.5 into 10.6 2022-09-20 16:53:20 +03:00
Alexander Barkov
fe844c16b6 Merge remote-tracking branch 'origin/10.4' into 10.5 2022-09-14 16:24:51 +04:00
Marko Mäkelä
18795f5512 Merge 10.3 into 10.4 2022-09-13 16:36:38 +03:00
Alexander Barkov
f1544424de MDEV-29446 Change SHOW CREATE TABLE to display default collation 2022-09-12 22:10:39 +04:00
Marko Mäkelä
d3099985fb Merge 10.8 into 10.9 2022-08-29 14:02:29 +03:00
Marko Mäkelä
d65a2b7bde Merge 10.5 into 10.6 2022-08-22 14:02:43 +03:00
Marko Mäkelä
1d90d6874d Merge 10.4 into 10.5 2022-08-22 13:38:40 +03:00
Marko Mäkelä
36d173e523 Merge 10.3 into 10.4 2022-08-22 12:34:42 +03:00
Oleksandr Byelkin
8cb75b9863 Merge branch '10.9' into bb-10.9-release 2022-08-15 13:19:15 +02:00
Oleksandr Byelkin
39cafb666b Merge branch '10.6' into bb-10.6-release 2022-08-15 11:21:39 +02:00
Oleksandr Byelkin
8c21dc52ee Merge branch '10.3' into bb-10.3-release 2022-08-15 10:11:23 +02:00
qggcs
820175115e MDEV-29264: JSON function overflow error based on LONGTEXT field
Analysis: The JSON functions(JSON_ARRAY[OBJECT|ARRAY_APPEND|ARRAY_INSERT|INSERT|SET|REPLACE]) result is truncated when the function is called based on LONGTEXT field. The overflow occurs when computing the result length due to the LONGTEXT max length is same as uint32 max length. It lead to wrong result length.
Fix: Add static_cast<ulonglong> to avoid uint32 overflow and fix the arguments used.
2022-08-13 12:48:35 +05:30
Rucha Deodhar
d48428e99a MDEV-27151: JSON_VALUE() does not parse NULL properties properly
Analysis: JSON_VALUE() returns "null" string instead of NULL pointer.
Fix: When the type is JSON_VALUE_NULL (which is also a scalar) set
null_value to true and return 0 instead of returning string.
2022-08-11 15:01:15 +05:30
Rucha Deodhar
11d6de7032 MDEV-29212: json_overlaps() does not check nested key-value pair correctly
Analysis: JSON_OVERLAPS() does not check nested key-value pair completely.
If there is nested object, then it only scans and validates if two json values
overlap until one of the value (which is of type object) is exhausted.
This does not really check if the two values of keys are exacly the same, instead
it only checks if key-value pair of one is present in key-value pair of the
other
Fix: Normalize the values (which are of type object) and compare
using string compare. This will validate if two values
are exactly the same.
2022-08-11 13:47:25 +05:30
Oleksandr Byelkin
c442e1ae21 Merge branch '10.5' into 10.6 2022-08-10 13:06:08 +02:00