1. 12 Jan, 2009 5 commits
    • Timothy Smith's avatar
      Applying InnoDB snapshot innodb-5.1-ss3603 · 2030b8cc
      Timothy Smith authored
      Detailed description of changes:
      
      r2981 | marko | 2008-11-07 14:54:10 +0200 (Fri, 07 Nov 2008) | 6 lines
      branches/5.1: row_mysql_store_col_in_innobase_format(): Correct a misleading
      comment. In the UTF-8 encoding, ASCII takes 1 byte per character, while
      the "latin1" character set (normally ISO-8859-1, but in MySQL it actually
      refers to the Windows Code Page 1252 a.k.a. CP1252, WinLatin1)
      takes 1 to 3 bytes (1 to 2 bytes for the ISO-8859-1 subset).
      
      r3114 | calvin | 2008-11-14 20:31:48 +0200 (Fri, 14 Nov 2008) | 8 lines
      branches/5.1: fix bug#40386: Not flushing query cache after truncate
      
      ha_statistics.records can not be 0 unless the table is empty, set to
      1 instead. The original problem of bug 29507 is fixed in the server.
      
      Additional test was done with the fix of bug 29507 in the server.
      
      Approved by: Heikki (on IM)
      2030b8cc
    • Timothy Smith's avatar
      Applying InnoDB snapshot innodb-5.1-ss3603 · 9b798058
      Timothy Smith authored
      Detailed description of changes:
      r2929 | marko | 2008-10-29 21:26:14 +0200 (Wed, 29 Oct 2008) | 13 lines
      branches/5.1: dtype_get_sql_null_size(): return the correct storage
      size of a SQL NULL column. (Bug #40369)
      
      When MySQL Bug #20877 was fixed in r834, this function was
      accidentally modified to return 0 or 1. Apparently, the only impact of
      this bug is that fixed-length columns cannot be updated in-place from
      or to SQL NULL, even in ROW_FORMAT=REDUNDANT.  After this fix,
      fixed-length columns in ROW_FORMAT=REDUNDANT will have a constant
      storage size as they should, no matter if NULL or non-NULL.  The bug
      caused fixed-length NULL columns to occupy 1 byte.
      
      rb://37 approved by Heikki over IM.
      9b798058
    • Timothy Smith's avatar
      Applying InnoDB snapshot innodb-5.1-ss3603 · ab216c87
      Timothy Smith authored
      Detailed description of changes:
      r2902 | vasil | 2008-10-28 12:10:25 +0200 (Tue, 28 Oct 2008) | 10 lines
      branches/5.1:
      
      Fix Bug#38189 innodb_stats_on_metadata missing
      
      Make the variable innodb_stats_on_metadata visible to the users and
      also settable at runtime. Previously it was only "visible" as a command
      line startup option to mysqld.
      
      Approved by:	Marko (https://svn.innodb.com/rb/r/36)
      ab216c87
    • Davi Arnaut's avatar
    • Tatiana A. Nurnberg's avatar
      Bug#31177: Server variables can't be set to their current values · a7d03bf4
      Tatiana A. Nurnberg authored
      Bounds-checks and blocksize corrections were applied to user-input,
      but constants in the server were trusted implicitly. If these values
      did not actually meet the requirements, the user could not set change
      a variable, then set it back to the (wonky) factory default or maximum
      by explicitly specifying it (SET <var>=<value> vs SET <var>=DEFAULT).
      
      Now checks also apply to the server's presets. Wonky values and maxima
      get corrected at startup. Consequently all non-offsetted values the user
      sees are valid, and users can set the variable to that exact value if
      they so desire.
      a7d03bf4
  2. 09 Jan, 2009 16 commits
  3. 08 Jan, 2009 6 commits
    • Davi Arnaut's avatar
      Auto-merge from upstream 5.1-bugteam · 8ce156a6
      Davi Arnaut authored
      8ce156a6
    • Horst Hunger's avatar
      8c294458
    • Mattias Jonsson's avatar
      merge · ec9f8852
      Mattias Jonsson authored
      ec9f8852
    • Tatiana A. Nurnberg's avatar
      Bug#41470: DATE_FORMAT() crashes the complete server with a valid date · 17bbe30c
      Tatiana A. Nurnberg authored
      Passing dubious "year zero" in non-zero date (not "0000-00-00") could
      lead to negative value for year internally, while variable was unsigned.
      This led to Really Bad Things further down the line.
      
      Now doing calculations with signed type for year internally.
      17bbe30c
    • Timothy Smith's avatar
      Auto-merge from upstream 5.1-bugteam · 72982373
      Timothy Smith authored
      72982373
    • Timothy Smith's avatar
      Fix a few problems after latest bunch of InnoDB snapshot changes: · e6100a22
      Timothy Smith authored
      The binlog_innodb test was sensitive to what tests ran before it.  Now run
      FLUSH STATUS before performing operations that need to be checked.
      
      sys_var_thd_ulong::update() was improperly casting an option value from
      ulonglong to ulong before comparing it to the max allowed value.  On systems
      where ulong and ulonglong are of different size, this caused values greater
      than ULONG_MAX to wrap around (not be truncated to ULONG_MAX, which appears to
      have been the intention of the original coder), and caused some checks to work
      incorrectly.  This wasn't generally visible to the user, because later checks
      would prevent the wrapped-around value from being used.  But it caused warning
      messages to differ between 32- and 64-bit platforms.  Fix is to just remove the
      cast.  Also added a DBUG_ASSERT to ensure that the value really is capped
      properly before finally stuffing it into the ulong.
      e6100a22
  4. 07 Jan, 2009 6 commits
  5. 05 Jan, 2009 6 commits
  6. 31 Dec, 2008 1 commit
    • Gleb Shchepa's avatar
      Bug #41363: crash of mysqld on windows with aggregate in case · 33cbf93c
      Gleb Shchepa authored
      Execution of queries containing the CASE function of
      aggregate function like in "SELECT ... CASE ARGV(...) WHEN ..."
      crashed the server.
      
      
      The CASE function caches pointers to concrete comparison
      functions for an each pair of types of CASE-WHERE clause
      parameters, i.e. for the "CASE INT_RESULT WHERE REAL_RESULT
      THEN ... WHERE DECIMAL_RESULT ... END" function call it
      caches comparisons for INT_RESULT with REAL_RESULT and
      for INT_RESULT with DECIMAL_RESULT. Usually a result
      type is known after a call to the fix_fields function,
      however, the setup_copy_fields function call may
      wrap aggregate items with Item_copy_string that has
      STRING_RESULT result type, so setup_copy_fields may
      change argument result types of the CASE function after
      call to Item_func_case::fix_fields/fix_length_and_dec.
      Then the Item_func_case::find_item function tries to
      use comparison function for unexpected pair of the
      STRING_RESULT and some other type - that caused
      an assertion failure of server crash.
      
      The Item_func_case::fix_length_and_dec function has
      been modified to take into account possible STRING_RESULT
      result type in the presence of aggregate arguments of
      the CASE function.
      33cbf93c