On 2015/01/29 05:05, James K. Lowden wrote:
There's no reason to think, if the data are provided in binary form, that they won't be returned in the identical form absent an
explicit conversion. If that's not so, I'd sure like to know why. I'm faintly surprised NaNs can't be stored, too. Why should
SQLlite interpret them if they're bound to a double?
Indeed, which is what all the posts have been saying more or less in terms of
round-tripping all but NaNs.
In the case of NaN though, there are two defined NaNs, namely qNaN and sNan which both means the same but the sNaN will cause an
exception even at hardware level by merely passing through any register, which I believe is its intended purpose. This means that in
order for software to work correctly, it should never let an sNaN pass through untouched, it should produce an error so all parties
are savvy to the wrongness that just occured (Even if the software in use is not specifically checking for NaN, an sNaN should still
cause an exception from lower down).
qNaN should pass through and round-trip same as any other float. I'm not sure how SQLite handles either of these NaNs, but am now
quite interested to know.
sqlite-users mailing list