• unknown's avatar
    Bug #32942 now() - interval '7200' second NOT pre-calculated, causing "full table scan" · d6be1a9b
    unknown authored
    Problem is not about intervals and doesn't actually cause 'full table scan'.
    We have an optimization for DISTINCT when we have
    'DISTINCT field_from_first_join_table' we don't need to read all the
    rows from the JOIN-ed table if we found one conforming row.
    It stopped working in 5.0 as we return NESTED_LOOP_OK if we came upon
    that case in the evaluate_join_record() and that doesn't break the
    recordreading loop in sub_select().
    
    Fixed by returning NESTED_LOOP_NO_MORE_ROWS in this case.
    
    
    mysql-test/r/select.result:
      Bug #32942 now() - interval '7200' second is NOT pre-calculated, causing "full table scan".
      
      test result
    mysql-test/t/select.test:
      Bug #32942 now() - interval '7200' second is NOT pre-calculated, causing "full table scan"
      
      test case
    sql/sql_select.cc:
      Bug #32942 now() - interval '7200' second NOT pre-calculated, causing "full table scan"
      
      return NESTED_LOOP_NO_MORE_ROWS when we don't need to read rows from
      this table anymore
    d6be1a9b
sql_select.cc 499 KB