Bug #29085 A small double precision number becomes zero
Submitted: 13 Jun 2007 18:59 Modified: 23 Jan 2008 18:41
Reporter: Joerg Bruehe Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:4.1.23 OS:Other (Irix, both 32 + 64 bit)
Assigned to: Alexey Botchkov CPU Architecture:Any
Triage: D4 (Minor)

[13 Jun 2007 18:59] Joerg Bruehe
Description:
Occurred in the release build of 4.1.23.

This is an effect which was also discussed in bug#22129,
but now it is restricted to the build for IRIX:

-------------------------------------------------------
*** r/type_float.result
--- r/type_float.reject
***************
*** 274,280
  drop table t1,t2,t3;
  select 1e-308, 1.00000001e-300, 100000000e-300;
  1e-308        1.00000001e-300 100000000e-300
! 1e-308        1.00000001e-300 1e-292
  select 10e307;
  10e307
  1e+308
--- 274,280
  drop table t1,t2,t3;
  select 1e-308, 1.00000001e-300, 100000000e-300;
  1e-308        1.00000001e-300 100000000e-300
! 0     1.00000001e-300 1e-292
  select 10e307;
  10e307
  1e+308
-------------------------------------------------------

How to repeat:
Found by running the test suite.
[27 Nov 2007 17:12] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/38641

ChangeSet@1.2698, 2007-11-27 21:06:35+04:00, holyfoot@mysql.com +2 -0
  Bug #29085 A small double precision number becomes zero.
  
  Double value of 1e-308 can't be properly handled by some
  coprocessors, so let's make tests consistent.
[28 Nov 2007 14:45] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/38702

ChangeSet@1.2698, 2007-11-28 18:39:37+04:00, holyfoot@mysql.com +2 -0
  Bug #29085 A small double precision number becomes zero.
  
  Double value of 1e-308 can't be properly handled by some
  coprocessors, so let's make tests consistent.
[28 Nov 2007 15:04] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/38703

ChangeSet@1.2698, 2007-11-28 18:58:20+04:00, holyfoot@mysql.com +1 -0
  Bug #29085 A small double precision number becomes zero.
  
  Denormalized DOUBLE-s can't be properly handled by old MIPS processors.
  So we need to enable specific mode for them so IRIX will do use
  software round to handle such numbers.
[29 Nov 2007 10:58] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/38808

ChangeSet@1.2698, 2007-11-29 14:52:36+04:00, holyfoot@mysql.com +1 -0
  Bug #29085 A small double precision number becomes zero.
  
  Denormalized DOUBLE-s can't be properly handled by old MIPS processors.
  So we need to enable specific mode for them so IRIX will do use
  software round to handle such numbers.
[14 Dec 2007 8:13] Bugs System
Pushed into 4.1.24
[14 Dec 2007 8:15] Bugs System
Pushed into 5.0.54
[14 Dec 2007 8:19] Bugs System
Pushed into 5.1.23-rc
[14 Dec 2007 8:22] Bugs System
Pushed into 6.0.5-alpha
[23 Jan 2008 18:41] Paul Dubois
Noted in 4.1.24, 5.0.54, 5.1.23, 6.0.5 changelogs.

Denormalized double-precision numbers cannot be handled properly by
old MIPS pocessors. For IRIX, this is now handled by enabling a mode
to use a software workaround.