diff options
Diffstat (limited to 'sql/item_func.cc')
-rw-r--r-- | sql/item_func.cc | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/sql/item_func.cc b/sql/item_func.cc index 99a429e48fb..0b7a222c312 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -901,7 +901,8 @@ longlong Item_func_ceiling::val_int() longlong Item_func_floor::val_int() { - double value=args[0]->val(); + // the volatile's for BUG #3051 to calm optimizer down (because of gcc's bug) + volatile double value=args[0]->val(); null_value=args[0]->null_value; return (longlong) floor(value); } @@ -1838,13 +1839,11 @@ longlong Item_master_pos_wait::val_int() longlong pos = (ulong)args[1]->val_int(); longlong timeout = (arg_count==3) ? args[2]->val_int() : 0 ; #ifdef HAVE_REPLICATION - LOCK_ACTIVE_MI; - if ((event_count = active_mi->rli.wait_for_pos(thd, log_name, pos, timeout)) == -2) - { + if ((event_count = active_mi->rli.wait_for_pos(thd, log_name, pos, timeout)) == -2) + { null_value = 1; event_count=0; } - UNLOCK_ACTIVE_MI; #endif return event_count; } |