1. 24 Nov, 2009 2 commits
  2. 23 Nov, 2009 7 commits
  3. 22 Nov, 2009 1 commit
    • unknown's avatar
      Bug #48350 truncate temporary table crashes replication · fa4c0203
      unknown authored
      In RBR, All statements operating on temporary tables should not be binlogged.
      Despite this fact, after executing 'TRUNCATE... ' on a temporary table, 
      the command is still logged, even if in row-based mode. Consequently, this raises
      problems in the slave as the table may not exist, resulting in an
      execution failure. Ultimately, this causes the slave to report
      an error and abort.
      
      After this patch, 'TRUNCATE ...' statement on a temporary table will not be
      binlogged in RBR.
      fa4c0203
  4. 21 Nov, 2009 3 commits
    • Alfranio Correia's avatar
      20ea2a0c
    • Davi Arnaut's avatar
      39ef6c55
    • Davi Arnaut's avatar
      Bug#41726: upgrade from 5.0 to 5.1.30 crashes if you didn't run mysql_upgrade · 25782585
      Davi Arnaut authored
      The problem is that the server could crash when attempting
      to access a non-conformant proc system table. One such case
      was a crash when invoking stored procedure related statements
      on a 5.1 server with a proc system table in the 5.0 format.
      
      The solution is to validate the proc system table format
      before attempts to access it are made. If the table is not
      in the format that the server expects, a message is written
      to the error log and the statement that caused the table to
      be accessed fails.
      
      mysql-test/r/sp-destruct.result:
        Add test case result for Bug#41726
      mysql-test/t/sp-destruct.test:
        Add test case for Bug#41726
      sql/event_db_repository.cc:
        Update code to use new structures.
      sql/sp.cc:
        Describe the proc table format and use it to validate when
        opening a instance of the table.
        Add a check to insure that a error message is written to
        the error log only once.
      sql/sql_acl.cc:
        Remove unused variable and use new structure.
      sql/sql_acl.h:
        Export field definition.
      sql/table.cc:
        Accept the field count and definition in a single structure.
      sql/table.h:
        Combine the field count and definition in a single structure.
        Transform function into a class in order to support different
        ways of reporting a error.
        Add a pointer cache to TABLE_SHARE.
      25782585
  5. 20 Nov, 2009 13 commits
    • Kristofer Pettersson's avatar
      merge · 92dcdfcd
      Kristofer Pettersson authored
      92dcdfcd
    • Kristofer Pettersson's avatar
      automerge · d4daeeae
      Kristofer Pettersson authored
      d4daeeae
    • Kristofer Pettersson's avatar
      Bug#45613 handle failures from my_hash_insert · ea46fc4b
      Kristofer Pettersson authored
      Not all my_hash_insert() calls are checked for return value.
      
      This patch adds appropriate checks and failure responses
      where needed.
      
      
      mysys/hash.c:
        * Debug hook for testing failures in my_hash_insert()
      ea46fc4b
    • Georgi Kodinov's avatar
      merge · 2b666513
      Georgi Kodinov authored
      2b666513
    • Georgi Kodinov's avatar
      merge · 1a4e21bb
      Georgi Kodinov authored
      1a4e21bb
    • Georgi Kodinov's avatar
      merge · 67b81ee0
      Georgi Kodinov authored
      67b81ee0
    • Vladislav Vaintroub's avatar
      merge · 9167193c
      Vladislav Vaintroub authored
      9167193c
    • Kristofer Pettersson's avatar
      automerge · eb50550e
      Kristofer Pettersson authored
      eb50550e
    • Kristofer Pettersson's avatar
      Bug#39253 Large query cache still freezes server after fix for bug #21074 · fc228ca1
      Kristofer Pettersson authored
      This patch introduce a limit on the time the query cache can
      block with a lock on SELECTs.
      
      Other operations which causes a change in the table
      data will still be blocked.
      
      
      sql/sql_cache.cc:
        * Introduced a timeout value for the qc lock when entering send_result_to_client()
        and store_query() methods.
      sql/sql_cache.h:
        * New signature for Query_cache::try_lock()
      fc228ca1
    • Georgi Kodinov's avatar
      merge · ae0f985f
      Georgi Kodinov authored
      ae0f985f
    • Vladislav Vaintroub's avatar
      Bug#47571 : idle named pipe connection is unkillable · 93610273
      Vladislav Vaintroub authored
      implement Davi's review suggestions (post-push fixes)
      
      
      include/violite.h:
        Use official abbreviation for milliseconds (ms)
      sql/mysqld.cc:
        Fix formatting
        Add error handling for the case of CreateEvent error
      vio/vio.c:
        Use official abbreviation for milliseconds(ms)
        Remove superfluous memset
        Fix formatting
      vio/viosocket.c:
        Use official abbreviation for milliseconds (ms)
        Use size_t  datatype instead of int in pipe_complete_io
      93610273
    • Georgi Kodinov's avatar
      merge · 1ce6033d
      Georgi Kodinov authored
      1ce6033d
    • Georgi Kodinov's avatar
      Bug #45261 : Crash, stored procedure + decimal · c2c33491
      Georgi Kodinov authored
      Bug #48370  Absolutely wrong calculations with GROUP BY and
        decimal fields when using IF
      
      Added the test cases in the above two bugs for regression
      testing.
      Added additional tests that demonstrate a incomplete fix.
      Added a new factory method for Field_new_decimal to 
      create a field from an (decimal returning) Item.
      In the new method made sure that all the precision and 
      length variables are capped in a proper way. 
      This is required because Item's can have larger precision
      than the decimal fields and thus need to be capped when
      creating a field based on an Item type.
      Fixed the wrong typecast to Item_decimal.
      c2c33491
  6. 19 Nov, 2009 2 commits
    • Christopher Powers's avatar
      Bug #48739 MySQL crashes on specific INTERVAL in select query · 55852708
      Christopher Powers authored
      Fixed crash caused by x64 int/long incompatibility introduced
      in Bug #29125.
      
      sql/item_timefunc.cc:
        Fixed crash caused by int/long incompatibility on x64 systems.
        
        Changed two "uint" casts and a "long" declartion to "int" in order to
        ensure that the integer sign is preserved.
        
        See Bug #48739 for details.
      55852708
    • Georgi Kodinov's avatar
      Bug #48665: sql-bench's insert test fails due to wrong result · 00f94d9f
      Georgi Kodinov authored
      When merging ranges during calculation of the result of OR
      to two range sets the current range may be obsoleted by the 
      resulting merged range.
      The first overlapping range can be obsoleted as well.
      
      Fixed by moving the pointer to the first overlapping range to the
      pointer of the resulting union range.
      Added few comments at key places in key_or().
      00f94d9f
  7. 18 Nov, 2009 7 commits
    • Georgi Kodinov's avatar
      Bug#48864: MySQL fails to compile on 64 bit Fedora 12 · e499b503
      Georgi Kodinov authored
      Fixed 2 errors in comp_err executable : 
      1. Wrong (off by 1) length passed to my_checksum()
      2. strmov() was used on overlapping strings. This is
       not legal according to the docs in stpcpy(). Used 
      the overlap safe memmove() instead.
      e499b503
    • Sven Sandberg's avatar
      BUG#47995: Mark system functions as unsafe · 146bb95f
      Sven Sandberg authored
      Problem: Some system functions that could return different values on
      master and slave were not marked unsafe. In particular:
       GET_LOCK
       IS_FREE_LOCK
       IS_USED_LOCK
       MASTER_POS_WAIT
       RELEASE_LOCK
       SLEEP
       SYSDATE
       VERSION
      Fix: Mark these functions unsafe.
      
      
      mysql-test/extra/rpl_tests/rpl_stm_000001.test:
        - The test does not work in mixed mode any more, since it tries to
          simulate an error in the sql thread in a query that uses get_lock.
          Since get_lock now causes the query to be logged in row format,
          the error didn't happen. Hence, we now force statement mode.
        - Warnings must be disabled when the unsafe query is issued.
        - Replaced some save_master_pos+connection slave+sync_with_master
          by sync_slave_with_master.
      mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result:
        updated result file
      mysql-test/suite/binlog/r/binlog_stm_row.result:
        updated result file
      mysql-test/suite/binlog/r/binlog_unsafe.result:
        updated result file
      mysql-test/suite/binlog/t/binlog_killed.test:
        binlog_killed only works in statement format now, since
        it switches to row mode in mixed mode.
      mysql-test/suite/binlog/t/binlog_stm_mix_innodb_myisam.test:
        suppress warnings for unsafe statements
      mysql-test/suite/binlog/t/binlog_stm_row.test:
        - Suppress warnings in test that causes warnings.
        - The test sets binlog format explicitly, so no need to execute it
          twice.
      mysql-test/suite/binlog/t/binlog_unsafe.test:
        Added test for all unsafe system functions. This test also includes
        system functions that were unsafe prior to BUG#47995.
      mysql-test/suite/rpl/r/rpl_err_ignoredtable.result:
        updated result file
      mysql-test/suite/rpl/r/rpl_get_lock.result:
        updated result file
      mysql-test/suite/rpl/r/rpl_nondeterministic_functions.result:
        new result file
      mysql-test/suite/rpl/r/rpl_stm_000001.result:
        updated result file
      mysql-test/suite/rpl/r/rpl_trigger.result:
        updated result file
      mysql-test/suite/rpl/t/rpl_err_ignoredtable.test:
        - suppress warnings for unsafe statement
        - replaced save_master_pos+connection slave+sync_with_master
          with sync_slave_with_master
      mysql-test/suite/rpl/t/rpl_get_lock.test:
        update test case that causes new warnings
      mysql-test/suite/rpl/t/rpl_nondeterministic_functions.test:
        Added new test case for nondeterministic functions.
      mysql-test/suite/rpl/t/rpl_trigger.test:
        update test case that causes new warnings
      sql/item_create.cc:
        Marked some system functions unsafe.
      sql/item_strfunc.cc:
        Clarified comment related to this bug.
      sql/sql_yacc.yy:
        Marked sysdate unsafe.
      146bb95f
    • Jon Olav Hauglid's avatar
      Postfix for Bug #47682 strange behaviour of INSERT DELAYED · 45a0a900
      Jon Olav Hauglid authored
      Fixed a problem with the test case when executed with ps-protocol.
      There the conflicing lock would be noticed during prepare, not
      during execution of the insert - leading to a different (but 
      equally appropriate) error message.
      45a0a900
    • Mattias Jonsson's avatar
      merge · b5a2f280
      Mattias Jonsson authored
      b5a2f280
    • Magne Mahre's avatar
      merge · 1c8ebdb8
      Magne Mahre authored
      1c8ebdb8
    • Magne Mahre's avatar
      Bug #46425 crash in Diagnostics_area::set_ok_status , empty statement, · a9d63391
      Magne Mahre authored
                 DELETE IGNORE
      
      The ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG error was set in the
      diagnostics area when it happened, but the DELETE cleanup code
      never checked for a non-fatal error condition, thus trying to
      set diag.area to "ok".  This triggered an assert checking that
      the diag.area was empty.
      
      The fix was to test if there existed a non-fatal error condition
      (thd->is_error() before ok'ing the operation.
      a9d63391
    • Jon Olav Hauglid's avatar
      Bug #47682 strange behaviour of INSERT DELAYED · 97e07d7a
      Jon Olav Hauglid authored
      The problem was a "self-deadlock" if the connection issuing INSERT DELAYED
      had both the global read lock (FLUSH TABLES WITH READ LOCK) and LOCK TABLES
      mode active. The table being inserted into had to be different from the 
      table(s) locked by LOCK TABLES.
      
      For INSERT DELAYED, the connection thread waits until the handler thread has
      opened and locked its table before returning. But since the global read lock
      was active, the handler thread would be unable to lock and would wait for the
      global read lock to go away.
      
      So the handler thread would be waiting for the connection thread to release
      the global read lock while the connection thread was waiting for the handler
      thread to lock the table. This gave a "self-deadlock" (same connection,
      different threads).
      
      The deadlock would only happen if we also had LOCK TABLES mode since the
      INSERT otherwise will try to get protection against global read lock before
      starting the handler thread. It will then notice that the global read lock
      is owned by the same connection and report ER_CANT_UPDATE_WITH_READLOCK.
      
      This patch removes the deadlock by reporting ER_CANT_UPDATE_WITH_READLOCK
      also if we are inside LOCK TABLES mode.
      
      Test case added to delayed.test.
      97e07d7a
  8. 17 Nov, 2009 5 commits