• Evgeny Potemkin's avatar
    Bug#30302: Tables that were optimized away are printed in the · 60fc8507
    Evgeny Potemkin authored
    EXPLAIN EXTENDED warning.
    
    Query optimizer searches for the constant tables and optimizes them away. This
    means that fields of such tables are substituted for their values and on later
    phases they are treated as constants. After this constant tables are removed
    from the query execution plan. Nevertheless constant tables were shown in 
    the EXPLAIN EXTENDED warning thus producing query that might be not an
    equivalent of the original query.
            
    Now the print_join function skips all tables that were optimized away from
    printing to the EXPLAIN EXTENDED warning. If all tables were optimized away it
    produces the 'FROM dual' clause.
    
    
    mysql-test/r/explain.result:
      A test case added for the bug#30302.
    mysql-test/r/func_default.result:
      Adjusted test case result after fix for the bug#30302.
    mysql-test/r/func_regexp.result:
      Adjusted test case result after fix for the bug#30302.
    mysql-test/r/func_test.result:
      Adjusted test case result after fix for the bug#30302.
    mysql-test/r/having.result:
      Adjusted test case result after fix for the bug#30302.
    mysql-test/r/select.result:
      Adjusted test case result after fix for the bug#30302.
    mysql-test/r/subselect.result:
      Adjusted test case result after fix for the bug#30302.
    mysql-test/r/subselect3.result:
      Adjusted test case result after fix for the bug#30302.
    mysql-test/r/type_datetime.result:
      Adjusted test case result after fix for the bug#30302.
    mysql-test/t/explain.test:
      A test case added for the bug#30302.
    sql/sql_select.cc:
      Bug#30302: Tables that were optimized away are printed in the
      EXPLAIN EXTENDED warning.
      Now the print_join function skips all tables that were optimized away from
      printing to the EXPLAIN EXTENDED warning. If all tables were optimized away it
      produces the 'FROM dual' clause.
    sql/table.h:
      Adjusted test case result after fix for the bug#30302.
      The optimized_away flag is added to the TABLE_LIST struct.
    60fc8507
subselect.result 160 KB