• unknown's avatar
    MWL#68 Subquery optimization: Efficient NOT IN execution with NULLs · 3d2a7460
    unknown authored
    This patch does three things:
    - It adds the possibility to force the execution of top-level [NOT] IN
      subquery predicates via the IN=>EXISTS transformation. This is done by
      setting both optimizer switches partial_match_rowid_merge and
      partial_match_table_scan to "off".
    - It adjusts all test cases where the complete optimizer_switch is
      selected because now we have two more switches.
    - For those test cases where the plan changes because of the new available
      strategies, we switch off both partial match strategies in order to
      force the "old" IN=>EXISTS strategy. This is done because most of these
      test cases specifically test bugs in this strategy.
    
    sql/opt_subselect.cc:
      Adds the possibility to force the execution of top-level [NOT] IN
      subquery predicates via the IN=>EXISTS transformation. This is done by
      setting both optimizer switches partial_match_rowid_merge and
      partial_match_table_scan to "off".
    3d2a7460
subselect.test 142 KB