Bug #6106 Views: SELECT of 2 views with RIGHT JOIN returns wrong result
| Submitted: | 14 Oct 2004 20:16 | Modified: | 21 Apr 2005 1:12 |
|---|---|---|---|
| Reporter: | Trudy Pelzer | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server | Severity: | S3 (Non-critical) |
| Version: | 5.0.2-alpha-debug | OS: | Any (*) |
| Assigned to: | Igor Babaev | CPU Architecture: | Any |
[14 Oct 2004 20:16]
Trudy Pelzer
[13 Apr 2005 23:13]
Igor Babaev
The problem can be demonstrated with a simpler query:
mysql> SELECT a.col1,a.col2,b.col2,b.col3
-> FROM vt1 a LEFT JOIN t2 b ON a.col1=b.col1
-> WHERE b.col2 IS NULL OR
-> b.col2=(SELECT MAX(col2) FROM t2 b WHERE b.col1=a.col1);
+------+---------+------+------+
| col1 | col2 | col2 | col3 |
+------+---------+------+------+
| 1 | trudy | NULL | NULL |
| 2 | peter | NULL | NULL |
| 3 | sanja | NULL | NULL |
| 4 | monty | NULL | NULL |
| 5 | david | NULL | NULL |
| 6 | kent | NULL | NULL |
| 7 | carsten | NULL | NULL |
| 8 | ranger | NULL | NULL |
| 10 | matt | NULL | NULL |
+------+---------+------+------+
The result must be the same as for the following equivalent query that does not use views:
mysql> SELECT a.col1,a.col2,b.col2,b.col3
-> FROM t1 a LEFT JOIN t2 b ON a.col1=b.col1
-> WHERE b.col2 IS NULL OR
-> b.col2=(SELECT MAX(col2) FROM t2 b WHERE b.col1=a.col1);
+------+---------+------+------+
| col1 | col2 | col2 | col3 |
+------+---------+------+------+
| 1 | trudy | 2 | y |
| 2 | peter | 1 | n |
| 3 | sanja | 1 | n |
| 4 | monty | 3 | n |
| 5 | david | NULL | NULL |
| 6 | kent | 1 | n |
| 7 | carsten | NULL | NULL |
| 8 | ranger | 1 | y |
| 10 | matt | NULL | NULL |
+------+---------+------+------+
[14 Apr 2005 6:18]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/internals/24001
[16 Apr 2005 7:33]
Igor Babaev
The fix will appear in version 5.0.5.
ChangeSet
1.1826 05/04/13 23:06:37 igor@rurik.mysql.com +6 -0
information_schema.result, information_schema.test:
Added a test in connection with the fix for
bug #6106.
view.result, view.test:
Added test cases for bugs #6106/6107.
sql_show.cc:
The addition of the case for items of the type REF_ITEM in the
function uses_only_table_name_fields became necessary after
the fix for bug #6106.
sql_base.cc:
The problem was due to the fact that two different column
references were glued together though one of them belonged to
a subquery while another to an outer query. This caused
eventually a wrong calculation of values for the used_tables
attribute.
[21 Apr 2005 1:12]
Paul DuBois
Noted in 5.0.5 changelog.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.040 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.