From de41681afaa15345425a6d2bea8a43c717d77bb1 Mon Sep 17 00:00:00 2001 From: Sergey Petrunya Date: Tue, 25 Aug 2009 13:38:22 +0300 Subject: [PATCH] MWL#17: Table elimination - More test coverage - Remove unused code --- mysql-test/r/table_elim.result | 11 +++++++++-- mysql-test/t/table_elim.test | 2 ++ sql/opt_table_elimination.cc | 13 +++---------- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/mysql-test/r/table_elim.result b/mysql-test/r/table_elim.result index 4e53f4892bc..6d5a540fa04 100644 --- a/mysql-test/r/table_elim.result +++ b/mysql-test/r/table_elim.result @@ -314,8 +314,8 @@ create table t1 (a int, b int, c int, d int); insert into t1 values (0,0,0,0),(1,1,1,1),(2,2,2,2),(3,3,3,3); create table t2 (pk int primary key, b int) as select a as pk, a as b from t1 where a in (1,2); -create table t3 (pk int primary key, b int) -as select a as pk, a as b from t1 where a in (1,3); +create table t3 (pk1 int, pk2 int, b int, unique(pk1,pk2)); +insert into t3 select a as pk1, a as pk2, a as b from t1 where a in (1,3); explain select t1.a from t1 left join t2 on t2.pk=t1.a and t2.bkeys); /* Add dependencies for unique keys */ @@ -853,15 +853,8 @@ static Table_value *get_table_value(Func_dep_analyzer *fda, TABLE *table) static Field_value *get_field_value(Func_dep_analyzer *fda, Field *field) { TABLE *table= field->table; - Table_value *tbl_dep; + Table_value *tbl_dep= fda->table_deps[table->tablenr]; - /* First, get the table*/ - if (!(tbl_dep= fda->table_deps[table->tablenr])) - { - if (!(tbl_dep= get_table_value(fda, table))) - return NULL; - } - /* Try finding the field in field list */ Field_value **pfield= &(tbl_dep->fields); while (*pfield && (*pfield)->field->field_index < field->field_index)