[SHOW] EXPLAIN UPDATE/DELETE, code re-structuring
- Handle another specific case where there the JOIN never had a query plan, but had multiple join->cleanup(full=true) calls - The idea that there can only be MAX_TABLES subuqeries/unions was wrong. Switch QPF_query to using a Dynamic_array. = make Dynamic_array template support size growth. its underlying DYNAMIC_ARRAY supports it. (this part will need more polishing)
This commit is contained in:
parent
af5e128e50
commit
cebdf3de2e
4 changed files with 55 additions and 16 deletions
|
@ -106,6 +106,7 @@ public:
|
|||
|
||||
Elem& at(size_t idx)
|
||||
{
|
||||
DBUG_ASSERT(idx < array.elements);
|
||||
return *(((Elem*)array.buffer) + idx);
|
||||
}
|
||||
|
||||
|
@ -139,6 +140,23 @@ public:
|
|||
array.elements= n;
|
||||
}
|
||||
|
||||
bool resize(size_t new_size, Elem default_val)
|
||||
{
|
||||
size_t old_size= elements();
|
||||
if (allocate_dynamic(&array, new_size))
|
||||
return true;
|
||||
|
||||
if (new_size > old_size)
|
||||
{
|
||||
set_dynamic(&array, (uchar*)&default_val, new_size - 1);
|
||||
/*for (size_t i= old_size; i != new_size; i++)
|
||||
{
|
||||
at(i)= default_val;
|
||||
}*/
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
~Dynamic_array()
|
||||
{
|
||||
delete_dynamic(&array);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue