1. 27 Mar, 2009 6 commits
    • Staale Smedseng's avatar
      Merge from 5.0-bugteam · 2c65a31a
      Staale Smedseng authored
      2c65a31a
    • Alexey Kopytov's avatar
      Automerge. · dcac05be
      Alexey Kopytov authored
      dcac05be
    • Staale Smedseng's avatar
      Bug#39953 Triggers are not working properly with multi table · 50ed1ef7
      Staale Smedseng authored
      updates
      
      Attempt to execute trigger or stored function with multi-UPDATE
      which used - but didn't update - a table that was also used by
      the calling statement led to an error. Read-only reference to
      tables used in the calling statement should be allowed.
       
      This problem was caused by the fact that check for conflicting
      use of tables in SP/triggers was performed in open_tables(),
      and in case of multi-UPDATE we didn't know exact lock type at
      this stage.
      
      We solve the problem by moving this check to lock_tables(), so
      it can be performed after exact lock types for tables used by
      multi-UPDATE are determined.
      
      
      mysql-test/r/trigger.result:
        Results for the added test case is added.
      mysql-test/t/trigger.test:
        A new test case is added, verifying correct table multi-update
        conflict resolution, both read-only and write.
      sql/sql_base.cc:
        The check for conflicting use of tables in SP/triggers is moved
        to lock_tables(), to be performed after the exact lock types
        have been determined. Also, an assert is added to open_ltable()
        to ensure this func is not used in a prelocked context.
      50ed1ef7
    • Alexey Kopytov's avatar
      Fix for bug #43432: Union on floats does unnecessary rounding · 0b60184b
      Alexey Kopytov authored
        
      UNION could convert fixed-point FLOAT(M,D)/DOUBLE(M,D) columns  
      to FLOAT/DOUBLE when aggregating data types from the SELECT  
      substatements. While there is nothing particularly wrong with  
      this behavior, especially when M is greater than the hardware  
      precision limits, it could be confusing in cases when all  
      SELECT statements in a union have the same  
      FLOAT(M,D)/DOUBLE(M,D) columns with equal precision  
      specifications listed in the same position.  
        
      Since the manual is quite vague on what data type should be  
      returned in such cases, the bug was fixed by implementing the  
      most 'expected' behavior: do not convert FLOAT(M,D)/DOUBLE(M,D)  
      to anything else if all SELECT statements in a UNION have the  
      same precision for that column.  
      
      mysql-test/r/union.result:
        Added a test case for bug #43432.
      mysql-test/t/union.test:
        Added a test case for bug #43432.
      sql/field.cc:
        Replaced FLT_DIG+6 and DBL_DIG+7 with a symbolic constant.
      sql/item.cc:
        Do not convert FLOAT(M,D)/DOUBLE(M,D) 
        to anything else if all SELECT statements in a UNION have the 
        same precision for that column.
      sql/mysql_priv.h:
        Added a symbolic constant for FLT_DIG+6 and DBL_DIG+7.
      0b60184b
    • Ramil Kalimullin's avatar
      Fix for bug #26288: savepoint not deleted, comit on empty transaction · c2c47b67
      Ramil Kalimullin authored
      Problem: commit doesn't delete savepoints if there are no changes 
      in the transaction.
      
      Fix: delete them in such cases.
      
      
      mysql-test/r/innodb_mysql.result:
        Fix for bug #26288: savepoint not deleted, comit on empty transaction
          - test result.
      mysql-test/t/innodb_mysql.test:
        Fix for bug #26288: savepoint not deleted, comit on empty transaction
          - test case.
      sql/handler.cc:
        Fix for bug #26288: savepoint not deleted, comit on empty transaction
          - call transaction.cleanup() even if nht is 0 to delete 
        possible savepoints.
      c2c47b67
    • Leonard Zhou's avatar
      Merge · f606cfea
      Leonard Zhou authored
      f606cfea
  2. 26 Mar, 2009 2 commits
    • Davi Arnaut's avatar
      Bug#33899: Deadlock in mysql_real_query with shared memory connections · 96e02e57
      Davi Arnaut authored
      The problem is that the read and write methods of the shared
      memory transport (protocol) didn't react to asynchronous close
      events, which could lead to a lock up as the client would wait
      (until time out) for a server response that will never come.
      
      The solution is to also wait for close events while waiting
      for I/O from or to the server.
      
      mysql-test/r/shm.result:
        Add test case result for Bug#33899
      mysql-test/t/shm.test:
        Add test case for Bug#33899
      vio/viosocket.c:
        Also wait for close events.
      96e02e57
    • Leonard Zhou's avatar
      BUG#35515 Aliases of variables in binary log are ignored with NAME_CONST. · 944915ca
      Leonard Zhou authored
            
      When add an aliase name after NAME_CONST, the aliase name will be overwrite.
            
      NAME_CONST will re-set the field's name only if there isn't an aliase in the
      function fix-fields().
      If there is an aliase, NAME_CONST doesn't re-set the field's name and keeps the old
      name.
      
      mysql-test/r/func_misc.result:
        Test result.
      mysql-test/r/rpl_name_const.result:
        Test case.
      mysql-test/t/func_misc.test:
        Add NAME_CONST test.
      mysql-test/t/rpl_name_const.test:
        Test result.
      sql/item.cc:
        Re-set field's name if the name is autogenerated, that mean without aliase.
      944915ca
  3. 25 Mar, 2009 5 commits
    • Alexey Kopytov's avatar
      Automerge. · 4ee0f6a6
      Alexey Kopytov authored
      4ee0f6a6
    • Chad MILLER's avatar
      77cc537e
    • Satya B's avatar
      merge to 5.0-bugteam · 8b95961f
      Satya B authored
      8b95961f
    • Satya B's avatar
      Fix for BUG#41541 - Valgrind warnings on packed MyISAM table · ca873cd7
      Satya B authored
                  
      After the table is compressed by the myisampack utility,
      opening the table by the server produces valgrind warnings.
            
      This happens because when we try to read a record into the buffer
      we alway assume that the remaining buffer to read is always equal 
      to word size(4 or 8 or 2 bytes) we read. Sometimes we have 
      remaining buffer size less than word size and trying to read the 
      entire word size will end up in valgrind errors.
                  
      Fixed by reading byte by byte when we detect the remaining buffer 
      size is less than the word size.
      
      myisam/mi_packrec.c:
        Fixed fill_buffer() to read byte by byte when the remaining 
        buffer size is less than word size.
      mysql-test/r/myisampack.result:
        Result file for BUG#41541
      mysql-test/t/myisampack.test:
        Testcase for BUG#41541
      ca873cd7
    • Leonard Zhou's avatar
      Fix the test case error in PB. · 79ad0a2c
      Leonard Zhou authored
      79ad0a2c
  4. 24 Mar, 2009 5 commits
    • Alexey Kopytov's avatar
      Automerge. · 50849529
      Alexey Kopytov authored
      50849529
    • Alexey Kopytov's avatar
      Fix for bug #43801: mysql.test takes too long, fails due to · 8d4d3e13
      Alexey Kopytov authored
                          expired timeout on debx86-b in PB 
      
      Moved the resource-intensive test case for bug #41486 into 
      a separate test file to reduce execution time for mysql.test. 
      
      
      mysql-test/include/wait_until_disconnected.inc:
        Used in mysql-bug41486.test.
      mysql-test/r/mysql-bug41486.result:
        Moved the resource-intensive test case for bug #41486 into 
        a separate test file to reduce execution time for mysql.test.
      mysql-test/r/mysql.result:
        Moved the resource-intensive test case for bug #41486 into 
        a separate test file to reduce execution time for mysql.test.
      mysql-test/t/mysql-bug41486.test:
        Moved the resource-intensive test case for bug #41486 into 
        a separate test file to reduce execution time for mysql.test.
      mysql-test/t/mysql.test:
        Moved the resource-intensive test case for bug #41486 into 
        a separate test file to reduce execution time for mysql.test.
      8d4d3e13
    • Alexey Kopytov's avatar
      Fix for bug #42965: isinf() on 32bit x86 with gcc 4.3 can · bbe24f03
      Alexey Kopytov authored
                          produce incorrect results for ROUND() 
      
      Added a workaround and a configure check to test whether 
      isinf() is affected by the GCC bug #39228. 
             
      Since no code in MySQL server is currently affected by that 
      bug, the patch is actually a safeguard for possible future 
      code modifications. No test cases or changelog entries are 
      needed. 
      
      
      configure.in:
        Added a configure check to test whether isinf() is safe to use
        in C code.
      include/my_global.h:
        Added a workaround for GCC bug #39228.
      bbe24f03
    • Leonard Zhou's avatar
      Merge · dad07ffe
      Leonard Zhou authored
      dad07ffe
    • Leonard Zhou's avatar
      BUG#41719 delayed INSERT into timestamp col needs set time_zone for concurrent binlogging · 5fdc5510
      Leonard Zhou authored
      When do 'insert delayed' operation, the time_zone info doesn't be keeped in the row info.
      So when we do insert sometime later, time_zone didn't write into binlog.
      This will cause wrong result for timestamp column in slave.
      
      Our solution is that adding time_zone info with the delayed-row and
      restoring time_zone from row-info when execute that row in the furture by another thread.
      So we can write correct time_zone info into binlog and got correct result in slave.
      
      
      mysql-test/r/rpl_timezone.result:
        Test result
      mysql-test/t/rpl_timezone.test:
        Add test for bug#41719
      sql/sql_insert.cc:
        Add time_zone info in the delayed-row and restore time_zone when execute the row in the furture by another thread.
      5fdc5510
  5. 23 Mar, 2009 5 commits
    • Matthias Leich's avatar
      Merge of fixes into actual tree · fbb90c66
      Matthias Leich authored
      fbb90c66
    • Matthias Leich's avatar
      Fix for Bug#43015 and Bug#43065 · 5eb0b481
      Matthias Leich authored
         Details for Bug#43015 main.lock_multi: Weak code (sleeps etc.)
         -------------------------------------------------------------
         - The fix for bug 42003 already removed a lot of the weaknesses mentioned.
         - Tests showed that there are unfortunately no improvements of this tests
           in MySQL 5.1 which could be ported back to 5.0.
         - Remove a superfluous "--sleep 1" around line 195
      
         Details for Bug#43065 main.lock_multi: This test is too big if the disk is slow
         -------------------------------------------------------------------------------
         - move the subtests for the bugs 38499 and 36691 into separate scripts
         - runtime under excessive parallel I/O load after applying the fix
           lock_multi           [ pass ]          22887
           lock_multi_bug38499  [ pass ]         536926
           lock_multi_bug38691  [ pass ]         258498
      5eb0b481
    • Sergey Glukhov's avatar
      remove compiler warnings · 9a561879
      Sergey Glukhov authored
      9a561879
    • Tatiana A. Nurnberg's avatar
      auto-merge · aeb9747a
      Tatiana A. Nurnberg authored
      aeb9747a
    • Tatiana A. Nurnberg's avatar
      Bug#43254: SQL_SELECT_LIMIT=0 crashes command line client · 4093dcfb
      Tatiana A. Nurnberg authored
      When asking what database is selected, client expected
      to *always* get an answer from the server.
      
      We now handle failure more gracefully.
      
      See comments in ticket for a discussion of what happens,
      and how things interlock.
      
      
      client/mysql.cc:
        Handle empty result-sets gracefully, as opposed
        to just result sets with n>0 items that may themselves
        be empty.
      4093dcfb
  6. 20 Mar, 2009 1 commit
  7. 19 Mar, 2009 12 commits
    • Davi Arnaut's avatar
      Bug#43461: invalid comparison with string literal in default.c · 27e3214b
      Davi Arnaut authored
      Don't compare string literals as it results in unspecified behavior.
      
      mysys/default.c:
        Test for a empty string.
      27e3214b
    • Ignacio Galarza's avatar
      auto-merge · e8c13e6a
      Ignacio Galarza authored
      e8c13e6a
    • Bernt M. Johnsen's avatar
      Bug#43329 merge from 5.0 GCA-branch · 26211b5c
      Bernt M. Johnsen authored
      26211b5c
    • Ignacio Galarza's avatar
      auto-merge · 675c3ce2
      Ignacio Galarza authored
      675c3ce2
    • Staale Smedseng's avatar
      Bug #42502 huge memory leak possible with timezone · 28f4090b
      Staale Smedseng authored
      functions
            
      Unknown timezone specifications are properly rejected
      by the server, but are copied into tz_storage before
      rejection, and hence is retained until end of server 
      life. With sufficiently large bogus timezone specs, 
      it is easy to exhaust system memory.
            
      Allocation of memory for a copy of the timezone
      name is delayed until after verification of validity,
      at the cost of a memcpy of the timezone info. This 
      only happens once, future lookups will hit the cached
      structure.
      28f4090b
    • Alexey Kopytov's avatar
      Automerge. · a4f59d4a
      Alexey Kopytov authored
      a4f59d4a
    • Alexey Kopytov's avatar
      Fixed test failures in 5.1/6.0 introduced by the patch · afcfe81f
      Alexey Kopytov authored
      for bug #41486. Session max_allowed_packet is read-only
      as of MySQL 5.1.31. In addition, the global variable
      now has no effect on the current session.
      afcfe81f
    • Sergey Glukhov's avatar
      automerge · 173ea364
      Sergey Glukhov authored
      173ea364
    • Sergey Glukhov's avatar
      Bug#41268 Help Text for \c is misleading in client command line interface · 8c7789c3
      Sergey Glukhov authored
      fixed help message
      
      
      client/mysql.cc:
        fixed help message
      8c7789c3
    • Satya B's avatar
      merge to 5.0-bugteam · 322fe741
      Satya B authored
      322fe741
    • Sergey Glukhov's avatar
      Bug#41627 Illegal mix of collations in LEAST / GREATEST / CASE · af016f72
      Sergey Glukhov authored
      Don't throw an error after checking the first and the second arguments.
      Continue with checking the third and higher arguments and if some of
      them is stronger according to coercibility rules,
      then this argument's collation is set as result collation.
      
      
      mysql-test/r/ctype_collate.result:
        test result
      mysql-test/t/ctype_collate.test:
        test case
      sql/item.cc:
        Don't throw an error after checking the first and the second arguments.
        Continue with checking the third and higher arguments and if some of
        them is stronger according to coercibility rules,
        then this argument's collation is set as result collation.
      af016f72
    • Satya B's avatar
      Fix for BUG#21360 - mysqldump error on federated tables · cad09dab
      Satya B authored
                              
      When loading dump created by mysqldump tool an error is
      thrown saying storage engine for the table doesn't have 
      an option.
                              
      mysqldump tries to re-insert the data into the federated
      table which causes the error. Since the data is already
      available on the remote server, mysqldump shouldn't try
      to dump the data again for FEDERATED tables.
                              
      As stated in the bug page, it can be considered similar
      to the MERGE ENGINE with "view only" nature.
                              
      Fixed by adding the "FEDERATED ENGINE" to the exception
      list to ignore the data.
      
      client/mysqldump.c:
        Fixed check_if_ignore_table() to ignore FEDERATED engine
        when dumping the table data.
      mysql-test/r/federated.result:
        Result file for BUG#21360
      mysql-test/t/federated.test:
        Testcase for BUG#21360
      cad09dab
  8. 18 Mar, 2009 3 commits
    • Bernt M. Johnsen's avatar
      Bug#43329 prepared for commit on 5.0 · 4d32be13
      Bernt M. Johnsen authored
      4d32be13
    • Alexey Kopytov's avatar
      Automerge. · da7dc303
      Alexey Kopytov authored
      da7dc303
    • Alexey Kopytov's avatar
      Fix for bug#41486: extra character appears in BLOB for every · 73a7d993
      Alexey Kopytov authored
                         ~40Mb after mysqldump/import 
              
      When the input string exceeds the maximum allowed size for the 
      internal buffer, batch_readline() returns a truncated string. 
      Since there was no way for a caller to determine whether the 
      string was truncated or not, the command line client assumed 
      batch_readline() to always return the whole input string and 
      appended a newline character. This resulted in garbled data 
      when importing dumps containing strings longer than the 
      maximum input buffer size. 
        
      Fixed by adding a flag to the batch_readline() interface to 
      signal a truncated string to the caller. 
        
      Other minor problems fixed during patch implementation: 
       
      - The maximum allowed buffer size for batch_readline() was set 
      up depending on the client's max_allowed_packet value. It does 
      not actully make any sense, as those variables are not 
      related. The input buffer size limit is now always set to 1 
      MB. 
        
      - fill_buffer() did not always set the EOF flag. 
       
      - The input buffer could actually grow twice as the specified 
      limit due to insufficient checks in intern_read_line(). 
      
      client/my_readline.h:
        Changed the interface of batch_readline().
      client/mysql.cc:
        Honor the truncated flag returned by batch_readline() and do  
        not append the newline character if it was set. Since we can't 
        change the interfaces for readline()/fgets() used in the  
        interactive mode, always assume the returned string was not  
        truncated. In addition, always set the batch_readline()  
        internal buffer to 1 MB, independently from the client's  
        max_allowed_packet.
      client/readline.cc:
        Added the 'truncated' argument do batch_readline() to signal 
        truncated string to a caller. 
        Fixed fill_buffer() to set the EOF flag correctly. 
        Fixed checks in intern_read_line() to not allow the internal  
        buffer grow past the specified limit.
      mysql-test/r/mysql.result:
        Added a test case for bug #41486.
      mysql-test/t/mysql.test:
        Added a test case for bug #41486.
      73a7d993
  9. 17 Mar, 2009 1 commit