1. 20 Apr, 2007 4 commits
    • sergefp@mysql.com's avatar
      Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 479c8cda
      sergefp@mysql.com authored
      into  mysql.com:/home/psergey/mysql-5.0-bug27939
      479c8cda
    • gkodinov/kgeorge@magare.gmz's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · bcde01f6
      gkodinov/kgeorge@magare.gmz authored
      into  magare.gmz:/home/kgeorge/mysql/autopush/B27786-5.0-opt
      bcde01f6
    • mhansson@dl145s.mysql.com's avatar
      Bug #24778: Innodb: No result when using ORDER BY · f0fc4b88
      mhansson@dl145s.mysql.com authored
      This bug was intruduced by the fix for bug#17212 (in 4.1). It is not 
      ok to call test_if_skip_sort_order since this function will 
      alter the execution plan. By contract it is not ok to call 
      test_if_skip_sort_order in this context.
      
      This bug appears only in the case when the optimizer has chosen 
      an index for accessing a particular table but finds a covering 
      index that enables it to skip ORDER BY. This happens in 
      test_if_skip_sort_order.
      f0fc4b88
    • gkodinov/kgeorge@magare.gmz's avatar
      Bug #27786: · 4c89a596
      gkodinov/kgeorge@magare.gmz authored
      When merging views into the enclosing statement
      the ORDER BY clause of the view is merged to the
      parent's ORDER BY clause.
      However when the VIEW is merged into an UNION
      branch the ORDER BY should be ignored. 
      Use of ORDER BY for individual SELECT statements
      implies nothing about the order in which the rows
      appear in the final result because UNION by default
      produces unordered set of rows.
      Fixed by ignoring the ORDER BY clause from the merge
      view when expanded in an UNION branch.
      4c89a596
  2. 19 Apr, 2007 2 commits
  3. 18 Apr, 2007 2 commits
    • sergefp@mysql.com's avatar
      BUG#27939: Early NULLs filtering doesn't work for eq_ref access · 83e6352c
      sergefp@mysql.com authored
       - Turn it on for JT_EQ_REF access method
      83e6352c
    • igor@olga.mysql.com's avatar
      Fixed bug #27870. The bug that causes crashes manifests itself at some · 6ad81b4e
      igor@olga.mysql.com authored
      conditions when executing an equijoin query with WHERE condition
      containing a subquery predicate of the form join_attr NOT IN (SELECT ...).
      
      To resolve a problem of the correct evaluation of the expression
        attr NOT IN (SELECT ...)
      an array of guards is created to make it possible to filter out some 
      predicates of the EXISTS subquery into which the original subquery 
      predicate is transformed, in the cases when a takes the NULL value. 
      If attr is defined as a field that cannot be NULL than such an array 
      is not needed and is not created. 
      However if the field a occurred also an an equijoin predicate t2.a=t1.b
      and table t1 is accessed before table t2 then it may happen that the 
      the EXISTS subquery is pushed down to the condition evaluated just after
      table t1 has been accessed. In this case any occurrence of t2.a is 
      substituted for t1.b. When t1.b takes the value of NULL an attempt is 
      made to turn on the corresponding guard. This action caused a crash as 
      no guard array had been created.
      
      Now the code of Item_in_subselect::set_cond_guard_var checks that the guard
      array has been created before setting a guard variable on. Otherwise the
      method does nothing. It cannot results in returning a row that could be
      rejected as the condition t2.a=t1.b will be checked later anyway.        
      6ad81b4e
  4. 15 Apr, 2007 4 commits
    • evgen@moonbone.local's avatar
      item.cc: · 7d71d580
      evgen@moonbone.local authored
        Fix warning after fix for bug#27321.
      7d71d580
    • evgen@moonbone.local's avatar
      subselect.test, subselect.result: · 51badadd
      evgen@moonbone.local authored
        After merge fix.
      51badadd
    • evgen@moonbone.local's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 922a5a96
      evgen@moonbone.local authored
      into  moonbone.local:/mnt/gentoo64/work/27321-bug-5.0-opt-mysql
      922a5a96
    • evgen@moonbone.local's avatar
      Bug#27321: Wrong subquery result in a grouping select. · 3113ce63
      evgen@moonbone.local authored
      The Item_outer_ref class based on the Item_direct_ref class was always used
      to represent an outer field. But if the outer select is a grouping one and the 
      outer field isn't under an aggregate function which is aggregated in that
      outer select an Item_ref object should be used to represent such a field.
      If the outer select in which the outer field is resolved isn't grouping then
      the Item_field class should be used to represent such a field.
      This logic also should be used for an outer field resolved through its alias
      name.
      
      Now the Item_field::fix_outer_field() uses Item_outer_field objects to
      represent aliased and non-aliased outer fields for grouping outer selects
      only.
      Now the fix_inner_refs() function chooses which class to use to access outer
      field - the Item_ref or the Item_direct_ref. An object of the chosen class
      substitutes the original field in the Item_outer_ref object.
      The direct_ref and the found_in_select_list fields were added to the
      Item_outer_ref class.
      3113ce63
  5. 14 Apr, 2007 3 commits
  6. 13 Apr, 2007 2 commits
  7. 12 Apr, 2007 10 commits
  8. 11 Apr, 2007 13 commits