mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
Fixed compiler and valgrind warnings
Added missing DBUG_xxx_RETURN statements Fixed some usage of not initialized variables (as found by valgrind) Ensure that we don't remove locked tables used as name locks from open table cache until unlock_table_names() are called. This was fixed by having drop_locked_name() returning any table used as a name lock so that we can free it in unlock_table_names() This will allow Tomas to continue with his work to use namelocks to syncronize things. Note: valgrind still produces a lot of warnings about using not initialized code and shows memory loss errors when running the ndb tests BitKeeper/etc/ignore: added mysql-test/r/*.log client/mysqltest.c: Change type of variables to get rid of compiler warnings More debugging Fix memory leak mysql-test/mysql-test-run.sh: Collect warnings about missing DBUG_RETURN statements mysql-test/r/lock_multi.result: Add test of new code mysql-test/r/ndb_condition_pushdown.result: Drop used tables before test mysql-test/t/lock_multi.test: Add test of new code mysql-test/t/ndb_condition_pushdown.test: Drop used tables before test mysql-test/valgrind.supp: Ignore 'safe' warnings from libz (when used with archive) sql/event.cc: More comments Simplify code Fixed memory leak found by valgrind sql/ha_archive.cc: Remove compiler warnings (Wrong handlerton structure and signed/unsigned comparison) sql/ha_berkeley.cc: Fixed compiler warning sql/ha_blackhole.cc: Fixed compiler warning sql/ha_federated.cc: Fixed compiler warning sql/ha_heap.cc: Fixed compiler warning sql/ha_myisam.cc: Fixed compiler warning sql/ha_myisammrg.cc: Fixed compiler warning sql/ha_ndbcluster.cc: Fixed compiler warnings sql/ha_partition.cc: Fixed compiler warning Fixed error noticed by valgrind in ha_partition::rnd_init() sql/handler.cc: Fixed compiler warning sql/handler.h: Fixed compiler warning sql/item.cc: Fixed compiler warning sql/item_xmlfunc.cc: Fixed warning from valgrind when calling memcpy with wrong address sql/lock.cc: More debugging sql/log.cc: Fixed compiler warning Indentation fixes sql/log.h: Fixed compiler warning sql/mysql_priv.h: Changed prototype for 'drop_locked_tables' sql/opt_range.cc: Indentation fix sql/password.c: Removed compiler warnings sql/set_var.cc: Fixed compiler warning sql/slave.cc: Fixed compiler warning sql/sp_head.cc: Fixed compiler warning sql/sql_acl.cc: Fixed compiler warning sql/sql_analyse.cc: Added missing DBUG_RETURN statements sql/sql_base.cc: Removed de-reference of not initialized pointer More comments drop_locked_tables() changed to not delete tables used for name locking Fixed compiler warnings sql/sql_delete.cc: Fixed usage of not initialized variable (deleted could be referenced in some not common error conditions) sql/sql_parse.cc: Added missing DBUG_VOID_RETURN Simplify code sql/sql_partition.cc: Fixed usage of wrong variable (noticed by valgrind) sql/sql_plugin.cc: Removed compiler warning sql/sql_show.cc: Removed compiler warning sql/sql_table.cc: Ensure that we don't remove locked tables used as name locks from open table cache until unlock_table_names() are called. This was fixed by having drop_locked_name() returning any table used as a name lock so that we can free it in unlock_table_names() This will allow Tomas to continue with his work to use namelocks to syncronize things. Fixed wrong test of 'table_type' (path_length could otherwise be accessed uninitialized) Remove compile warnings about not initialized variables. sql/sql_yacc.yy: Ensure that no_write_to_binlog is properly initialized (Was accessed uninitialized by partition code) sql/table.cc: Removed valgrind warnings (not fatal) Removed compiler warnings sql/tztime.cc: Removed valgrind warning storage/ndb/include/ndbapi/NdbIndexStat.hpp: Removed compiler warning
This commit is contained in:
@@ -176,8 +176,7 @@ err:
|
||||
|
||||
bool test_if_number(NUM_INFO *info, const char *str, uint str_len)
|
||||
{
|
||||
const char *begin, *end = str + str_len;
|
||||
|
||||
const char *begin, *end= str + str_len;
|
||||
DBUG_ENTER("test_if_number");
|
||||
|
||||
/*
|
||||
@@ -186,13 +185,13 @@ bool test_if_number(NUM_INFO *info, const char *str, uint str_len)
|
||||
*/
|
||||
for (; str != end && my_isspace(system_charset_info, *str); str++) ;
|
||||
if (str == end)
|
||||
return 0;
|
||||
DBUG_RETURN(0);
|
||||
|
||||
if (*str == '-')
|
||||
{
|
||||
info->negative = 1;
|
||||
if (++str == end || *str == '0') // converting -0 to a number
|
||||
return 0; // might lose information
|
||||
if (++str == end || *str == '0') // converting -0 to a number
|
||||
DBUG_RETURN(0); // might lose information
|
||||
}
|
||||
else
|
||||
info->negative = 0;
|
||||
@@ -210,33 +209,33 @@ bool test_if_number(NUM_INFO *info, const char *str, uint str_len)
|
||||
int error;
|
||||
info->ullval= (ulonglong) my_strtoll10(begin, &endpos, &error);
|
||||
if (info->integers == 1)
|
||||
return 0; // a single number can't be zerofill
|
||||
DBUG_RETURN(0); // single number can't be zerofill
|
||||
info->maybe_zerofill = 1;
|
||||
return 1; // a zerofill number, or an integer
|
||||
DBUG_RETURN(1); // a zerofill number, or an integer
|
||||
}
|
||||
if (*str == '.' || *str == 'e' || *str == 'E')
|
||||
{
|
||||
if (info->zerofill) // can't be zerofill anymore
|
||||
return 0;
|
||||
if ((str + 1) == end) // number was something like '123[.eE]'
|
||||
if (info->zerofill) // can't be zerofill anymore
|
||||
DBUG_RETURN(0);
|
||||
if ((str + 1) == end) // number was something like '123[.eE]'
|
||||
{
|
||||
char *endpos= (char*) str;
|
||||
int error;
|
||||
info->ullval= (ulonglong) my_strtoll10(begin, &endpos, &error);
|
||||
return 1;
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
if (*str == 'e' || *str == 'E') // number may be something like '1e+50'
|
||||
if (*str == 'e' || *str == 'E') // number may be something like '1e+50'
|
||||
{
|
||||
str++;
|
||||
if (*str != '-' && *str != '+')
|
||||
return 0;
|
||||
DBUG_RETURN(0);
|
||||
for (str++; str != end && my_isdigit(system_charset_info,*str); str++) ;
|
||||
if (str == end)
|
||||
{
|
||||
info->is_float = 1; // we can't use variable decimals here
|
||||
info->is_float = 1; // we can't use variable decimals here
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
for (str++; *(end - 1) == '0'; end--); // jump over zeros at the end
|
||||
if (str == end) // number was something like '123.000'
|
||||
@@ -244,17 +243,17 @@ bool test_if_number(NUM_INFO *info, const char *str, uint str_len)
|
||||
char *endpos= (char*) str;
|
||||
int error;
|
||||
info->ullval= (ulonglong) my_strtoll10(begin, &endpos, &error);
|
||||
return 1;
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
for (; str != end && my_isdigit(system_charset_info,*str); str++)
|
||||
info->decimals++;
|
||||
if (str == end)
|
||||
{
|
||||
info->dval = my_atof(begin);
|
||||
return 1;
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user