mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Changing field::field_name and Item::name to LEX_CSTRING
Benefits of this patch: - Removed a lot of calls to strlen(), especially for field_string - Strings generated by parser are now const strings, less chance of accidently changing a string - Removed a lot of calls with LEX_STRING as parameter (changed to pointer) - More uniform code - Item::name_length was not kept up to date. Now fixed - Several bugs found and fixed (Access to null pointers, access of freed memory, wrong arguments to printf like functions) - Removed a lot of casts from (const char*) to (char*) Changes: - This caused some ABI changes - lex_string_set now uses LEX_CSTRING - Some fucntions are now taking const char* instead of char* - Create_field::change and after changed to LEX_CSTRING - handler::connect_string, comment and engine_name() changed to LEX_CSTRING - Checked printf() related calls to find bugs. Found and fixed several errors in old code. - A lot of changes from LEX_STRING to LEX_CSTRING, especially related to parsing and events. - Some changes from LEX_STRING and LEX_STRING & to LEX_CSTRING* - Some changes for char* to const char* - Added printf argument checking for my_snprintf() - Introduced null_clex_str, star_clex_string, temp_lex_str to simplify code - Added item_empty_name and item_used_name to be able to distingush between items that was given an empty name and items that was not given a name This is used in sql_yacc.yy to know when to give an item a name. - select table_name."*' is not anymore same as table_name.* - removed not used function Item::rename() - Added comparision of item->name_length before some calls to my_strcasecmp() to speed up comparison - Moved Item_sp_variable::make_field() from item.h to item.cc - Some minimal code changes to avoid copying to const char * - Fixed wrong error message in wsrep_mysql_parse() - Fixed wrong code in find_field_in_natural_join() where real_item() was set when it shouldn't - ER_ERROR_ON_RENAME was used with extra arguments. - Removed some (wrong) ER_OUTOFMEMORY, as alloc_root will already give the error. TODO: - Check possible unsafe casts in plugin/auth_examples/qa_auth_interface.c - Change code to not modify LEX_CSTRING for database name (as part of lower_case_table_names)
This commit is contained in:
@ -865,7 +865,6 @@ get_binlog_list(MEM_ROOT *memroot)
|
||||
!(e->name= strmake_root(memroot, fname, length)))
|
||||
{
|
||||
mysql_bin_log.unlock_index();
|
||||
my_error(ER_OUTOFMEMORY, MYF(0), length + 1 + sizeof(*e));
|
||||
DBUG_RETURN(NULL);
|
||||
}
|
||||
e->next= current_list;
|
||||
@ -3045,7 +3044,7 @@ int start_slave(THD* thd , Master_info* mi, bool net_report)
|
||||
{
|
||||
/* connection was deleted while we waited for lock_slave_threads */
|
||||
mi->unlock_slave_threads();
|
||||
my_error(WARN_NO_MASTER_INFO, mi->connection_name.length,
|
||||
my_error(WARN_NO_MASTER_INFO, MYF(0), (int) mi->connection_name.length,
|
||||
mi->connection_name.str);
|
||||
DBUG_RETURN(-1);
|
||||
}
|
||||
@ -3303,7 +3302,7 @@ int reset_slave(THD *thd, Master_info* mi)
|
||||
{
|
||||
/* connection was deleted while we waited for lock_slave_threads */
|
||||
mi->unlock_slave_threads();
|
||||
my_error(WARN_NO_MASTER_INFO, mi->connection_name.length,
|
||||
my_error(WARN_NO_MASTER_INFO, MYF(0), (int) mi->connection_name.length,
|
||||
mi->connection_name.str);
|
||||
DBUG_RETURN(-1);
|
||||
}
|
||||
@ -3445,7 +3444,7 @@ static bool get_string_parameter(char *to, const char *from, size_t length,
|
||||
uint from_numchars= cs->cset->numchars(cs, from, from + from_length);
|
||||
if (from_numchars > length / cs->mbmaxlen)
|
||||
{
|
||||
my_error(ER_WRONG_STRING_LENGTH, MYF(0), from, name, length / cs->mbmaxlen);
|
||||
my_error(ER_WRONG_STRING_LENGTH, MYF(0), from, name, (int) (length / cs->mbmaxlen));
|
||||
return 1;
|
||||
}
|
||||
memcpy(to, from, from_length+1);
|
||||
@ -3514,7 +3513,7 @@ bool change_master(THD* thd, Master_info* mi, bool *master_info_added)
|
||||
{
|
||||
/* connection was deleted while we waited for lock_slave_threads */
|
||||
mi->unlock_slave_threads();
|
||||
my_error(WARN_NO_MASTER_INFO, mi->connection_name.length,
|
||||
my_error(WARN_NO_MASTER_INFO, MYF(0), (int) mi->connection_name.length,
|
||||
mi->connection_name.str);
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
|
Reference in New Issue
Block a user