List:General Discussion« Previous MessageNext Message »
From:Cyril Zlachevsky Date:November 16 2001 8:02pm
Subject:[rh linux 7.2] mysql 3.22.32 bug?
View as plain text  
Today I'm discovered strange behavior of SQL query
UPDATE tablename SET value=value+const WHERE ...
UPDATE tablename SET value=value-const WHERE ...
UPDATE tablename SET value=value*const WHERE ...
UPDATE tablename SET value=value/const WHERE ...

I have incorrect results of this queries only in Red Hat Linux 7.2+mysql
3.22.32

On Red Hat 6.2+mysql 3.22.32 or Red Hat 7.2+mysql 3.23.44 all work fine.

---cut---
[root@rh72]# rpm -qa | grep mysql
mysql-server-3.23.44-1
mysql-devel-3.23.44-1
mysql-3.23.44-1

[root@rh72]# mysql -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 3.23.44

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use donlink
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> CREATE TABLE test(val1 bigint(10),val2 double( 5,3));
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT * FROM test;
Empty set (0.00 sec)

mysql> INSERT INTO test VALUES(1,2);
Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM test;
+------+-------+
| val1 | val2  |
+------+-------+
|    1 | 2.000 |
+------+-------+
1 row in set (0.00 sec)

mysql> UPDATE test SET val1=val1+1, val2=val2+2;
Query OK, 1 row affected (0.00 sec)
Соответствующих записей: 1  Изменено: 1 
Предупреждений: 0

mysql> SELECT * FROM test;
+------+-------+
| val1 | val2  |
+------+-------+
|    2 | 4.000 |
+------+-------+
1 row in set (0.00 sec)

mysql> UPDATE test SET val1=val1*2, val2=val2*2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> SELECT * FROM test;
+------+-------+
| val1 | val2  |
+------+-------+
|    4 | 8.000 |
+------+-------+
1 row in set (0.00 sec)

mysql> quit
Bye
[root@rh72]# /etc/rc.d/init.d/mysqld stop
Останавливается MySQL:                                     [  ОК  ]
[root@rh72]# rm -rf /var/lib/mysql/donlink/test.*
[root@rh72]# rpm -e mysql mysql-server mysql-devel
[root@rh72]# rpm -ivh /usr/src/redhat/RPMS/i686/mysql-3.22.32-1.i686.rpm 
/usr/src/redhat/RPMS/i686/mysql-devel-3.22.32-1.i686.rpm 
/usr/src/redhat/RPMS/i686/mysql-server-3.22.32-1.i686.rpm
Подготовка...
                   ########################################### [100%]
    1:mysql        ########################################### [ 33%]
    2:mysql-devel  ########################################### [ 66%]
    3:mysql-server ########################################### [100%]
[root@warp i686]# /etc/rc.d/init.d/mysqld start
Запускается MySQL:                                         [  ОК  ]

[root@rh72]# mysql -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 3.22.32-log

Type 'help' for help.

mysql> use donlink
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> CREATE TABLE test(val1 bigint(10),val2 double( 5,3));
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO test VALUES(1,2);
Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM test;
+------+-------+
| val1 | val2  |
+------+-------+
|    1 | 2.000 |
+------+-------+
1 row in set (0.00 sec)

mysql> UPDATE test SET val1=val1+1, val2=val2+2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> SELECT * FROM test;
+------+-------+
| val1 | val2  |
+------+-------+
|    2 | 2.000 |
+------+-------+
1 row in set (0.00 sec)

mysql> UPDATE test SET val1=val1*2, val2=val2*2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> SELECT * FROM test;
+------+-------+
| val1 | val2  |
+------+-------+
|    4 | 0.000 |
+------+-------+
1 row in set (0.00 sec)

mysql> QUIT
Bye
---cut---

To reporoduce my problem, first oof all you must download my mysql.spec 
files

http://www.phone.dn.ua/pub/mysql-3.22.32-spec.tar.gz (6k) and 
http://www.phone.dn.ua/pub/mysql-3.23.44-spec.tar.gz (6k)

and make rpm with target i686 arch.

Thanks for your help!


Thread
[rh linux 7.2] mysql 3.22.32 bug?Cyril Zlachevsky16 Nov