1. 15 Jan, 2007 3 commits
    • evgen@moonbone.local's avatar
      sql_select.cc: · 53a4949d
      evgen@moonbone.local authored
        Fix for crashes on 64bit platforms after fixing bug#23417.
      53a4949d
    • gkodinov/kgeorge@rakia.gmz's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · fcf2b139
      gkodinov/kgeorge@rakia.gmz authored
      into  rakia.gmz:/home/kgeorge/mysql/autopush/B20420-5.0-opt
      fcf2b139
    • gkodinov/kgeorge@macbook.gmz's avatar
      BUG#20420: optimizer reports wrong keys on left join with IN · 134e9493
      gkodinov/kgeorge@macbook.gmz authored
       The optimizer needs to evaluate whether predicates are better
       evaluated using an index. IN is one such predicate.
       To qualify an IN predicate must involve a field of the index
       on the left and constant arguments on the right.
       However whether an expression is a constant can be determined only
       by knowing the preceding tables in the join order. 
       Assuming that only IN predicates with expressions on the right that
       are constant for the whole query qualify limits the scope of 
       possible optimizations of the IN predicate (more specifically it
       doesn't allow the "Range checked for each record" optimization for
       such an IN predicate.
       Fixed by not pre-determining the optimizability of the IN predicate
       in the case when all right IN operands are not SQL constant expressions
      134e9493
  2. 12 Jan, 2007 4 commits
  3. 11 Jan, 2007 8 commits
    • evgen@moonbone.local's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 1d92b6cd
      evgen@moonbone.local authored
      into  moonbone.local:/work/23417-bug-5.0-opt-mysql
      1d92b6cd
    • evgen@moonbone.local's avatar
      Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode. · 19ee0a94
      evgen@moonbone.local authored
      Currently in the ONLY_FULL_GROUP_BY mode no hidden fields are allowed in the
      select list. To ensure this each expression in the select list is checked
      to be a constant, an aggregate function or to occur in the GROUP BY list.
      The last two requirements are wrong and doesn't allow valid expressions like
      "MAX(b) - MIN(b)" or "a + 1" in a query with grouping by a.
      
      The correct check implemented by the patch will ensure that:
      any field reference in the [sub]expressions of the select list 
        is under an aggregate function or
        is mentioned as member of the group list or
        is an outer reference or
        is part of the select list element that coincide with a grouping element.
      
      The Item_field objects now can contain the position of the select list
      expression which they belong to. The position is saved during the
      field's Item_field::fix_fields() call.
      
      The non_agg_fields list for non-aggregated fields is added to the SELECT_LEX
      class. The SELECT_LEX::cur_pos_in_select_list now contains the position in the
      select list of the expression being currently fixed.
      19ee0a94
    • gkodinov/kgeorge@rakia.gmz's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 7eebacad
      gkodinov/kgeorge@rakia.gmz authored
      into  rakia.gmz:/home/kgeorge/mysql/autopush/B25106-5.0-opt
      7eebacad
    • gkodinov/kgeorge@macbook.gmz's avatar
      BUG#25106: A USING clause in combination with a VIEW results in column · 15bcf131
      gkodinov/kgeorge@macbook.gmz authored
                 aliases ignored
      When a column reference to a column in JOIN USING is resolved and a new 
      Item is created for this column the user defined name was lost.
      This fix preserves the alias by setting the name of the new Item to the
      original alias.
      15bcf131
    • evgen@moonbone.local's avatar
      Bug#23409: Arguments of the ENCODE() and the DECODE() functions were not printed · fc0e206c
      evgen@moonbone.local authored
      correctly.
      
      The Item_func::print method was used to print the Item_func_encode and the
      Item_func_decode objects. The last argument to ENCODE and DECODE functions
      is a plain C string and thus Item_func::print wasn't able to print it.
      
      The print() method is added to the Item_func_encode class. It correctly
      prints the Item_func_encode and the Item_func_decode objects.
      fc0e206c
    • evgen@moonbone.local's avatar
      Merge fix for bug#17711 · f35e10d4
      evgen@moonbone.local authored
      f35e10d4
    • evgen@moonbone.local's avatar
      Bug#17711: DELETE doesn't use index when ORDER BY, LIMIT and non-restricting · c17bf5cb
      evgen@moonbone.local authored
      WHERE is present.
      
      If a DELETE statement with ORDER BY and LIMIT contains a WHERE clause
      with conditions that for sure cannot be used for index access (like in
      WHERE @var:= field) the execution always follows the filesort path.    
      It happens currently even when for the above case there is an index that
      can be used to speedup sorting by the order by list.
      
      Now if a DELETE statement with ORDER BY and LIMIT contains such WHERE
      clause conditions that cannot be used to build any quick select then
      the mysql_delete() tries to use an index like there is no WHERE clause at all.
      c17bf5cb
    • holyfoot/hf@mysql.com/hfmain.(none)'s avatar
      Merge bk@192.168.21.1:mysql-5.0-opt · 3ff9dff0
      holyfoot/hf@mysql.com/hfmain.(none) authored
      into  mysql.com:/d2/hf/mr10/my50-mr10
      3ff9dff0
  4. 10 Jan, 2007 10 commits
  5. 09 Jan, 2007 14 commits
  6. 05 Jan, 2007 1 commit