• Sergey Glukhov's avatar
    Bug#11766594 59736: SELECT DISTINCT.. INCORRECT RESULT WITH DETERMINISTIC FUNCTION IN WHERE C · 3468b55a
    Sergey Glukhov authored
    There is an optimization of DISTINCT in JOIN::optimize()
    which depends on THD::used_tables value. Each SELECT statement
    inside SP resets used_tables value(see mysql_select()) and it
    leads to wrong result. The fix is to replace THD::used_tables
    with LEX::used_tables.
    
    
    mysql-test/r/sp.result:
      test case
    mysql-test/t/sp.test:
      test case
    sql/sql_base.cc:
      THD::used_tables is replaced with LEX::used_tables
    sql/sql_class.cc:
      THD::used_tables is replaced with LEX::used_tables
    sql/sql_class.h:
      THD::used_tables is replaced with LEX::used_tables
    sql/sql_insert.cc:
      THD::used_tables is replaced with LEX::used_tables
    sql/sql_lex.cc:
      THD::used_tables is replaced with LEX::used_tables
    sql/sql_lex.h:
      THD::used_tables is replaced with LEX::used_tables
    sql/sql_prepare.cc:
      THD::used_tables is replaced with LEX::used_tables
    sql/sql_select.cc:
      THD::used_tables is replaced with LEX::used_tables
    3468b55a
sql_select.cc 554 KB