| Bug #84449 | Signed zero not preserved by mysqldump/restore | ||
|---|---|---|---|
| Submitted: | 9 Jan 2017 19:08 | Modified: | 9 Jan 2017 20:48 |
| Reporter: | Hartmut Holzgraefe | Email Updates: | |
| Status: | Verified | Impact on me: | |
| Category: | MySQL Server: mysqldump Command-line Client | Severity: | S3 (Non-critical) |
| Version: | 5.5/5.6/5.7/8.0 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
[9 Jan 2017 20:48]
MySQL Verification Team
Thank you for the bug report. Verified as described.

Description: It is possible to insert negative signed zero into a FLOAT column in several different ways: * INSERT(0) and INSERT(-0) both insert a positive 0 * INSERT('-0'), INSERT(-0e0) and INSERT(ROUND('-0.1')) all insert a negative signed 0 mysqldump dumps 0 and -0 correctly, but as the values are not quoted they are both restored as positive 0 How to repeat: CREATE TABLE t1(x double); INSERT INTO t1 VALUES (0e0),(-0e0); SELECT x FROM t1; +------+ | x | +------+ | 0 | | -0 | +------+ ... do mysqldump ... restore from mysqldump SELECT x FROM t1; +------+ | x | +------+ | 0 | | 0 | <- expected -1 here +------+ Suggested fix: check for literal "-0" in mysqldump when processing field values for INSERT output, add quotes or convert to -0e0 in such cases to preserve zero signednes