-
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