thanks for the response! The replication is between MySQL 5.1.52 (Windows, Master)
and 5.1.66 (Linux, Slave). Here are two examples:
If I insert A = -5.32907051820075e-015 and B = -1.1655233978208e+024 into a double
column on the master, they are not binary equal on the slave, i.e. they have a
different CRC32().
ROUND(col, 2) on the master results in A' = 0.00 and B' = -1165523397820799900000000.00,
while on the slave it results in A'' = -0.00 and B'' = -1165523397820799938199552.00, so
they have still a different CRC32().
With the new "rounding-with-logarithm" method both on the master and slave
A_log = 47.42 and B_log = -79.95.
Hello Daniel,
thanks for the response! The replication is between MySQL 5.1.52 (Windows, Master)
and 5.1.66 (Linux, Slave). Here are two examples:
If I insert A = -5.329070518200 75e-015 and B = -1.165523397820 8e+024 into a double
column on the master, they are not binary equal on the slave, i.e. they have a
different CRC32().
ROUND(col, 2) on the master results in A' = 0.00 and B' = -11655233978207 99900000000. 00, 99938199552. 00, so
while on the slave it results in A'' = -0.00 and B'' = -11655233978207
they have still a different CRC32().
With the new "rounding- with-logarithm" method both on the master and slave
A_log = 47.42 and B_log = -79.95.
The patch is available for merging at lp:~jmuc/percona-toolkit/float-log-precision.