Re: MySQL BUG - UNION inconsistency in server 4.1.1

Miguel Angel Solorzano <[email protected]>
Newsgroups gmane.comp.db.mysql.bugs
Message-ID <6.0.2.0.0.20040401192015.02416b70@localhost>
At 18:56 2/4/2004, Giuseppe Maxia wrote:
Hi,

Bellow the output with a windows 4.1.2 server built from
source some 5 hours ago:

C:\mysql\bin>mysql -uroot test
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6 to server version: 4.1.2-alpha-nt

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

mysql> insert into tab1 values (7,"ABBIATEGRASSO"),
     -> (72,"AGRATE BRIANZA"), (78,"AICURZIO");
Query OK, 3 rows affected (0.02 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> insert into tab2 values (7,"MI"),
     -> (72,"MI"), (78,"MI");
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> SELECT tab1.ID, name
     -> FROM tab1
     -> INNER JOIN tab2 ON tab1.ID = tab2.ID
     -> WHERE ID2 = 'MI';
+----+----------------+
| ID | name           |
+----+----------------+
|  7 | ABBIATEGRASSO  |
| 72 | AGRATE BRIANZA |
| 78 | AICURZIO       |
+----+----------------+
3 rows in set (0.03 sec)

mysql> SELECT tab1.ID, name
     -> FROM tab1
     -> INNER JOIN tab2 ON tab1.ID = tab2.ID
     -> WHERE ID2 = 'MI'
     -> UNION
     -> SELECT tab1.ID, name2 AS name
     -> FROM tab3
     -> INNER JOIN tab2 ON tab2.ID = tab3.ID
     -> INNER JOIN tab1  ON tab1.ID = tab2.ID
     -> WHERE ID2 = 'MI';
+----+----------------+
| ID | name           |
+----+----------------+
|  7 | ABBIATEGRASSO  |
| 72 | AGRATE BRIANZA |
| 78 | AICURZIO       |
+----+----------------+
3 rows in set (0.03 sec)

mysql> update tab1 set name = 'XXX' where ID = 78;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> SELECT tab1.ID, name
     -> FROM tab1
     -> INNER JOIN tab2 ON tab1.ID = tab2.ID
     -> WHERE ID2 = 'MI'
     -> UNION
     -> SELECT tab1.ID, name2 AS name
     -> FROM tab3
     -> INNER JOIN tab2 ON tab2.ID = tab3.ID
     -> INNER JOIN tab1  ON tab1.ID = tab2.ID
     -> WHERE ID2 = 'MI';
+----+----------------+
| ID | name           |
+----+----------------+
|  7 | ABBIATEGRASSO  |
| 72 | AGRATE BRIANZA |
| 78 | XXX            |
+----+----------------+
3 rows in set (0.00 sec)

mysql> select * from tab1;
+----+----------------+
| ID | name           |
+----+----------------+
|  7 | ABBIATEGRASSO  |
| 72 | AGRATE BRIANZA |
| 78 | XXX            |
+----+----------------+
3 rows in set (0.00 sec)

mysql> alter table tab1 type=innodb;
Query OK, 3 rows affected, 1 warning (0.28 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> alter table tab2 type=innodb;
Query OK, 3 rows affected, 1 warning (0.26 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> alter table tab3 type=innodb;
Query OK, 0 rows affected, 1 warning (0.21 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> SELECT tab1.ID, name
     -> FROM tab1 INNER JOIN tab2 ON tab1.ID = tab2.ID
     -> WHERE ID2 = 'MI'
     -> UNION
     -> SELECT tab1.ID, name2 AS name
     -> FROM tab3
     -> INNER JOIN tab2 ON tab2.ID = tab3.ID
     -> INNER JOIN tab1  ON tab1.ID = tab2.ID
     -> WHERE ID2 = 'MI';
+----+----------------+
| ID | name           |
+----+----------------+
|  7 | ABBIATEGRASSO  |
| 72 | AGRATE BRIANZA |
| 78 | XXX            |
+----+----------------+
3 rows in set (0.01 sec)

mysql> SELECT tab1.ID, name
     -> FROM tab1
     -> INNER JOIN tab2 ON tab1.ID = tab2.ID
     -> WHERE ID2 = 'MI';
+----+----------------+
| ID | name           |
+----+----------------+
|  7 | ABBIATEGRASSO  |
| 72 | AGRATE BRIANZA |
| 78 | XXX            |
+----+----------------+
3 rows in set (0.00 sec)

mysql> SELECT tab1.ID, name
     -> FROM tab1
     -> INNER JOIN tab2 ON tab1.ID = tab2.ID
     -> WHERE ID2 = 'MI'
     -> UNION
     -> SELECT tab1.ID, name2 AS name
     -> FROM tab3
     -> INNER JOIN tab2 ON tab2.ID = tab3.ID
     -> INNER JOIN tab1  ON tab1.ID = tab2.ID
     -> WHERE ID2 = 'MI';
+----+----------------+
| ID | name           |
+----+----------------+
|  7 | ABBIATEGRASSO  |
| 72 | AGRATE BRIANZA |
| 78 | XXX            |
+----+----------------+
3 rows in set (0.01 sec)

mysql> SELECT tab1.ID, name
     -> FROM tab1
     -> JOIN tab2 ON tab1.ID = tab2.ID
     -> WHERE ID2 = 'MI'
     -> UNION
     -> SELECT tab1.ID, name2 AS name
     -> FROM tab3
     -> JOIN tab2 ON tab2.ID = tab3.ID
     -> JOIN tab1  ON tab1.ID = tab2.ID ;
+----+----------------+
| ID | name           |
+----+----------------+
|  7 | ABBIATEGRASSO  |
| 72 | AGRATE BRIANZA |
| 78 | XXX            |
+----+----------------+
3 rows in set (0.00 sec)

Regards,

For technical support contracts, visit https://order.mysql.com/
Are you MySQL certified?, http://www.mysql.com/certification/

Miguel Angel Solórzano <[email protected]>
São Paulo - Brazil



-- 
MySQL Bugs Mailing List
For list archives: http://lists.mysql.com/bugs
To unsubscribe:    http://lists.mysql.com/[email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.