1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

BUG#901399: Wrong result (extra row) with semijoin=ON, materialization=OFF, optimizer_prune_level=0

- Correctly handle plan refinement stage for LooseScan plans: run create_ref_for_key() if LooseScan 
  plan includes a ref access, and if we don't have any fixed key components, switch to a full index scan.
This commit is contained in:
Sergey Petrunya
2011-12-16 03:44:25 +04:00
parent 464278246a
commit 04e9004fa3
7 changed files with 121 additions and 14 deletions

View File

@ -296,7 +296,16 @@ typedef struct st_join_table {
double partial_join_cardinality;
table_map dependent,key_dependent;
uint use_quick,index;
/*
1 - use quick select
2 - use "Range checked for each record"
*/
uint use_quick;
/*
Index to use. Note: this is valid only for 'index' access, but not range or
ref access.
*/
uint index;
uint status; ///< Save status for cache
uint used_fields;
ulong used_fieldlength;