1. 10 Oct, 2008 5 commits
    • Gleb Shchepa's avatar
      manual merge 5.0-bugteam --> 5.1-bugteam · a99bc695
      Gleb Shchepa authored
      a99bc695
    • Gleb Shchepa's avatar
      automerge 5.0-bugteam --> 5.1-bugteam · fe3aee30
      Gleb Shchepa authored
      fe3aee30
    • Gleb Shchepa's avatar
      Bug #37894: Assertion in init_read_record_seq in handler.h line 1444 · 27f4c34b
      Gleb Shchepa authored
      Select with a "NULL NOT IN" condition containing complex
      subselect from the same table as in the outer select failed
      with an assertion.
      
      
      The failure was caused by a concatenation of circumstances:
      1) an inner select was optimized by make_join_statistics to use
         the QUICK_RANGE_SELECT access method (that implies an index
         scan of the table);
      2) a subselect was independent (constant) from the outer select;
      3) a condition was pushed down into inner select.
      
      During the evaluation of a constant IN expression an optimizer
      temporary changed the access method from index scan to table
      scan, but an engine handler was already initialized for index
      access by make_join_statistics. That caused an assertion.
      
      
      Unnecessary index initialization has been removed from
      the QUICK_RANGE_SELECT::init method (QUICK_RANGE_SELECT::reset
      reinvokes this initialization).
      27f4c34b
    • Gleb Shchepa's avatar
      Bug #39283: Date returned as VARBINARY to client for queries · e7520c4b
      Gleb Shchepa authored
                  with COALESCE and JOIN
      
      The server returned to a client the VARBINARY column type
      instead of the DATE type for a result of the COALESCE,
      IFNULL, IF, CASE, GREATEST or LEAST functions if that result
      was filesorted in an anonymous temporary table during
      the query execution.
      
      For example:
        SELECT COALESCE(t1.date1, t2.date2) AS result
          FROM t1 JOIN t2 ON t1.id = t2.id ORDER BY result;
      
      
      To create a column of various date/time types in a
      temporary table the create_tmp_field_from_item() function
      uses the Item::tmp_table_field_from_field_type() method
      call. However, fields of the MYSQL_TYPE_NEWDATE type were
      missed there, and the VARBINARY columns were created
      by default.
      Necessary condition has been added.
      e7520c4b
    • Georgi Kodinov's avatar
      Bug #32124 addendum #2 · ac0027ae
      Georgi Kodinov authored
       - fixed an unitialized memory read
       - fixed a compilation warning
       - added a suppression for FC9 x86_64
      ac0027ae
  2. 09 Oct, 2008 6 commits
  3. 08 Oct, 2008 3 commits
    • Georgi Kodinov's avatar
      merge 5.1-bugteam -> bug 32124 5.1 tree · 8c6ffe36
      Georgi Kodinov authored
      8c6ffe36
    • Georgi Kodinov's avatar
      Bug #32124: crash if prepared statements refer to variables in the where clause · 489ad44a
      Georgi Kodinov authored
                        
      The code to get read the value of a system variable was extracting its value 
      on PREPARE stage and was substituting the value (as a constant) into the parse tree.
      Note that this must be a reversible transformation, i.e. it must be reversed before
      each re-execution.
      Unfortunately this cannot be reliably done using the current code, because there are
      other non-reversible source tree transformations that can interfere with this
      reversible transformation.
      Fixed by not resolving the value at PREPARE, but at EXECUTE (as the rest of the 
      functions operate). Added a cache of the value (so that it's constant throughout
      the execution of the query). Note that the cache also caches NULL values.
      Updated an obsolete related test suite (variables-big) and the code to test the 
      result type of system variables (as per bug 74).
      489ad44a
    • Marc Alff's avatar
      Merge 5.1-bugteam -> local bugfix branch · e300184c
      Marc Alff authored
      e300184c
  4. 07 Oct, 2008 10 commits
  5. 06 Oct, 2008 16 commits