1. 09 May, 2006 5 commits
    • gkodinov@mysql.com's avatar
      Merge mysql.com:/home/kgeorge/mysql/5.0/B18068 · baba405c
      gkodinov@mysql.com authored
      into  mysql.com:/home/kgeorge/mysql/5.1/B18068
      baba405c
    • serg@sergbook.mysql.com's avatar
      results fixed · c4f34104
      serg@sergbook.mysql.com authored
      c4f34104
    • gkodinov@mysql.com's avatar
      BUG#18068: SELECT DISTINCT (with duplicates and covering index) · 7bae0de3
      gkodinov@mysql.com authored
      When converting DISTINCT to GROUP BY where the columns are from the covering
      index and they are quoted twice in the SELECT list the optimizer is creating
      improper processing sequence. This is because of the fact that the columns
      of the covering index are not recognized as such and treated as non-index
      columns.
      
      Generally speaking duplicate columns can safely be removed from the GROUP
      BY/DISTINCT list because this will not add or remove new rows in the
      resulting set. Duplicates can be removed even if they are not consecutive
      (as is the case for ORDER BY, where the duplicate columns can be removed
      only if they are consecutive).
      
      So we can safely transform "SELECT DISTINCT a,a FROM ... ORDER BY a" to
      "SELECT a,a FROM ... GROUP BY a ORDER BY a" instead of 
      "SELECT a,a FROM .. GROUP BY a,a ORDER BY a". We can even transform 
      "SELECT DISTINCT a,b,a FROM ... ORDER BY a,b" to
      "SELECT a,b,a FROM ... GROUP BY a,b ORDER BY a,b".
      
      The fix to this bug consists of checking for duplicate columns in the SELECT
      list when constructing the GROUP BY list in transforming DISTINCT to GROUP
      BY and skipping the ones that are already in.
      7bae0de3
    • midom@flute.local's avatar
    • mskold@mysql.com's avatar
  2. 08 May, 2006 11 commits
  3. 06 May, 2006 3 commits
  4. 05 May, 2006 10 commits
  5. 04 May, 2006 11 commits