Commit 43fa8e0b authored by Rucha Deodhar's avatar Rucha Deodhar

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.
parent 4730a698
......@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment