• Sergey Petrunia's avatar
    MWL#17: Table elimination · 9e65634b
    Sergey Petrunia authored
    - Make elimination check to be able detect cases like  t.primary_key_col1=othertbl.col AND t.primary_key_col2=func(t.primary_key_col1).
      These are needed to handle e.g. the case of func() being a correlated subquery that selects the latest value.
    - If we've removed a condition with subquery predicate, EXPLAIN [EXTENDED] won't show the subquery anymore
    
    sql/item.cc:
      MWL#17: Table elimination
      - Add tem_field::check_column_usage_processor(). it allows to check which key parts a condition depends on.
    sql/item.h:
      MWL#17: Table elimination
      - Add tem_field::check_column_usage_processor(). it allows to check which key parts a condition depends on.
    sql/item_subselect.cc:
      MWL#17: Table elimination
      - Item_subselect got 'eliminated' attribute. It is used only to determine if the subselect should be printed by EXPLAIN.
      - Item_subselect got List<Item> refers_to - a list of item in the current select that are referred to from within the subselect.
      - Added Item_*::check_column_usage_processor(). it allows to check which key parts a condition depends on.
      - Added a comment about possible problem in Item_subselect::walk
    sql/item_subselect.h:
      MWL#17: Table elimination
      - Item_subselect got 'eliminated' attribute. It is used only to determine if the subselect should be printed by EXPLAIN.
      - Item_subselect got List<Item> refers_to - a list of item in the current select that are referred to from within the subselect.
      - Added Item_*::check_column_usage_processor(). it allows to check which key parts a condition depends on.
    sql/item_sum.cc:
      MWL#17: Table elimination
    sql/sql_lex.cc:
      MWL#17: Table elimination
    sql/sql_lex.h:
      MWL#17: Table elimination
    sql/sql_select.h:
      MWL#17: Table elimination
    9e65634b
item_subselect.h 18.3 KB