mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
BUG#15024: get_best_covering_ror_intersect() tries to build ROR-intersection
by starting with an empty index set and adding indexes to it until it becomes covering. If the set becomes covering after adding the first index, return NULL and don't try constructing ROR-intersection of one index (which caused a crash)
This commit is contained in:
parent
dc8a5d54bd
commit
08a4868bb6
1 changed files with 4 additions and 4 deletions
|
@ -3136,10 +3136,10 @@ TRP_ROR_INTERSECT *get_best_covering_ror_intersect(PARAM *param,
|
|||
/* F=F-covered by first(I) */
|
||||
bitmap_union(&covered_fields, &(*ror_scan_mark)->covered_fields);
|
||||
all_covered= bitmap_is_subset(¶m->needed_fields, &covered_fields);
|
||||
} while (!all_covered && (++ror_scan_mark < ror_scans_end));
|
||||
|
||||
if (!all_covered)
|
||||
DBUG_RETURN(NULL); /* should not happen actually */
|
||||
} while ((++ror_scan_mark < ror_scans_end) && !all_covered);
|
||||
|
||||
if (!all_covered || (ror_scan_mark - tree->ror_scans) == 1)
|
||||
DBUG_RETURN(NULL);
|
||||
|
||||
/*
|
||||
Ok, [tree->ror_scans .. ror_scan) holds covering index_intersection with
|
||||
|
|
Loading…
Reference in a new issue