• ramil/ram@mysql.com/ramil.myoffice.izhnet.ru's avatar
    fix for bug #19690: ORDER BY eliminates rows from the result · eb415e49
    Depending on the queries we use different data processing methods
    and can lose some data in case of double (and decimal in 4.1) fields.
    
    The fix consists of two parts:
    1. double comparison changed, now double a is equal to double b 
    if (a-b) is less than 5*0.1^(1 + max(a->decimals, b->decimals)). 
    For example, if a->decimals==1, b->decimals==2, a==b if (a-b)<0.005
    2. if we use a temporary table, store double values there as is 
    to avoid any data conversion (rounding).
    eb415e49
sql_select.cc 299 KB