| Bug #7840 | 4.1.7 fails to return matching records when types do not match | ||
|---|---|---|---|
| Submitted: | 12 Jan 2005 16:28 | Modified: | 22 Feb 2005 13:51 | 
| Reporter: | Tom Price | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server | Severity: | S3 (Non-critical) | 
| Version: | 4.1.9 | OS: | Any (any) | 
| Assigned to: | Michael Widenius | CPU Architecture: | Any | 
   [12 Jan 2005 16:28]
   Tom Price        
  
 
   [22 Feb 2005 13:51]
   Michael Widenius        
  Thank you for your bug report. This issue has been committed to our
source repository of that product and will be incorporated into the
next release.
If necessary, you can access the source repository and build the latest
available version, including the bugfix, yourself. More information 
about accessing the source trees is available at
    http://www.mysql.com/doc/en/Installing_source_tree.html
Additional info:
Background:
We have in 4.1 replaced strtod() with our own strtod() function to ensure that MySQL work as similar as possible on different platforms.
The problem is that our strtod() calulated fractions by division, which caused some inaccuracy for numbers of type 123.45E+02.
I have now changed the algoritm so that we delay the division as long as possible, which ensures that we get floating point values  like the above to work for the range of integer values covered by 'double'
The fix will be in 4.1.11
 