1. 22 Sep, 2007 2 commits
    • evgen@sunlight.local's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 7ed30b97
      evgen@sunlight.local authored
      into  sunlight.local:/local_work/27216-bug-5.0-opt-mysql
      7ed30b97
    • evgen@sunlight.local's avatar
      Bug#27216: functions with parameters of different date types may return wrong · 36bf417b
      evgen@sunlight.local authored
      type of the result.
      
      There are several functions that accept parameters of different types.
      The result field type of such functions was determined based on
      the aggregated result type of its arguments. As the DATE and the DATETIME
      types are represented by the STRING type, the result field type
      of the affected functions was always STRING for DATE/DATETIME arguments.
      The affected functions are COALESCE, IF, IFNULL, CASE, LEAST/GREATEST, CASE.
      
      Now the affected functions aggregate the field types of their arguments rather
      than their result types and return the result of aggregation as their result
      field type.
      The cached_field_type member variable is added to the number of classes to
      hold the aggregated result field type.
      The str_to_date() function's result field type now defaults to the
      MYSQL_TYPE_DATETIME.
      The agg_field_type() function is added. It aggregates field types with help
      of the Field::field_type_merge() function.
      The create_table_from_items() function now uses the 
      item->tmp_table_field_from_field_type() function to get the proper field
      when the item is a function with a STRING result type.
      36bf417b
  2. 21 Sep, 2007 1 commit
    • evgen@sunlight.local's avatar
      Bug#30384: Having SQL_BUFFER_RESULT option in the CREATE .. KEY(..) .. SELECT · bb5cdfb8
      evgen@sunlight.local authored
      led to creating corrupted index.
      
      While execution of the  CREATE .. SELECT SQL_BUFFER_RESULT statement the 
      engine->start_bulk_insert function was called twice. On the first call
      On the first call MyISAM disabled all non-unique indexes and on the second
      call it decides to not re-enable them because all indexes was disabled.
      Due to this no indexes was actually created during CREATE TABLE thus
      producing crashed table.
      
      Now the select_inset class has is_bulk_insert_mode flag which prevents
      calling the start_bulk_insert function twice.
      The flag is set in the select_create::prepare, select_insert::prepare2
      functions and the select_insert class constructor.
      The flag is reset in the select_insert::send_eof function.
      bb5cdfb8
  3. 20 Sep, 2007 2 commits
  4. 19 Sep, 2007 1 commit
  5. 15 Sep, 2007 1 commit
  6. 14 Sep, 2007 10 commits
  7. 13 Sep, 2007 5 commits
  8. 12 Sep, 2007 6 commits
  9. 11 Sep, 2007 1 commit
  10. 10 Sep, 2007 3 commits
  11. 06 Sep, 2007 1 commit
  12. 04 Sep, 2007 2 commits
  13. 03 Sep, 2007 5 commits