Commit ccb2f338 authored by monty@mysql.com's avatar monty@mysql.com

Things missing in last changset

After merge fixes
Don't give duplicate warnings for some ::store() functions
parent b9e502a9
...@@ -692,6 +692,7 @@ then ...@@ -692,6 +692,7 @@ then
fi fi
MYSQL_CLIENT_TEST="$MYSQL_CLIENT_TEST --no-defaults --testcase --user=root --socket=$MASTER_MYSOCK --port=$MYSQL_TCP_PORT --silent" MYSQL_CLIENT_TEST="$MYSQL_CLIENT_TEST --no-defaults --testcase --user=root --socket=$MASTER_MYSOCK --port=$MYSQL_TCP_PORT --silent"
MYSQL_DUMP="$MYSQL_DUMP --no-defaults -uroot --socket=$MASTER_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLDUMP_OPT"
MYSQL_BINLOG="$MYSQL_BINLOG --no-defaults --local-load=$MYSQL_TMP_DIR --character-sets-dir=$CHARSETSDIR $EXTRA_MYSQLBINLOG_OPT" MYSQL_BINLOG="$MYSQL_BINLOG --no-defaults --local-load=$MYSQL_TMP_DIR --character-sets-dir=$CHARSETSDIR $EXTRA_MYSQLBINLOG_OPT"
MYSQL_FIX_SYSTEM_TABLES="$MYSQL_FIX_SYSTEM_TABLES --no-defaults --host=localhost --port=$MASTER_MYPORT --socket=$MASTER_MYSOCK --user=root --password=$DBPASSWD --basedir=$BASEDIR --bindir=$CLIENT_BINDIR --verbose" MYSQL_FIX_SYSTEM_TABLES="$MYSQL_FIX_SYSTEM_TABLES --no-defaults --host=localhost --port=$MASTER_MYPORT --socket=$MASTER_MYSOCK --user=root --password=$DBPASSWD --basedir=$BASEDIR --bindir=$CLIENT_BINDIR --verbose"
MYSQL="$MYSQL --host=localhost --port=$MASTER_MYPORT --socket=$MASTER_MYSOCK --user=root --password=$DBPASSWD" MYSQL="$MYSQL --host=localhost --port=$MASTER_MYPORT --socket=$MASTER_MYSOCK --user=root --password=$DBPASSWD"
......
...@@ -2666,7 +2666,6 @@ Warning 1264 Out of range value adjusted for column 'c4' at row 1 ...@@ -2666,7 +2666,6 @@ Warning 1264 Out of range value adjusted for column 'c4' at row 1
Warning 1264 Out of range value adjusted for column 'c5' at row 1 Warning 1264 Out of range value adjusted for column 'c5' at row 1
Warning 1264 Out of range value adjusted for column 'c6' at row 1 Warning 1264 Out of range value adjusted for column 'c6' at row 1
Warning 1264 Out of range value adjusted for column 'c7' at row 1 Warning 1264 Out of range value adjusted for column 'c7' at row 1
Note 1265 Data truncated for column 'c12' at row 1
Warning 1264 Out of range value adjusted for column 'c12' at row 1 Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ; execute my_select ;
c1 127 c1 127
...@@ -2717,7 +2716,6 @@ Warning 1264 Out of range value adjusted for column 'c4' at row 1 ...@@ -2717,7 +2716,6 @@ Warning 1264 Out of range value adjusted for column 'c4' at row 1
Warning 1264 Out of range value adjusted for column 'c5' at row 1 Warning 1264 Out of range value adjusted for column 'c5' at row 1
Warning 1264 Out of range value adjusted for column 'c6' at row 1 Warning 1264 Out of range value adjusted for column 'c6' at row 1
Warning 1264 Out of range value adjusted for column 'c7' at row 1 Warning 1264 Out of range value adjusted for column 'c7' at row 1
Note 1265 Data truncated for column 'c12' at row 1
Warning 1264 Out of range value adjusted for column 'c12' at row 1 Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ; execute my_select ;
c1 -128 c1 -128
......
...@@ -2649,7 +2649,6 @@ Warning 1264 Out of range value adjusted for column 'c4' at row 1 ...@@ -2649,7 +2649,6 @@ Warning 1264 Out of range value adjusted for column 'c4' at row 1
Warning 1264 Out of range value adjusted for column 'c5' at row 1 Warning 1264 Out of range value adjusted for column 'c5' at row 1
Warning 1264 Out of range value adjusted for column 'c6' at row 1 Warning 1264 Out of range value adjusted for column 'c6' at row 1
Warning 1264 Out of range value adjusted for column 'c7' at row 1 Warning 1264 Out of range value adjusted for column 'c7' at row 1
Note 1265 Data truncated for column 'c12' at row 1
Warning 1264 Out of range value adjusted for column 'c12' at row 1 Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ; execute my_select ;
c1 127 c1 127
...@@ -2700,7 +2699,6 @@ Warning 1264 Out of range value adjusted for column 'c4' at row 1 ...@@ -2700,7 +2699,6 @@ Warning 1264 Out of range value adjusted for column 'c4' at row 1
Warning 1264 Out of range value adjusted for column 'c5' at row 1 Warning 1264 Out of range value adjusted for column 'c5' at row 1
Warning 1264 Out of range value adjusted for column 'c6' at row 1 Warning 1264 Out of range value adjusted for column 'c6' at row 1
Warning 1264 Out of range value adjusted for column 'c7' at row 1 Warning 1264 Out of range value adjusted for column 'c7' at row 1
Note 1265 Data truncated for column 'c12' at row 1
Warning 1264 Out of range value adjusted for column 'c12' at row 1 Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ; execute my_select ;
c1 -128 c1 -128
......
...@@ -2650,7 +2650,6 @@ Warning 1264 Out of range value adjusted for column 'c4' at row 1 ...@@ -2650,7 +2650,6 @@ Warning 1264 Out of range value adjusted for column 'c4' at row 1
Warning 1264 Out of range value adjusted for column 'c5' at row 1 Warning 1264 Out of range value adjusted for column 'c5' at row 1
Warning 1264 Out of range value adjusted for column 'c6' at row 1 Warning 1264 Out of range value adjusted for column 'c6' at row 1
Warning 1264 Out of range value adjusted for column 'c7' at row 1 Warning 1264 Out of range value adjusted for column 'c7' at row 1
Note 1265 Data truncated for column 'c12' at row 1
Warning 1264 Out of range value adjusted for column 'c12' at row 1 Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ; execute my_select ;
c1 127 c1 127
...@@ -2701,7 +2700,6 @@ Warning 1264 Out of range value adjusted for column 'c4' at row 1 ...@@ -2701,7 +2700,6 @@ Warning 1264 Out of range value adjusted for column 'c4' at row 1
Warning 1264 Out of range value adjusted for column 'c5' at row 1 Warning 1264 Out of range value adjusted for column 'c5' at row 1
Warning 1264 Out of range value adjusted for column 'c6' at row 1 Warning 1264 Out of range value adjusted for column 'c6' at row 1
Warning 1264 Out of range value adjusted for column 'c7' at row 1 Warning 1264 Out of range value adjusted for column 'c7' at row 1
Note 1265 Data truncated for column 'c12' at row 1
Warning 1264 Out of range value adjusted for column 'c12' at row 1 Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ; execute my_select ;
c1 -128 c1 -128
......
...@@ -2586,7 +2586,6 @@ Warning 1264 Out of range value adjusted for column 'c4' at row 1 ...@@ -2586,7 +2586,6 @@ Warning 1264 Out of range value adjusted for column 'c4' at row 1
Warning 1264 Out of range value adjusted for column 'c5' at row 1 Warning 1264 Out of range value adjusted for column 'c5' at row 1
Warning 1264 Out of range value adjusted for column 'c6' at row 1 Warning 1264 Out of range value adjusted for column 'c6' at row 1
Warning 1264 Out of range value adjusted for column 'c7' at row 1 Warning 1264 Out of range value adjusted for column 'c7' at row 1
Note 1265 Data truncated for column 'c12' at row 1
Warning 1264 Out of range value adjusted for column 'c12' at row 1 Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ; execute my_select ;
c1 127 c1 127
...@@ -2637,7 +2636,6 @@ Warning 1264 Out of range value adjusted for column 'c4' at row 1 ...@@ -2637,7 +2636,6 @@ Warning 1264 Out of range value adjusted for column 'c4' at row 1
Warning 1264 Out of range value adjusted for column 'c5' at row 1 Warning 1264 Out of range value adjusted for column 'c5' at row 1
Warning 1264 Out of range value adjusted for column 'c6' at row 1 Warning 1264 Out of range value adjusted for column 'c6' at row 1
Warning 1264 Out of range value adjusted for column 'c7' at row 1 Warning 1264 Out of range value adjusted for column 'c7' at row 1
Note 1265 Data truncated for column 'c12' at row 1
Warning 1264 Out of range value adjusted for column 'c12' at row 1 Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ; execute my_select ;
c1 -128 c1 -128
...@@ -5597,7 +5595,6 @@ Warning 1264 Out of range value adjusted for column 'c4' at row 1 ...@@ -5597,7 +5595,6 @@ Warning 1264 Out of range value adjusted for column 'c4' at row 1
Warning 1264 Out of range value adjusted for column 'c5' at row 1 Warning 1264 Out of range value adjusted for column 'c5' at row 1
Warning 1264 Out of range value adjusted for column 'c6' at row 1 Warning 1264 Out of range value adjusted for column 'c6' at row 1
Warning 1264 Out of range value adjusted for column 'c7' at row 1 Warning 1264 Out of range value adjusted for column 'c7' at row 1
Note 1265 Data truncated for column 'c12' at row 1
Warning 1264 Out of range value adjusted for column 'c12' at row 1 Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ; execute my_select ;
c1 127 c1 127
...@@ -5648,7 +5645,6 @@ Warning 1264 Out of range value adjusted for column 'c4' at row 1 ...@@ -5648,7 +5645,6 @@ Warning 1264 Out of range value adjusted for column 'c4' at row 1
Warning 1264 Out of range value adjusted for column 'c5' at row 1 Warning 1264 Out of range value adjusted for column 'c5' at row 1
Warning 1264 Out of range value adjusted for column 'c6' at row 1 Warning 1264 Out of range value adjusted for column 'c6' at row 1
Warning 1264 Out of range value adjusted for column 'c7' at row 1 Warning 1264 Out of range value adjusted for column 'c7' at row 1
Note 1265 Data truncated for column 'c12' at row 1
Warning 1264 Out of range value adjusted for column 'c12' at row 1 Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ; execute my_select ;
c1 -128 c1 -128
......
...@@ -149,7 +149,7 @@ bool Field::check_int(const char *str, int length, const char *int_end, ...@@ -149,7 +149,7 @@ bool Field::check_int(const char *str, int length, const char *int_end,
truncation. truncation.
SYNOPSIS SYNOPSIS
Field::check_overflow() Field::warn_if_overflow()
op_result decimal library return code (E_DEC_* see include/decimal.h) op_result decimal library return code (E_DEC_* see include/decimal.h)
RETURN RETURN
...@@ -157,19 +157,22 @@ bool Field::check_int(const char *str, int length, const char *int_end, ...@@ -157,19 +157,22 @@ bool Field::check_int(const char *str, int length, const char *int_end,
0 no error or some other errors except overflow 0 no error or some other errors except overflow
*/ */
int Field::check_overflow(int op_result) int Field::warn_if_overflow(int op_result)
{ {
if (op_result == E_DEC_OVERFLOW) if (op_result == E_DEC_OVERFLOW)
{ {
set_warning(MYSQL_ERROR::WARN_LEVEL_WARN, ER_WARN_DATA_OUT_OF_RANGE, 1); set_warning(MYSQL_ERROR::WARN_LEVEL_WARN, ER_WARN_DATA_OUT_OF_RANGE, 1);
return 1; return 1;
} }
else if (op_result == E_DEC_TRUNCATED) if (op_result == E_DEC_TRUNCATED)
{
set_warning(MYSQL_ERROR::WARN_LEVEL_NOTE, WARN_DATA_TRUNCATED, 1); set_warning(MYSQL_ERROR::WARN_LEVEL_NOTE, WARN_DATA_TRUNCATED, 1);
/* we return 1 only in case of EFL */ /* We return 0 here as this is not a critical issue */
}
return 0; return 0;
} }
#ifdef NOT_USED #ifdef NOT_USED
static bool test_if_real(const char *str,int length, CHARSET_INFO *cs) static bool test_if_real(const char *str,int length, CHARSET_INFO *cs)
{ {
...@@ -507,7 +510,7 @@ longlong Field::convert_decimal2longlong(const my_decimal *val, ...@@ -507,7 +510,7 @@ longlong Field::convert_decimal2longlong(const my_decimal *val,
i= 0; i= 0;
*err= 1; *err= 1;
} }
else if (check_overflow(my_decimal2int(E_DEC_ERROR & else if (warn_if_overflow(my_decimal2int(E_DEC_ERROR &
~E_DEC_OVERFLOW & ~E_DEC_TRUNCATED, ~E_DEC_OVERFLOW & ~E_DEC_TRUNCATED,
val, TRUE, &i))) val, TRUE, &i)))
{ {
...@@ -515,7 +518,7 @@ longlong Field::convert_decimal2longlong(const my_decimal *val, ...@@ -515,7 +518,7 @@ longlong Field::convert_decimal2longlong(const my_decimal *val,
*err= 1; *err= 1;
} }
} }
else if (check_overflow(my_decimal2int(E_DEC_ERROR & else if (warn_if_overflow(my_decimal2int(E_DEC_ERROR &
~E_DEC_OVERFLOW & ~E_DEC_TRUNCATED, ~E_DEC_OVERFLOW & ~E_DEC_TRUNCATED,
val, FALSE, &i))) val, FALSE, &i)))
{ {
...@@ -616,7 +619,7 @@ int Field_str::store_decimal(const my_decimal *d) ...@@ -616,7 +619,7 @@ int Field_str::store_decimal(const my_decimal *d)
{ {
double val; double val;
/* TODO: use decimal2string? */ /* TODO: use decimal2string? */
int err= check_overflow(my_decimal2double(E_DEC_FATAL_ERROR & int err= warn_if_overflow(my_decimal2double(E_DEC_FATAL_ERROR &
~E_DEC_OVERFLOW, d, &val)); ~E_DEC_OVERFLOW, d, &val));
return err | store(val); return err | store(val);
} }
...@@ -1552,12 +1555,17 @@ void Field_new_decimal::set_value_on_overflow(my_decimal *decimal_value, ...@@ -1552,12 +1555,17 @@ void Field_new_decimal::set_value_on_overflow(my_decimal *decimal_value,
checks if decimal_value fits into field size. checks if decimal_value fits into field size.
if it does, stores the decimal in the buffer using binary format. if it does, stores the decimal in the buffer using binary format.
Otherwise sets maximal number that can be stored in the field. Otherwise sets maximal number that can be stored in the field.
RETURN
0 ok
1 error
*/ */
bool Field_new_decimal::store_value(const my_decimal *decimal_value) bool Field_new_decimal::store_value(const my_decimal *decimal_value)
{ {
DBUG_ENTER("Field_new_decimal::store_value");
my_decimal *dec= (my_decimal*)decimal_value; my_decimal *dec= (my_decimal*)decimal_value;
int error= 0;
DBUG_ENTER("Field_new_decimal::store_value");
DBUG_EXECUTE("enter", print_decimal(dec);); DBUG_EXECUTE("enter", print_decimal(dec););
/* check that we do not try to write negative value in unsigned field */ /* check that we do not try to write negative value in unsigned field */
...@@ -1565,16 +1573,18 @@ bool Field_new_decimal::store_value(const my_decimal *decimal_value) ...@@ -1565,16 +1573,18 @@ bool Field_new_decimal::store_value(const my_decimal *decimal_value)
{ {
DBUG_PRINT("info", ("unsigned overflow")); DBUG_PRINT("info", ("unsigned overflow"));
set_warning(MYSQL_ERROR::WARN_LEVEL_WARN, ER_WARN_DATA_OUT_OF_RANGE, 1); set_warning(MYSQL_ERROR::WARN_LEVEL_WARN, ER_WARN_DATA_OUT_OF_RANGE, 1);
error= 1;
dec= &decimal_zero; dec= &decimal_zero;
} }
DBUG_PRINT("info", ("saving with precision %d, scale: %d", DBUG_PRINT("info", ("saving with precision %d, scale: %d",
(int)field_length, (int)decimals())); (int)field_length, (int)decimals()));
DBUG_EXECUTE("info", print_decimal(dec);); DBUG_EXECUTE("info", print_decimal(dec););
if (check_overflow(my_decimal2binary(E_DEC_FATAL_ERROR & ~E_DEC_OVERFLOW, if (warn_if_overflow(my_decimal2binary(E_DEC_FATAL_ERROR &
dec, ptr, ~E_DEC_OVERFLOW,
field_length, dec, ptr,
decimals()))) field_length,
decimals())))
{ {
my_decimal buff; my_decimal buff;
DBUG_PRINT("info", ("overflow")); DBUG_PRINT("info", ("overflow"));
...@@ -1584,20 +1594,20 @@ bool Field_new_decimal::store_value(const my_decimal *decimal_value) ...@@ -1584,20 +1594,20 @@ bool Field_new_decimal::store_value(const my_decimal *decimal_value)
DBUG_RETURN(1); DBUG_RETURN(1);
} }
DBUG_EXECUTE("info", print_decimal_buff(dec, ptr, bin_size);); DBUG_EXECUTE("info", print_decimal_buff(dec, ptr, bin_size););
DBUG_RETURN(0); DBUG_RETURN(error);
} }
int Field_new_decimal::store(const char *from, uint length, int Field_new_decimal::store(const char *from, uint length,
CHARSET_INFO *charset) CHARSET_INFO *charset)
{ {
DBUG_ENTER("Field_new_decimal::store(char*)");
int err; int err;
my_decimal decimal_value; my_decimal decimal_value;
DBUG_ENTER("Field_new_decimal::store(char*)");
switch ((err= str2my_decimal(E_DEC_FATAL_ERROR & switch ((err= str2my_decimal(E_DEC_FATAL_ERROR &
~(E_DEC_OVERFLOW | E_DEC_BAD_NUM), ~(E_DEC_OVERFLOW | E_DEC_BAD_NUM),
from, length, charset, &decimal_value))) from, length, charset, &decimal_value))) {
{
case E_DEC_TRUNCATED: case E_DEC_TRUNCATED:
set_warning(MYSQL_ERROR::WARN_LEVEL_NOTE, WARN_DATA_TRUNCATED, 1); set_warning(MYSQL_ERROR::WARN_LEVEL_NOTE, WARN_DATA_TRUNCATED, 1);
break; break;
...@@ -1624,9 +1634,11 @@ int Field_new_decimal::store(const char *from, uint length, ...@@ -1624,9 +1634,11 @@ int Field_new_decimal::store(const char *from, uint length,
int Field_new_decimal::store(double nr) int Field_new_decimal::store(double nr)
{ {
my_decimal decimal_value; my_decimal decimal_value;
int err= double2my_decimal(E_DEC_FATAL_ERROR & int err;
~E_DEC_OVERFLOW, nr, DBUG_ENTER("Field_new_decimal::store(double)");
&decimal_value);
err= double2my_decimal(E_DEC_FATAL_ERROR & ~E_DEC_OVERFLOW, nr,
&decimal_value);
/* /*
TODO: fix following when double2my_decimal when double2decimal TODO: fix following when double2my_decimal when double2decimal
will return E_DEC_TRUNCATED always correctly will return E_DEC_TRUNCATED always correctly
...@@ -1638,10 +1650,18 @@ int Field_new_decimal::store(double nr) ...@@ -1638,10 +1650,18 @@ int Field_new_decimal::store(double nr)
if (nr2 != nr) if (nr2 != nr)
err= E_DEC_TRUNCATED; err= E_DEC_TRUNCATED;
} }
if (check_overflow(err)) if (err)
set_value_on_overflow(&decimal_value, decimal_value.sign()); {
store_value(&decimal_value); if (check_overflow(err))
return err; set_value_on_overflow(&decimal_value, decimal_value.sign());
/* Only issue a warning if store_value doesn't issue an warning */
table->in_use->got_warning= 0;
}
if (store_value(&decimal_value))
err= 1;
else if (err && !table->in_use->got_warning)
err= warn_if_overflow(err);
DBUG_RETURN(err);
} }
...@@ -1649,10 +1669,19 @@ int Field_new_decimal::store(longlong nr) ...@@ -1649,10 +1669,19 @@ int Field_new_decimal::store(longlong nr)
{ {
my_decimal decimal_value; my_decimal decimal_value;
int err; int err;
if ((err= check_overflow(int2my_decimal(E_DEC_FATAL_ERROR & ~E_DEC_OVERFLOW,
nr, unsigned_flag, &decimal_value)))) if ((err= int2my_decimal(E_DEC_FATAL_ERROR & ~E_DEC_OVERFLOW,
set_value_on_overflow(&decimal_value, decimal_value.sign()); nr, unsigned_flag, &decimal_value)))
store_value(&decimal_value); {
if (check_overflow(err))
set_value_on_overflow(&decimal_value, decimal_value.sign());
/* Only issue a warning if store_value doesn't issue an warning */
table->in_use->got_warning= 0;
}
if (store_value(&decimal_value))
err= 1;
else if (err && !table->in_use->got_warning)
err= warn_if_overflow(err);
return err; return err;
} }
...@@ -1694,7 +1723,7 @@ my_decimal* Field_new_decimal::val_decimal(my_decimal *decimal_value) ...@@ -1694,7 +1723,7 @@ my_decimal* Field_new_decimal::val_decimal(my_decimal *decimal_value)
String *Field_new_decimal::val_str(String *val_buffer, String *Field_new_decimal::val_str(String *val_buffer,
String *val_ptr __attribute__((unused))) String *val_ptr __attribute__((unused)))
{ {
my_decimal decimal_value; my_decimal decimal_value;
int fixed_precision= (zerofill ? int fixed_precision= (zerofill ?
...@@ -1728,6 +1757,7 @@ void Field_new_decimal::sql_type(String &str) const ...@@ -1728,6 +1757,7 @@ void Field_new_decimal::sql_type(String &str) const
add_zerofill_and_unsigned(str); add_zerofill_and_unsigned(str);
} }
/**************************************************************************** /****************************************************************************
** tiny int ** tiny int
****************************************************************************/ ****************************************************************************/
......
...@@ -290,7 +290,11 @@ class Field ...@@ -290,7 +290,11 @@ class Field
int cuted_increment); int cuted_increment);
void set_datetime_warning(const uint level, const uint code, void set_datetime_warning(const uint level, const uint code,
double nr, timestamp_type ts_type); double nr, timestamp_type ts_type);
int check_overflow(int op_result); inline bool check_overflow(int op_result)
{
return (op_result == E_DEC_OVERFLOW);
}
int warn_if_overflow(int op_result);
virtual field_cast_enum field_cast_type()= 0; virtual field_cast_enum field_cast_type()= 0;
bool field_cast_compatible(field_cast_enum type); bool field_cast_compatible(field_cast_enum type);
/* maximum possible display length */ /* maximum possible display length */
......
...@@ -1027,6 +1027,7 @@ class THD :public ilink, ...@@ -1027,6 +1027,7 @@ class THD :public ilink,
bool charset_is_system_charset, charset_is_collation_connection; bool charset_is_system_charset, charset_is_collation_connection;
bool slow_command; bool slow_command;
bool no_trans_update, abort_on_warning; bool no_trans_update, abort_on_warning;
bool got_warning; /* Set on call to push_warning() */
longlong row_count_func; /* For the ROW_COUNT() function */ longlong row_count_func; /* For the ROW_COUNT() function */
sp_rcontext *spcont; // SP runtime context sp_rcontext *spcont; // SP runtime context
sp_cache *sp_proc_cache; sp_cache *sp_proc_cache;
......
...@@ -108,6 +108,7 @@ MYSQL_ERROR *push_warning(THD *thd, MYSQL_ERROR::enum_warning_level level, ...@@ -108,6 +108,7 @@ MYSQL_ERROR *push_warning(THD *thd, MYSQL_ERROR::enum_warning_level level,
if (thd->query_id != thd->warn_id) if (thd->query_id != thd->warn_id)
mysql_reset_errors(thd); mysql_reset_errors(thd);
thd->got_warning= 1;
if (thd->spcont && if (thd->spcont &&
thd->spcont->find_handler(code, thd->spcont->find_handler(code,
((int) level >= ((int) level >=
......
...@@ -158,15 +158,6 @@ class base_list :public Sql_alloc ...@@ -158,15 +158,6 @@ class base_list :public Sql_alloc
last= &first; last= &first;
return tmp->info; return tmp->info;
} }
inline void concat(base_list *list)
{
if (!list->is_empty())
{
*last= list->first;
last= list->last;
elements+= list->elements;
}
}
inline void disjoin(base_list *list) inline void disjoin(base_list *list)
{ {
list_node **prev= &first; list_node **prev= &first;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment