mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
avoid null check on fields where NULL is impossible
(BUG#2393) mysql-test/r/subselect.result: BUG#2393 test suite test ref replaced ref_of_null joining mysql-test/t/subselect.test: BUG#2393 test suite test ref replaced ref_of_null joining sql/item_subselect.cc: avoid null check on fields where NULL is impossible sql/sql_select.cc: convert JT_REF_OR_NULL to JT_REF in case of impossible NULL and protect buffer of rewriting through join_tab->null_ref_key
This commit is contained in:
@ -3240,8 +3240,12 @@ static bool create_ref_for_key(JOIN *join, JOIN_TAB *j, KEYUSE *org_keyuse,
|
||||
keyuse,join->const_table_map,
|
||||
&keyinfo->key_part[i],
|
||||
(char*) key_buff,maybe_null);
|
||||
/* Remmeber if we are going to use REF_OR_NULL */
|
||||
if (keyuse->optimize & KEY_OPTIMIZE_REF_OR_NULL)
|
||||
/*
|
||||
Remmeber if we are going to use REF_OR_NULL
|
||||
But only if field _really_ can be null i.e. we force JT_REF
|
||||
instead of JT_REF_OR_NULL in case if field can't be null
|
||||
*/
|
||||
if (keyuse->optimize & KEY_OPTIMIZE_REF_OR_NULL && maybe_null)
|
||||
null_ref_key= key_buff;
|
||||
key_buff+=keyinfo->key_part[i].store_length;
|
||||
}
|
||||
|
Reference in New Issue
Block a user