1. 27 Mar, 2009 7 commits
    • Staale Smedseng's avatar
      Merge from 5.0-bugteam · 722fb72a
      Staale Smedseng authored
      722fb72a
    • 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
    • Ramil Kalimullin's avatar
      Merge · ad7e825d
      Ramil Kalimullin authored
      ad7e825d
    • Leonard Zhou's avatar
      Merge · 296390a2
      Leonard Zhou authored
      296390a2
    • 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
    • Leonard Zhou's avatar
      Merge 5.0 to 5.1 · 638c0f07
      Leonard Zhou authored
      638c0f07
  2. 26 Mar, 2009 4 commits
    • Davi Arnaut's avatar
      Bug#33899: Deadlock in mysql_real_query with shared memory connections · 7c261213
      Davi Arnaut authored
      The problem is that the read and write methods of the shared
      memory transport (protocol) didn't react to asynchornous 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.
      
      Bug report and patch submitted by: Armin Schöffmann
      7c261213
    • 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
    • Leonard Zhou's avatar
      Merge · 19e3c5c8
      Leonard Zhou authored
      19e3c5c8
  3. 25 Mar, 2009 18 commits
  4. 24 Mar, 2009 11 commits
    • Alexey Kopytov's avatar
      Automerge. · a7c28680
      Alexey Kopytov authored
      a7c28680
    • Alexey Kopytov's avatar
      Automerge. · ed559715
      Alexey Kopytov authored
      ed559715
    • Alexey Kopytov's avatar
      Automerge. · 50849529
      Alexey Kopytov authored
      50849529
    • Alexey Kopytov's avatar
      Manuel merge. · 938f0948
      Alexey Kopytov authored
      938f0948
    • 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
    • Luis Soares's avatar
      BUG#39701: Mixed binlog format does not switch to row mode on · ed1e9d21
      Luis Soares authored
      LOAD_FILE
                  
      LOAD_FILE is not safe to replicate in STATEMENT mode, because it
      depends on a file (which is loaded on master and may not exist in
      slave(s)). This leads to scenarios on which the slave replicates the
      statement with 'load_file' and it will try to load the file from local
      file system. Given that the file may not exist in the slave filesystem
      the operation will not succeed (probably returning NULL), causing
      master and slave(s) to diverge. However, when using MIXED mode
      replication, this can be made to work, if the statement including
      LOAD_FILE is marked as unsafe, triggering a switch to ROW mode,
      meaning that the contents of the file are written to binlog as row
      events. Consequently, the contents from the file in the master will
      reach the slave via the binlog.
                 
      This patch addresses this bug by marking the load_file function as
      unsafe. When in mixed mode and when LOAD_FILE is issued, there will be
      a switch to row mode. Furthermore, when in statement mode, the
      LOAD_FILE will raise a warning that the statement is unsafe in that
      mode.
      
      
      mysql-test/extra/rpl_tests/rpl_loadfile.test:
        Extra file that is "sourced" on both rpl_loadfile and rpl_stm_loadfile
        test files.
      mysql-test/suite/rpl/r/rpl_loadfile.result:
        Updated with the results from the test case added to this file.
      mysql-test/suite/rpl/r/rpl_stm_loadfile.result:
        Result file for rpl_loadfile test split with the warnings in statement
        mode.
      mysql-test/suite/rpl/t/rpl_loadfile.test:
        After splitting the original rpl_loadfile file, this one is only 
        required to be executed in mixed or row format.
        Appended the test for 39701 to this file.
      mysql-test/suite/rpl/t/rpl_stm_loadfile.test:
        Split the original rpl_loadfile test because load_file now raises
        a warning when in statement mode. The goal of this split is 
        two-fold: i) make the test case more resilient; ii) assert that 
        warnings are indeed raised when in statement mode.
      sql/item_create.cc:
        Added the set_stmt_unsafe call to lex.
      ed1e9d21
    • Georgi Kodinov's avatar
      Fixed initialization order warining. · f3a08d56
      Georgi Kodinov authored
      f3a08d56
    • Georgi Kodinov's avatar
      merged 5.0-bugteam -> 5.1-bugteam · c36e935a
      Georgi Kodinov authored
      c36e935a
    • Leonard Zhou's avatar
      Bug#43440 rpl.rpl_temp_table_mix_row fails sporadicly · da30dedd
      Leonard Zhou authored
            
      The problem is that after disconnect, the DOPR TEMPORARY TABLE event didn't been
      written into binlog. So after syncing with slave, the TEMPORARY table on slave 
      is not removed.
            
      Waiting DROP TEMPORARY TABLE event to be written into binlog before sync slave with
      master.
      
      mysql-test/suite/rpl/t/disabled.def:
        Remove disable item.
      mysql-test/suite/rpl/t/rpl_temp_table_mix_row.test:
        Waiting DROP TEMPORARY TABLE event to be written into binlog
      da30dedd
    • 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