Bug #8821 | join to subquery without distinct causes bad COUNT | ||
---|---|---|---|
Submitted: | 26 Feb 2005 12:00 | Modified: | 15 Jun 2005 9:12 |
Reporter: | Are you mortal Then prepare to die. | Email Updates: | |
Status: | Not a Bug | Impact on me: | |
Category: | MySQL Server: Optimizer | Severity: | S2 (Serious) |
Version: | Ver 14.7 Distrib 4.1.9, for dec-osf5.1b | OS: | alphaev67 |
Assigned to: | Oleksandr Byelkin | CPU Architecture: | Any |
[26 Feb 2005 12:00]
Are you mortal Then prepare to die.
[26 Feb 2005 12:19]
MySQL Verification Team
Verified with 4.1.11-debug-log
[15 Jun 2005 9:10]
Oleksandr Byelkin
Thank you for bugreport! It is hot a bug, because 'SELECT PDB FROM bleah;' and 'SELECT DISTINCT PDB FROM bleah;' gives different results: + SELECT PDB FROM bleah; + PDB + BNGO + HABA + HABA + HABA + WABA + WABA + WABA + SELECT DISTINCT PDB FROM bleah; + PDB + BNGO + HABA + WABA IN version of that query is equal to query with DISTINCT. Just replace count in select list with * and you will see differ: + SELECT * FROM bleah + INNER JOIN + ( + SELECT PDB FROM bleah + ) + AS virtualTable + USING (PDB); + CHAIN_ID PDB PDB + 1 WABA WABA + 1 WABA WABA + 1 WABA WABA + 2 WABA WABA + 2 WABA WABA + 2 WABA WABA + 3 WABA WABA + 3 WABA WABA + 3 WABA WABA + 4 HABA HABA + 4 HABA HABA + 4 HABA HABA + 12 HABA HABA + 12 HABA HABA + 12 HABA HABA + 13 HABA HABA + 13 HABA HABA + 13 HABA HABA + 14 BNGO BNGO + SELECT * FROM bleah + INNER JOIN + ( + SELECT DISTINCT PDB FROM bleah + ) + AS virtualTable + USING (PDB); + CHAIN_ID PDB PDB + 1 WABA WABA + 2 WABA WABA + 3 WABA WABA + 4 HABA HABA + 12 HABA HABA + 13 HABA HABA + 14 BNGO BNGO i.e. query without DISTINCT in subquery is not equivalent to query with IN subquery and should provide differ results.