mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
[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:
@ -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);
|
||||
|
Reference in New Issue
Block a user