mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-28319: Assertion `cur_step->type & JSON_PATH_KEY' failed in json_find_path
Analysis: When trying to find path and handling the match for path, value at current index is not set to 0 for array_counters. This causes wrong current step value which eventually causes wrong cur_step->type value. Fix: Set the value at current index for array_counters to 0.
This commit is contained in:
@@ -1060,5 +1060,11 @@ collation(name)
|
||||
utf8mb4_bin
|
||||
DROP VIEW v1;
|
||||
#
|
||||
# MDEV-28319: Assertion `cur_step->type & JSON_PATH_KEY' failed in json_find_path
|
||||
#
|
||||
SELECT * FROM JSON_TABLE('{"foo":{"bar":1},"qux":2}', '$' COLUMNS(c1 VARCHAR(8) PATH '$[0]', c2 CHAR(8) PATH '$.*.x')) AS js;
|
||||
c1 c2
|
||||
NULL NULL
|
||||
#
|
||||
# End of 10.9 tests
|
||||
#
|
||||
|
@@ -909,6 +909,12 @@ SHOW CREATE VIEW v1;
|
||||
SELECT collation(name) FROM v1;
|
||||
DROP VIEW v1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-28319: Assertion `cur_step->type & JSON_PATH_KEY' failed in json_find_path
|
||||
--echo #
|
||||
|
||||
SELECT * FROM JSON_TABLE('{"foo":{"bar":1},"qux":2}', '$' COLUMNS(c1 VARCHAR(8) PATH '$[0]', c2 CHAR(8) PATH '$.*.x')) AS js;
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.9 tests
|
||||
--echo #
|
||||
|
@@ -1374,7 +1374,6 @@ static int handle_match(json_engine_t *je, json_path_t *p,
|
||||
return json_skip_level(je);
|
||||
|
||||
array_counters[next_step - p->steps]= 0;
|
||||
|
||||
if (next_step->type & JSON_PATH_ARRAY)
|
||||
{
|
||||
int array_size;
|
||||
|
Reference in New Issue
Block a user