mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
Merge
This commit is contained in:
@@ -376,7 +376,7 @@ where
|
|||||||
D1.a= t1.a;
|
D1.a= t1.a;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 10 Using where
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 10 Using where
|
||||||
1 PRIMARY <derived2> ref key0 key0 5 test.t1.a 10
|
1 PRIMARY <derived2> hash_ALL key0 #hash#key0 5 test.t1.a 100 Using join buffer (flat, BNLH join)
|
||||||
2 DERIVED t2 ALL NULL NULL NULL NULL 100 Using filesort
|
2 DERIVED t2 ALL NULL NULL NULL NULL 100 Using filesort
|
||||||
set join_cache_level=@tmp_jcl;
|
set join_cache_level=@tmp_jcl;
|
||||||
set optimizer_switch=@tmp_os;
|
set optimizer_switch=@tmp_os;
|
||||||
|
@@ -10549,6 +10549,19 @@ uint check_join_cache_usage(JOIN_TAB *tab,
|
|||||||
cache_level--;
|
cache_level--;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Don't use BKA for materialized tables. We could actually have a
|
||||||
|
meaningful use of BKA when linked join buffers are used.
|
||||||
|
|
||||||
|
The problem is, the temp.table is not filled (actually not even opened
|
||||||
|
properly) yet, and this doesn't let us call
|
||||||
|
handler->multi_range_read_info(). It is possible to come up with
|
||||||
|
estimates, etc. without acessing the table, but it seems not to worth the
|
||||||
|
effort now.
|
||||||
|
*/
|
||||||
|
if (tab->table->pos_in_table_list->is_materialized_derived())
|
||||||
|
no_bka_cache= true;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Don't use join buffering if we're dictated not to by no_jbuf_after
|
Don't use join buffering if we're dictated not to by no_jbuf_after
|
||||||
(This is not meaningfully used currently)
|
(This is not meaningfully used currently)
|
||||||
@@ -10615,20 +10628,7 @@ uint check_join_cache_usage(JOIN_TAB *tab,
|
|||||||
if (tab->ref.is_access_triggered())
|
if (tab->ref.is_access_triggered())
|
||||||
goto no_join_cache;
|
goto no_join_cache;
|
||||||
|
|
||||||
/*
|
if (!tab->is_ref_for_hash_join() && !no_bka_cache)
|
||||||
Don't use BKA for materialized tables. We could actually have a
|
|
||||||
meaningful use of BKA when linked join buffers are used.
|
|
||||||
|
|
||||||
The problem is, the temp.table is not filled (actually not even opened
|
|
||||||
properly) yet, and this doesn't let us call
|
|
||||||
handler->multi_range_read_info(). It is possible to come up with
|
|
||||||
estimates, etc. without acessing the table, but it seems not to worth the
|
|
||||||
effort now.
|
|
||||||
*/
|
|
||||||
if (tab->table->pos_in_table_list->is_materialized_derived())
|
|
||||||
goto no_join_cache;
|
|
||||||
|
|
||||||
if (!tab->is_ref_for_hash_join())
|
|
||||||
{
|
{
|
||||||
flags= HA_MRR_NO_NULL_ENDPOINTS | HA_MRR_SINGLE_POINT;
|
flags= HA_MRR_NO_NULL_ENDPOINTS | HA_MRR_SINGLE_POINT;
|
||||||
if (tab->table->covering_keys.is_set(tab->ref.key))
|
if (tab->table->covering_keys.is_set(tab->ref.key))
|
||||||
|
Reference in New Issue
Block a user