On 10/17/2016 08:29 AM, Quan Yong Zhai wrote:
"The database file format is cross-platform - you can freely copy a database
between 32-bit and 64-bit systems or between big-endian and little-endian
"In your machine, implementation, and SQLite installation the
two value representations may be identical, while in others it may not be."
Does it mean the promise about cross-platform is broken?
A fair question, but no. Not as I see it, at least.
The statement - which you called a promise - still holds. It will work
by just copying the data between 32-bit and 64-bit or BE and LE
The fact that two different implementations approximate a rational
number differently does not violate that. See that fabs(a - b) > ε for
some ε relatively close to zero and even if the value of fabs(a - b) may
differ on these machines, the number is still a correct approximation
for the rational in question. For instance, if it became a large
negative number instead, it would be a portability problem, but this is
a mere characteristic of a how floating point arithmetic works.
This is different from integer arithmetic, which is exact and should
behave the same way on all systems, according to that statement.
sqlite-users mailing list