after-merge fix.

parent f0f83a36
...@@ -417,12 +417,8 @@ int Arg_comparator::set_compare_func(Item_bool_func2 *item, Item_result type) ...@@ -417,12 +417,8 @@ int Arg_comparator::set_compare_func(Item_bool_func2 *item, Item_result type)
break; break;
} }
case DECIMAL_RESULT: case DECIMAL_RESULT:
case REAL_RESULT:
break; break;
default: case REAL_RESULT:
DBUG_ASSERT(0);
}
else if (type == REAL_RESULT)
{ {
if ((*a)->decimals < NOT_FIXED_DEC && (*b)->decimals < NOT_FIXED_DEC) if ((*a)->decimals < NOT_FIXED_DEC && (*b)->decimals < NOT_FIXED_DEC)
{ {
...@@ -432,6 +428,10 @@ int Arg_comparator::set_compare_func(Item_bool_func2 *item, Item_result type) ...@@ -432,6 +428,10 @@ int Arg_comparator::set_compare_func(Item_bool_func2 *item, Item_result type)
else if (func == &Arg_comparator::compare_e_real) else if (func == &Arg_comparator::compare_e_real)
func= &Arg_comparator::compare_e_real_fixed; func= &Arg_comparator::compare_e_real_fixed;
} }
break;
}
default:
DBUG_ASSERT(0);
} }
return 0; return 0;
} }
...@@ -577,10 +577,10 @@ int Arg_comparator::compare_real_fixed() ...@@ -577,10 +577,10 @@ int Arg_comparator::compare_real_fixed()
performing the comparison. performing the comparison.
*/ */
volatile double val1, val2; volatile double val1, val2;
val1= (*a)->val(); val1= (*a)->val_real();
if (!(*a)->null_value) if (!(*a)->null_value)
{ {
val2= (*b)->val(); val2= (*b)->val_real();
if (!(*b)->null_value) if (!(*b)->null_value)
{ {
owner->null_value= 0; owner->null_value= 0;
...@@ -598,8 +598,8 @@ int Arg_comparator::compare_real_fixed() ...@@ -598,8 +598,8 @@ int Arg_comparator::compare_real_fixed()
int Arg_comparator::compare_e_real_fixed() int Arg_comparator::compare_e_real_fixed()
{ {
double val1= (*a)->val(); double val1= (*a)->val_real();
double val2= (*b)->val(); double val2= (*b)->val_real();
if ((*a)->null_value || (*b)->null_value) if ((*a)->null_value || (*b)->null_value)
return test((*a)->null_value && (*b)->null_value); return test((*a)->null_value && (*b)->null_value);
return test(val1 == val2 || fabs(val1 - val2) < precision); return test(val1 == val2 || fabs(val1 - val2) < precision);
......
...@@ -398,7 +398,8 @@ Field *Item_sum::create_tmp_field(bool group, TABLE *table, ...@@ -398,7 +398,8 @@ Field *Item_sum::create_tmp_field(bool group, TABLE *table,
{ {
switch (result_type()) { switch (result_type()) {
case REAL_RESULT: case REAL_RESULT:
return new Field_double(max_length,maybe_null,name,table,decimals); return new Field_double(max_length, maybe_null, name, table, decimals,
TRUE);
case INT_RESULT: case INT_RESULT:
return new Field_longlong(max_length,maybe_null,name,table,unsigned_flag); return new Field_longlong(max_length,maybe_null,name,table,unsigned_flag);
case STRING_RESULT: case STRING_RESULT:
...@@ -1123,7 +1124,7 @@ Field *Item_sum_avg::create_tmp_field(bool group, TABLE *table, ...@@ -1123,7 +1124,7 @@ Field *Item_sum_avg::create_tmp_field(bool group, TABLE *table,
if (hybrid_type == DECIMAL_RESULT) if (hybrid_type == DECIMAL_RESULT)
return new Field_new_decimal(max_length, maybe_null, name, table, return new Field_new_decimal(max_length, maybe_null, name, table,
decimals, unsigned_flag); decimals, unsigned_flag);
return new Field_double(max_length, maybe_null, name, table, decimals); return new Field_double(max_length, maybe_null, name, table, decimals, TRUE);
} }
...@@ -1317,7 +1318,7 @@ Field *Item_sum_variance::create_tmp_field(bool group, TABLE *table, ...@@ -1317,7 +1318,7 @@ Field *Item_sum_variance::create_tmp_field(bool group, TABLE *table,
*/ */
return new Field_string(sizeof(double)*2 + sizeof(longlong), 0, name, table, &my_charset_bin); return new Field_string(sizeof(double)*2 + sizeof(longlong), 0, name, table, &my_charset_bin);
} }
return new Field_double(max_length, maybe_null,name,table,decimals); return new Field_double(max_length, maybe_null, name, table, decimals, TRUE);
} }
......
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