mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
MDEV-25380: JSON_TABLE: Assertion `join->best_read < double(1.797...) fails
The query used a subquery of this form:
SELECT ...
WHERE
EXISTS( SELECT ...
FROM JSON_TABLE(outer_ref, ..) as JT
WHERE trivial_correlation_cond)
EXISTS-to-IN conversion code was unable to see that the subquery will
still be correlated after the trivial_correlation is removed, which
eventually caused a crash due to inability to construct a query plan.
Fixed by making Item_subselect::walk() also walk arguments of Table
Functions.
This commit is contained in:
committed by
Alexey Botchkov
parent
eb2550ee78
commit
4a10dd0253
@@ -200,6 +200,9 @@ public:
|
||||
/*** Name resolution functions ***/
|
||||
int setup(THD *thd, TABLE_LIST *sql_table, SELECT_LEX *s_lex);
|
||||
|
||||
int walk_items(Item_processor processor, bool walk_subquery,
|
||||
void *argument);
|
||||
|
||||
/*** Functions for interaction with the Query Optimizer ***/
|
||||
void fix_after_pullout(TABLE_LIST *sql_table,
|
||||
st_select_lex *new_parent, bool merge);
|
||||
|
||||
Reference in New Issue
Block a user