• unknown's avatar
    Bug #21302: Result not properly sorted when using an ORDER BY on a second · 06a302ef
    unknown authored
                 table in a join
     The optimizer removes redundant columns in ORDER BY. It is considering 
    redundant every reference to const table column, e.g b in :
    create table t1 (a int, b int, primary key(a)); 
    select 1 from t1 order by b where a = 1
    
    But it must not remove references to const table columns if the 
    const table is an outer table because there still can be 2 values :
    the const value and NULL. e.g.:
    create table t1 (a int, b int, primary key(a));
    select t2.b c from t1 left join t1 t2 on (t1.a = t2.a and t2.a = 5) 
      order by c;
    
    
    mysql-test/r/join_outer.result:
      Bug #21302: Result not properly sorted when using an ORDER BY on a second 
                  table in a join
       - don't remove columns of const tables in ORDER BY if the const table 
         is an outer table.
    mysql-test/r/order_by.result:
      Bug #21302: Result not properly sorted when using an ORDER BY on a second 
                  table in a join
       - test case
    mysql-test/t/order_by.test:
      Bug #21302: Result not properly sorted when using an ORDER BY on a second 
                  table in a join
       - test case
    sql/sql_select.cc:
      Bug #21302: Result not properly sorted when using an ORDER BY on a second 
                  table in a join
       - don't remove columns of const tables in ORDER BY if the const table 
         is an outer table.
    06a302ef
sql_select.cc 453 KB