mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-31194: Server crash or assertion failure with join_cache_level=4
The problem, introduced in patch for MDEV-26301: When check_join_cache_usage() decides not to use join buffer, it must adjust the access method accordingly. For BNL-H joins this means switching from pseudo-"ref access"(with index=MAX_KEY) to some other access method. Failing to do this will cause assertions down the line when code that is not aware of BNL-H will try to initialize index use for ref access with index=MAX_KEY. The fix is to follow the regular code path to disable the join buffer for the join_tab ("goto no_join_cache") instead of just returning from check_join_cache_usage().
This commit is contained in:
@ -12873,7 +12873,7 @@ uint check_join_cache_usage(JOIN_TAB *tab,
|
||||
join->return_tab= 0;
|
||||
|
||||
if (tab->no_forced_join_cache)
|
||||
return 0;
|
||||
goto no_join_cache;
|
||||
|
||||
/*
|
||||
Don't use join cache if @@join_cache_level==0 or this table is the first
|
||||
|
Reference in New Issue
Block a user