1. 19 Jan, 2007 1 commit
  2. 18 Jan, 2007 3 commits
    • gkodinov/kgeorge@rakia.gmz's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 0d665bd5
      gkodinov/kgeorge@rakia.gmz authored
      into  rakia.gmz:/home/kgeorge/mysql/autopush/B25382-5.0-opt
      0d665bd5
    • gkodinov/kgeorge@macbook.gmz's avatar
      Bug #25382: Passing NULL to an UDF called from stored procedures · 20d94f11
      gkodinov/kgeorge@macbook.gmz authored
       crashes server
       Check for null value is reliable only after calling some of the 
       val_xxx() methods. If the val_xxx() method is not called
       the null_value flag will be set only for certain types of NULL
       values (like SQL constant NULLs for example).
       This caused a crash while trying to dereference a NULL pointer
       that is returned by val_str() for NULL values.
       Fixed by swapping the order of val_xxx() and null_value check.
      20d94f11
    • igor@olga.mysql.com's avatar
      Fixed bug #25580: incorrect stored representations of views in cases · c1927e9a
      igor@olga.mysql.com authored
      when they contain the '!' operator.
      Added an implementation for the method Item_func_not::print. 
      The method encloses any NOT expression into extra parentheses to avoid
      incorrect stored representations of views that use the '!' operators.
      Without this change when a view was created that contained
      the expression !0*5  its stored representation contained not this
      expression but rather the expression not(0)*5 . 
      The operator '!' is of a higher precedence than '*', while NOT is 
      of a lower precedence than '*'. That's why the expression !0*5 
      is interpreted as not(0)*5, while the expression not(0)*5 is interpreted
      as not((0)*5) unless sql_mode is set to HIGH_NOT_PRECEDENCE.
      Now we translate !0*5 into (not(0))*5. 
      c1927e9a
  3. 15 Jan, 2007 7 commits
  4. 13 Jan, 2007 1 commit
  5. 12 Jan, 2007 4 commits
  6. 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
  7. 10 Jan, 2007 10 commits
  8. 09 Jan, 2007 6 commits