mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-8010 - Avoid sql_alloc() in Items (Patch #1)
Added mandatory thd parameter to Item (and all derivative classes) constructor. Added thd parameter to all routines that may create items. Also removed "current_thd" from Item::Item. This reduced number of pthread_getspecific() calls from 290 to 177 per OLTP RO transaction.
This commit is contained in:
@ -1166,23 +1166,23 @@ int collect_ulonglong(ulonglong *element,
|
||||
} // collect_ulonglong
|
||||
|
||||
|
||||
bool analyse::change_columns(List<Item> &field_list)
|
||||
bool analyse::change_columns(THD *thd, List<Item> &field_list)
|
||||
{
|
||||
field_list.empty();
|
||||
|
||||
func_items[0] = new Item_proc_string("Field_name", 255);
|
||||
func_items[1] = new Item_proc_string("Min_value", 255);
|
||||
func_items[0] = new Item_proc_string(thd, "Field_name", 255);
|
||||
func_items[1] = new Item_proc_string(thd, "Min_value", 255);
|
||||
func_items[1]->maybe_null = 1;
|
||||
func_items[2] = new Item_proc_string("Max_value", 255);
|
||||
func_items[2] = new Item_proc_string(thd, "Max_value", 255);
|
||||
func_items[2]->maybe_null = 1;
|
||||
func_items[3] = new Item_proc_int("Min_length");
|
||||
func_items[4] = new Item_proc_int("Max_length");
|
||||
func_items[5] = new Item_proc_int("Empties_or_zeros");
|
||||
func_items[6] = new Item_proc_int("Nulls");
|
||||
func_items[7] = new Item_proc_string("Avg_value_or_avg_length", 255);
|
||||
func_items[8] = new Item_proc_string("Std", 255);
|
||||
func_items[3] = new Item_proc_int(thd, "Min_length");
|
||||
func_items[4] = new Item_proc_int(thd, "Max_length");
|
||||
func_items[5] = new Item_proc_int(thd, "Empties_or_zeros");
|
||||
func_items[6] = new Item_proc_int(thd, "Nulls");
|
||||
func_items[7] = new Item_proc_string(thd, "Avg_value_or_avg_length", 255);
|
||||
func_items[8] = new Item_proc_string(thd, "Std", 255);
|
||||
func_items[8]->maybe_null = 1;
|
||||
func_items[9] = new Item_proc_string("Optimal_fieldtype",
|
||||
func_items[9] = new Item_proc_string(thd, "Optimal_fieldtype",
|
||||
MY_MAX(64, output_str_length));
|
||||
|
||||
for (uint i = 0; i < array_elements(func_items); i++)
|
||||
|
Reference in New Issue
Block a user