CREATE TABLE t3 LIKE t1; CREATE TABLE t4 LIKE t1; INSERT INTO t1 SET f1 = 1.175494345e-15, mysql_version = VERSION(); INSERT INTO t2 SET f1 = 1.175494345e-15, mysql_version = VERSION(); INSERT INTO t3 SET f1 = 1.175494345e-15, mysql_version = VERSION(); INSERT INTO t4 SET f1 = 1.175494345e-15, mysql_version = VERSION(); #### Print the content of the tables #### # Everything is like expected. SELECT pk, f1, mysql_version FROM t1; pk f1 mysql_version 1 1.175494345e-15 4.1.16-debug-log 2 1.175494345e-15 5.0.16-debug-log SELECT pk, f1, mysql_version FROM t2; pk f1 mysql_version 1 1.175494345e-15 4.1.16-debug-log 2 1.175494345e-15 5.0.16-debug-log SELECT pk, f1, mysql_version FROM t3; pk f1 mysql_version 1 1.175494345e-15 5.0.16-debug-log SELECT pk, f1, mysql_version FROM t4; pk f1 mysql_version 1 1.175494345e-15 5.0.16-debug-log #### Select via WHERE f1 = #### SELECT f1, pk, mysql_version FROM t1 WHERE f1 = 1.175494345e-15; f1 pk mysql_version 1.175494345e-15 2 5.0.16-debug-log !!!! In this result set I miss the record inserted within MySQL 4.1 1.175494345e-15 1 4.1.16-debug-log # This means we have an incompatibility between 4.1 and 5.0. SELECT f1, pk, mysql_version FROM t2 WHERE f1 = 1.175494345e-15; f1 pk mysql_version 1.175494345e-15 2 5.0.16-debug-log !!!! In this result set I miss the record inserted within MySQL 4.1 1.175494345e-15 1 4.1.16-debug-log # This means we have an incompatibility between 4.1 and 5.0. # The following result sets are ok. But this only means that MySQL # is consistent within the same version (5.0). SELECT f1, pk, mysql_version FROM t3 WHERE f1 = 1.175494345e-15; f1 pk mysql_version 1.175494345e-15 1 5.0.16-debug-log SELECT f1, pk, mysql_version FROM t4 WHERE f1 = 1.175494345e-15; f1 pk mysql_version 1.175494345e-15 1 5.0.16-debug-log #### Joins #### SELECT A.f1, A.pk, A.mysql_version, B.pk, B.mysql_version FROM t1 A,t2 B WHERE A.f1 = B.f1; f1 pk mysql_version pk mysql_version 1.175494345e-15 1 4.1.16-debug-log 1 4.1.16-debug-log 1.175494345e-15 2 5.0.16-debug-log 2 5.0.16-debug-log # In this result set I miss the combination of the records inserted # within MySQL 4.1 and 5.0 1.175494345e-15 1 4.1.16-debug-log 2 5.0.16-debug-log 1.175494345e-15 2 5.0.16-debug-log 1 4.1.16-debug-log # This means we have an incompatibility between 4.1 and 5.0. # The following result set is ok. But this only means that MySQL # is consistent within the same version (5.0). SELECT A.f1, A.pk, A.mysql_version, B.pk, B.mysql_version FROM t3 A,t4 B WHERE A.f1 = B.f1; f1 pk mysql_version pk mysql_version 1.175494345e-15 1 5.0.16-debug-log 1 5.0.16-debug-log SELECT A.f1, A.pk, A.mysql_version, B.pk, B.mysql_version FROM t1 A,t3 B WHERE A.f1 = B.f1; f1 pk mysql_version pk mysql_version 1.175494345e-15 2 5.0.16-debug-log 1 5.0.16-debug-log # In this result set I miss the combination of the records inserted # within MySQL 4.1 and 5.0 1.175494345e-15 1 4.1.16-debug-log 1 5.0.16-debug-log # Note: This logical wrong result is consistent with the other logical # wrong result when executing # SELECT f1, pk, mysql_version FROM t1 WHERE f1 = 1.175494345e-15; #### Show the difference between the values inserted with MySQL 4.1 and 5.0 #### SELECT A.f1 - B.f1 AS difference, A.mysql_version, B.mysql_version FROM t1 A,t3 B WHERE A.pk = B.pk; difference mysql_version mysql_version -1.9721522630525e-31 4.1.16-debug-log 5.0.16-debug-log