• Sergey Petrunya's avatar
    BUG#49129: Wrong result with IN-subquery with join_cache_level=6 and firstmatch=off · 4371de02
    Sergey Petrunya authored
    - The problem was that DuplicateWeedout strategy setup code wasn't aware of the 
      fact that join buffering will be used and applied optimization that doesn't work
      together with join buffering. Fixed by making DuplicateWeedout setup code to have 
      a pessimistic check about whether there is a chance that join buffering will be 
      used.
    - Make JOIN_CACHE_BKA::init() correctly process Copy_field elements that denote saving
      current rowids in the join buffer.
    
    mysql-test/r/subselect_sj2.result:
      Update test results
    mysql-test/r/subselect_sj2_jcl6.result:
      Update test results
    mysql-test/r/subselect_sj_jcl6.result:
      Testcase
    mysql-test/t/subselect_sj2.test:
      Update test results
    mysql-test/t/subselect_sj_jcl6.test:
      Testcase
    sql/opt_subselect.cc:
      - The problem was that DuplicateWeedout strategy setup code wasn't aware of the 
        fact that join buffering will be used and applied optimization that doesn't work
        together with join buffering. Fixed by making DuplicateWeedout setup code to have 
        a pessimistic check about whether there is a chance that join buffering will be 
        used.
    sql/sql_join_cache.cc:
      Make JOIN_CACHE_BKA::init() correctly process Copy_field elements that denote saving current rowids in the join buffer.
    sql/sql_select.cc:
      Added a question note
    4371de02
sql_join_cache.cc 102 KB