1. 18 Aug, 2008 2 commits
  2. 15 Aug, 2008 14 commits
    • Chad MILLER's avatar
      Merge from 5.0-bugteam. · 7401c1a5
      Chad MILLER authored
      7401c1a5
    • Chad MILLER's avatar
      Bug#37301 Length and Max_length differ with no obvious reason(2nd version) · 63255c04
      Chad MILLER authored
      Length value is the length of the field,
      Max_length is the length of the field value.
      So Max_length can not be more than Length.
      The fix: fixed calculation of the Item_empty_string item length
      
      (Patch applied and queued on demand of Trudy/Davi.)
      
      sql/item.h:
        fixed calculation of the item length
      sql/sql_show.cc:
        removed unnecessary code
      63255c04
    • Chad MILLER's avatar
      Merge from 5.0-bugteam. · 996f2808
      Chad MILLER authored
      996f2808
    • Chad MILLER's avatar
      Bug#36270: incorrect calculation result - works in 4.1 but not in 5.0 or 5.1 · cebc2bf6
      Chad MILLER authored
      When the fractional part in a multiplication of DECIMALs
      overflowed, we truncated the first operand rather than the
      longest. Now truncating least significant places instead
      for more precise multiplications.
      
      (Queuing at demand of Trudy/Davi.)
      
      mysql-test/r/type_newdecimal.result:
        show that if we need to truncate the scale of an operand, we pick the
        right one (that is, we discard the least significant decimal places)
      mysql-test/t/type_newdecimal.test:
        show that if we need to truncate the scale of an operand, we pick the
        right one (that is, we discard the least significant decimal places)
      strings/decimal.c:
        when needing to disregard fractional parts, pick the least
        significant ones
      cebc2bf6
    • Chad MILLER's avatar
      Merge from 5.0-bugteam. · 037bc7e7
      Chad MILLER authored
      037bc7e7
    • Chad MILLER's avatar
      Bug#21579 - innodb_concurrent random failures with varying differences · 2fe4cd57
      Chad MILLER authored
      Due to unknown changes the test failed in some ways.
      
      Fixed by checking the test case in detail, commenting the expected behavior,
      and fixing error directives.
      
      In the course of the analyze unneeded get_lock()/release_lock() use,
      unneeded send/reap use, and unneeded sleeps were removed. The lock wait
      timeout was reduced to 1 second, so that this is no big-test any more.
      
      The test was split into two parts, one running the tests with
      --innodb_locks_unsafe_for_binlog, the other part without.
      The main part (include/concurrent.inc) conditionally expects
      lock wait timeouts based on the value of the system variable
      innodb_locks_unsafe_for_binlog.
      
      The major part of the patch comes from Kristofer Pettersson.
      
      (Chad queues this patch on demand by Trudy/Davi.)
      2fe4cd57
    • Chad MILLER's avatar
      Bug#38272: timestamps fields incorrectly defaulted on \ · 6e602d6c
      Chad MILLER authored
      	update accross partitions.
            
      It's not Innodb-specific bug.
      ha_partition::update_row() didn't set
      table->timestamp_field_type= TIMESTAMP_NO_AUTO_SET when
      orig_timestamp_type == TIMESTAMP_AUTO_SET_ON_INSERT.
      
      So that a partition sets the timestamp field when a record
      is moved to a different partition.
      
      Fixed by doing '= TIMESTAMP_NO_AUTO_SET' unconditionally.
      Also ha_partition::write_row() is fixed in same way as now
      Field_timestamp::set() is called twice in SET_ON_INSERT case.
      
      (Chad queues this patch on demand by Trudy/Davi.)
      
      mysql-test/r/partition.result:
        Bug#38272 timestamps fields incorrectly defaulted on update accross partitions.
        test result
      mysql-test/t/partition.test:
        Bug#38272 timestamps fields incorrectly defaulted on update accross partitions.
        test case
      sql/ha_partition.cc:
        Bug#38272 timestamps fields incorrectly defaulted on update accross partitions.
        Do table->timestamp_field_type= TIMESTAMP_NO_AUTO_SET unconditionally
        in ha_partition::update_row and ::write_row()
      6e602d6c
    • Chad MILLER's avatar
    • Davi Arnaut's avatar
      Merge from mysql-5.1 main. · 0fc838d5
      Davi Arnaut authored
      0fc838d5
    • Davi Arnaut's avatar
      Bug#38560: valgrind warnings on PB due to query profiling · db87b3ce
      Davi Arnaut authored
      Fix for a valgrind warning due to a jump on a uninitialized
      variable. The problem was that the sql profile preparation
      function wasn't being called for all possible code paths
      of query execution.
      
      The solution is to ensure that query profiling is always
      started before dispatch_command function is called and to
      explicitly call the profile preparation function on bootstrap.
      
      
      
      sql/sql_parse.cc:
        Finish query profiling properly when executing bootstrap commands.
        Add query profiling to execute_init_command as it calls dispatch_command.
      db87b3ce
    • Sergey Glukhov's avatar
      Bug#36638 mysqld crashes when open file limit is passed and general query log enabled · 5aff1f3d
      Sergey Glukhov authored
      The problem:
      CSV storage engine open function returns success even
      thought it failed to open the data file
      The fix:
      return error
      Additional fixes:
      added MY_WME to my_open to avoid mysterious error message
      free share struct if open the file was unsuccessful
      
      
      mysql-test/r/csv.result:
        test result
      mysql-test/t/csv.test:
        test case
      storage/csv/ha_tina.cc:
        The problem:
        CSV storage engine open function returns success even
        thought it failed to open the data file
        The fix:
        return error
        Additional fixes:
        added MY_WME to my_open to avoid mysterious error message
        free share struct if open the file was unsuccessful
      5aff1f3d
    • Ramil Kalimullin's avatar
      Fix for bug #34779: crash in checksum table on federated tables · 9deb2668
      Ramil Kalimullin authored
      with blobs containing nulls
      
      Problem: FEDERATED SE improperly stores NULL fields in the record buffer.
      
      Fix: store them properly.
      
      
      mysql-test/r/federated.result:
        Fix for bug #34779: crash in checksum table on federated tables 
        with blobs containing nulls
          - test result.
      mysql-test/t/federated.test:
        Fix for bug #34779: crash in checksum table on federated tables 
        with blobs containing nulls
          - test case.
      sql/ha_federated.cc:
        Fix for bug #34779: crash in checksum table on federated tables 
        with blobs containing nulls
          - storing a NULL field in the record buffer
            we must initialize its data as other code
            may rely on it.
      9deb2668
    • Ramil Kalimullin's avatar
      Fix for bug#37537: myisamchk fails with Assertion failure with partitioned table · 2be2bf9e
      Ramil Kalimullin authored
      Problem: missed "break" in a switch leads to unexpected assertion failure
      of 'myisamchk compressed_table'.
      
      Fix: add the break.
      
      
      storage/myisam/mi_check.c:
        Fix for bug#37537: myisamchk fails with Assertion failure with partitioned table
        
        In the record links check function (chk_data_link()) 
        missed "break" for case COMPRESSED_RECORD was added.
      2be2bf9e
    • Ramil Kalimullin's avatar
      Fix for bug#37337: Function returns different results · 8010c601
      Ramil Kalimullin authored
      Problem: REGEXP in functions/PSs may return wrong results
      due to improper initialization.
      
      Fix: initialize required REGEXP params.
      
      
      sql/item_cmpfunc.cc:
        Fix for bug#37337: Function returns different results
        
        prev_regexp is used in the Item_func_regex::regcomp()
        to store previous regex and to avoid re-initialization 
        if given the same pattern.
        Shoud be deleted in the Item_func_regex::cleanup() where we
        clean up the regexp structure.
      8010c601
  3. 14 Aug, 2008 8 commits
  4. 13 Aug, 2008 14 commits
  5. 12 Aug, 2008 2 commits
    • Marc Alff's avatar
      Merge mysql-5.1-bugteam -> local bugfix branch · 9922445c
      Marc Alff authored
      9922445c
    • Marc Alff's avatar
      Bug#38296 (low memory crash with many conditions in a query) · f60bbd90
      Marc Alff authored
      This fix is for 5.1 only : back porting the 6.0 patch manually
      
      The parser code in sql/sql_yacc.yy needs to be more robust to out of
      memory conditions, so that when parsing a query fails due to OOM,
      the thread gracefully returns an error.
      
      Before this fix, a new/alloc returning NULL could:
      - cause a crash, if dereferencing the NULL pointer,
      - produce a corrupted parsed tree, containing NULL nodes,
      - alter the semantic of a query, by silently dropping token values or nodes
      
      With this fix:
      - C++ constructors are *not* executed with a NULL "this" pointer
      when operator new fails.
      This is achieved by declaring "operator new" with a "throw ()" clause,
      so that a failed new gracefully returns NULL on OOM conditions.
      
      - calls to new/alloc are tested for a NULL result,
      
      - The thread diagnostic area is set to an error status when OOM occurs.
      This ensures that a request failing in the server properly returns an
      ER_OUT_OF_RESOURCES error to the client.
      
      - OOM conditions cause the parser to stop immediately (MYSQL_YYABORT).
      This prevents causing further crashes when using a partially built parsed
      tree in further rules in the parser.
      
      No test scripts are provided, since automating OOM failures is not
      instrumented in the server.
      Tested under the debugger, to verify that an error in alloc_root cause the
      thread to returns gracefully all the way to the client application, with
      an ER_OUT_OF_RESOURCES error.
      f60bbd90