Bug #47302 | mysqltest client only outputs the first error generated by the server | ||
---|---|---|---|
Submitted: | 14 Sep 2009 8:45 | Modified: | 1 Sep 2011 14:36 |
Reporter: | Tor Didriksen | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | Tools: MTR / mysql-test-run | Severity: | S3 (Non-critical) |
Version: | OS: | Any | |
Assigned to: | Bjørn Munch | CPU Architecture: | Any |
[14 Sep 2009 8:45]
Tor Didriksen
[14 Sep 2009 8:51]
Susanne Ebrecht
Which MySQL version do you use here?
[14 Sep 2009 9:16]
Sergei Golubchik
There can be only one error from any statement. If a statement fails a protocol packet "error" is sent, with the error code in it. There's place only for one error code in that packet, and fundamentally any statement either succeeds or fails with an error - one error. But a statement can generate any number of warning during the execution. Warnings can be of different severity. What you see in mysql client is one error and three warnings. To see warnings one usually has to do 'SHOW WARNINGS' (try it!). mysql client does it for you automatically because you've started it with --show-warnings command line switch.
[14 Sep 2009 9:17]
Sergei Golubchik
start mysql with --disable-show-warnings run your statement, you'll see only one error. run SHOW WARNINGS and you'll see your three warnings
[14 Sep 2009 10:23]
Tor Didriksen
Looks like one warning, and two errors to me, but I guess the server picks one of them as the returned error. | Level | Code | Message | +---------+------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Warning | 1292 | Truncated incorrect DECIMAL value: '' | | Error | 1264 | Out of range value for column 'x' at row 1 | | Error | 1041 | Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space |