Bug #10243 | -SUM() crash | ||
---|---|---|---|
Submitted: | 28 Apr 2005 20:36 | Modified: | 8 Jun 2005 17:34 |
Reporter: | Ronald Weiss | Email Updates: | |
Status: | Can't repeat | Impact on me: | |
Category: | MySQL Server: Optimizer | Severity: | S3 (Non-critical) |
Version: | 5.0.4/BK source | OS: | Windows (winXP) |
Assigned to: | Igor Babaev | CPU Architecture: | Any |
[28 Apr 2005 20:36]
Ronald Weiss
[28 Apr 2005 21:40]
MySQL Verification Team
Thank you for the bug report.
[28 Apr 2005 22:15]
MySQL Verification Team
On Windows this only affects the optimized server and on Linux the client hangs without to crash the server. c:\mysql\bin>mysql -uroot test Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 to server version: 5.0.6-beta-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> CREATE TABLE xx ( x INT, y INT, PRIMARY KEY(x) ); Query OK, 0 rows affected (0.08 sec) mysql> SELECT -SUM(y) FROM xx WHERE x>0; ERROR 2013 (HY000): Lost connection to MySQL server during query c:\mysql\bin>mysql -uroot test Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 to server version: 5.0.6-beta-debug Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> drop table xx; Query OK, 0 rows affected (0.01 sec) mysql> CREATE TABLE xx ( x INT, y INT, PRIMARY KEY(x) ); Query OK, 0 rows affected (0.10 sec) mysql> SELECT -SUM(y) FROM xx WHERE x>0; +---------+ | -SUM(y) | +---------+ | 0 | +---------+ 1 row in set (0.01 sec)
[31 May 2005 7:13]
Disha
The server crashes even when the following statement is executed. SELECT -avg(f1) FROM tb1 //
[31 May 2005 12:24]
Disha
The server crashes even when the following statement is executed. SELECT -avg(f1) FROM tb1 //
[6 Jun 2005 11:33]
Igor Babaev
The cause of the bug is incorrect behavior of the Item_func_neg::decimal_op() function (file: sql\item_func.cpp). In a correct case this function must return 0 in the case of null_value. The same bug is detected for the Item_func_abs::decimal_op() function (file: sql\item_func.cpp). It can be seen with the following script: create table t (x integer, y decimal(2,4)); insert into t values (1,NULL),(2,NULL); select -y from t where x=1; select abs(y) from t where x=1; select -sum(y) from t where x>0; select abs(sum(y)) from t where x>0; mysql> select -y from t where x=1; ERROR 2013 (HY000): Lost connection to MySQL server during query mysql> select abs(y) from t where x=1; ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 1 Current database: test ERROR 2013 (HY000): Lost connection to MySQL server during query mysql> select -sum(y) from t where x>0; ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 1 Current database: test ERROR 2013 (HY000): Lost connection to MySQL server during query mysql> select abs(sum(y)) from t where x>0; ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 1 Current database: test +-------------+ | abs(sum(y)) | +-------------+ | 0 | +-------------+ 1 row in set (6.37 sec) mysql> select abs(sum(y)) from t where x>0; ERROR 2013 (HY000): Lost connection to MySQL server during query
[6 Jun 2005 15:15]
Igor Babaev
This bug was fixed by the patch for bug #10599.
[8 Jun 2005 17:24]
Ronald Weiss
Why did you set status to 'Can't repeat' ??
[8 Jun 2005 17:34]
MySQL Verification Team
Because Igor can't repeat with current source, please see prior comment from him: [6 Jun 17:15] Igor Babaev <igor@mysql.com> This bug was fixed by the patch for bug #10599.
[8 Jun 2005 17:50]
Ronald Weiss
He wrote: "This bug was fixed...", so I think 'Fixed' would be more appropriate. But it is unimportant...