1. 18 Sep, 2009 5 commits
    • Georgi Kodinov's avatar
      automerge · 50800923
      Georgi Kodinov authored
      50800923
    • Georgi Kodinov's avatar
      Bug#46760: Fast ALTER TABLE no longer works for InnoDB · 01e5bc70
      Georgi Kodinov authored
            
      Despite copying the value of the old table's row type
      we don't always have to mark row type as being specified.
      Innodb uses this to check if it can do fast ALTER TABLE
      or not.
      Fixed by correctly flagging the presence of row_type 
      only when it's actually changed.
      Added a test case for 39200.
      01e5bc70
    • unknown's avatar
      Bug #42914 Log event that larger than max_allowed_packet results in stop of slave I/O thread, · 64badb5f
      unknown authored
                 But there is no Last_IO_Error reported.
      
      On the master, if a binary log event is larger than max_allowed_packet,
      ER_MASTER_FATAL_ERROR_READING_BINLOG and the specific reason of this error is
      sent to a slave when it requests a dump from the master, thus leading
      the I/O thread to stop.
      
      On a slave, the I/O thread stops when receiving a packet larger than max_allowed_packet.
      
      In both cases, however, there was no Last_IO_Error reported.
      
      This patch adds code to report the Last_IO_Error and exact reason before stopping the
      I/O thread and also reports the case the out memory pops up while
      handling packets from the master.
      
      
      sql/sql_repl.cc:
        The master send the Specific reasons instead of "error reading log entry" to the slave which is requesting a dump.
        if an fatal error is returned by read_log_event function.
      64badb5f
    • Alexey Kopytov's avatar
      Automerge. · ce55f84d
      Alexey Kopytov authored
      ce55f84d
    • Alexey Kopytov's avatar
      Bug #43606: 4GB Limit on huge_pages shared memory set-up · 4826b61c
      Alexey Kopytov authored
      Large pages allocator could not allocate more than 4 GB due to
      incorrect size alignment.
      
      mysys/my_largepage.c:
        Large pages allocator could not allocate more than 4 GB due to
        incorrect size alignment.
      4826b61c
  2. 17 Sep, 2009 5 commits
    • Staale Smedseng's avatar
      Merge from 5.0 · d6ca0cbb
      Staale Smedseng authored
      d6ca0cbb
    • Staale Smedseng's avatar
      Bug #43414 Parenthesis (and other) warnings compiling MySQL · e5888b16
      Staale Smedseng authored
      with gcc 4.3.2
            
      This is the fifth patch cleaning up more GCC warnings about
      variables used before initialized using the new macro
      UNINIT_VAR().
      e5888b16
    • Sergey Glukhov's avatar
      Bug#42364 SHOW ERRORS returns empty resultset after dropping non existent table · 2535ede7
      Sergey Glukhov authored
      additional backport of of bug43138 fix
      
      
      mysql-test/t/myisam-system.test:
        additional backport of of bug43138 fix
      sql/sql_db.cc:
        additional backport of of bug43138 fix
      2535ede7
    • Georgi Kodinov's avatar
      Bug #46917: mysqd-nt installs wrong · 31809edc
      Georgi Kodinov authored
      When parsing the service installation parameter in 
      default_service_handling() make sure the value of the
      optional parameter doesn't overwrite it's name.
      31809edc
    • Satya B's avatar
      Applying InnoDB snapshot 5.1-ss5282, Fixes BUG#44030 · 7cf8f7a4
      Satya B authored
      1. Fixes BUG#44030 - Error: (1500) Couldn't read the MAX(ID) autoinc value 
                           from the index (PRIMARY)
      
      2. Disables the innodb-autoinc test for innodb plugin temporarily.
         The testcase for this bug has different result file for InnoDB plugin.
         Should add the testcase to Innodb suite with a different result file.
      
      Detailed revision comments:
      
      r5243 | sunny | 2009-06-04 03:17:14 +0300 (Thu, 04 Jun 2009) | 14 lines
      branches/5.1: When the InnoDB and MySQL data dictionaries go out of sync, before
      the bug fix we would assert on missing autoinc columns. With this fix we allow
      MySQL to open the table but set the next autoinc value for the column to the
      MAX value. This effectively disables the next value generation. INSERTs will
      fail with a generic AUTOINC failure. However, the user should be able to
      read/dump the table, set the column values explicitly, use ALTER TABLE to
      set the next autoinc value and/or sync the two data dictionaries to resume
      normal operations.
      
      Fix Bug#44030 Error: (1500) Couldn't read the MAX(ID) autoinc value from the
      index (PRIMARY)
      
      rb://118
      
      r5252 | sunny | 2009-06-04 10:16:24 +0300 (Thu, 04 Jun 2009) | 2 lines
      branches/5.1: The version of the result file checked in was broken in r5243.
      
      r5259 | vasil | 2009-06-05 10:29:16 +0300 (Fri, 05 Jun 2009) | 7 lines
      branches/5.1:
      
      Remove the word "Error" from the printout because the mysqltest suite
      interprets it as an error and thus the innodb-autoinc test fails.
      
      Approved by:	Sunny (via IM)
      r5466 | vasil | 2009-07-02 10:46:45 +0300 (Thu, 02 Jul 2009) | 6 lines
      branches/5.1:
      
      Adjust the failing innodb-autoinc test to conform to the latest behavior
      of the MySQL code. The idea and the comment in innodb-autoinc.test come
      from Sunny.
      
      7cf8f7a4
  3. 16 Sep, 2009 2 commits
  4. 15 Sep, 2009 2 commits
  5. 13 Sep, 2009 2 commits
    • Luis Soares's avatar
      BUG#47016: rpl_do_grant fails on PB-2 with a failing connect · 63a81c09
      Luis Soares authored
            
      The test case rpl_do_grant fails sporadically on PB2 with "Access
      denied for user 'create_rout_db'@'localhost' ...". Inspecting the
      test case, one may find that if issues a GRANT on the master
      connection and immediately after it creates two new connections
      (one to the master and one to the slave) using the credentials
      set with the GRANT.
            
      Unfortunately, there is no synchronization between master and
      slave after the grant and before the connections are
      established. This can result in slave not having executed the
      GRANT by the time the connection is attempted.
            
      This patch fixes this by deploying a sync_slave_with_master
      between the grant and the connections attempt.
      63a81c09
    • Luis Soares's avatar
      BUG#47014: rpl_drop_temp fails on PB-2 with results mismatch · 3c916057
      Luis Soares authored
            
      The test case creates two temporary tables, then closes the
      connection, waits for it to disconnect, then syncs the slave with
      the master, checks for remaining opened temporary tables on
      slave (which should be 0) and finally drops the used
      database (mysqltest).
            
      Unfortunately, sometimes, the test fails with one open table on
      the slave. This seems to be caused by the fact that waiting for
      the connection to be closed is not sufficient. The test needs to
      wait for the DROP event to be logged and only then synchronize
      the slave with the master and proceed with the check. This is
      caused by the asynchronous nature of the disconnect wrt
      binlogging of the DROP temporary table statement.
            
      We fix this by deploying a call to wait_for_binlog_event.inc
      on the test case, which makes execution to wait for the DROP
      temp tables event before synchronizing master and slave.
      3c916057
  6. 11 Sep, 2009 2 commits
    • Mattias Jonsson's avatar
      merge · 23dc8abe
      Mattias Jonsson authored
      23dc8abe
    • Ramil Kalimullin's avatar
      Fix for bug#47130: misplaced or redundant check for null pointer? · b6c16b32
      Ramil Kalimullin authored
      Problem: LOGGER::general_log_write() relied on valid "thd" parameter passed
      but had inconsistent "if (thd)" check.
      
      Fix: as we always pass a valid "thd" parameter to the method, 
      redundant check removed.
      
      
      sql/log.cc:
        Fix for bug#47130: misplaced or redundant check for null pointer?
          - code clean-up, as we rely on the "thd" parameter in the
        LOGGER::general_log_write(), redundant "if (thd)" check removed, 
        added assert(thd) instead.
      b6c16b32
  7. 10 Sep, 2009 11 commits
  8. 09 Sep, 2009 5 commits
    • Ingo Struewing's avatar
      Bug#17332 - changing key_buffer_size on a running server · 9c97dbab
      Ingo Struewing authored
                  can crash under load
      
      Merge from 5.0, after backport from 5.1/5.4 to 5.0.
      This makes the fixes for
      Bug 44068 (RESTORE can disable the MyISAM Key Cache)
      Bug 40944 (Backup: crash after myisampack)
      available to 5.1.
      9c97dbab
    • Georgi Kodinov's avatar
      null merge of the 5.0 test cleanup · 0d7ee91c
      Georgi Kodinov authored
      0d7ee91c
    • Sergey Vojtovich's avatar
      BUG#29203 - archive tables have weird values in show table status · 04ed3c9d
      Sergey Vojtovich authored
      Archive engine returns wrong values for average record length
      and max data length.
      
      With this fix they're calculated as following:
      - max data length is 2 ^ 63 where large files are supported
        and INT_MAX32 where this is not supported;
      - average record length is data length / records in data file.
      
      mysql-test/r/archive.result:
        A test case for BUG#29203.
      mysql-test/t/archive.test:
        A test case for BUG#29203.
      storage/archive/ha_archive.cc:
        Better estimation for average row length and maximal data
        file length.
      04ed3c9d
    • Sergey Vojtovich's avatar
      BUG#45638 - Create temporary table with engine innodb fails · 3228a2be
      Sergey Vojtovich authored
      Create temporary InnoDB table fails on case insensitive
      filesystems, when lower_case_table_names is 2 (e.g. OS X)
      and temporary directory path contains upper case letters.
      
      The problem was that tmpdir prefix was converted to lower
      case when table was created, but was passed as is when
      table was opened.
      
      Fixed by leaving tmpdir prefix part intact.
      
      mysql-test/r/lowercase_mixed_tmpdir_innodb.result:
        A test case for BUG#45638.
      mysql-test/t/lowercase_mixed_tmpdir_innodb-master.opt:
        A test case for BUG#45638.
      mysql-test/t/lowercase_mixed_tmpdir_innodb-master.sh:
        A test case for BUG#45638.
      mysql-test/t/lowercase_mixed_tmpdir_innodb.test:
        A test case for BUG#45638.
      sql/handler.cc:
        Fixed get_canonical_filename() to not lowercase filesystem
        path prefix for temporary tables.
      3228a2be
    • Georgi Kodinov's avatar
      Bug #45159 Part 1 : rejuvenate the jp test suite using normal run. · 24f103e3
      Georgi Kodinov authored
      Updates the results of all the out-dated test suites and adds 
      the special mysqltest command to enable innodb for the tests that need it.
      24f103e3
  9. 08 Sep, 2009 2 commits
  10. 07 Sep, 2009 4 commits
    • Ingo Struewing's avatar
      Bug#17332 - changing key_buffer_size on a running server · 540b2dc0
      Ingo Struewing authored
                  can crash under load
      
      Backport from 5.1.
      Does also include key cache fixes from:
      Bug 44068 (RESTORE can disable the MyISAM Key Cache)
      Bug 40944 (Backup: crash after myisampack)
      
      
      
      include/keycache.h:
        Bug#17332 - changing key_buffer_size on a running server
                    can crash under load
        Added KEY_CACHE components in_resize and waiting_for_resize_cnt.
      myisam/mi_preload.c:
        Bug#17332 - changing key_buffer_size on a running server
                    can crash under load
        Added code to allow LOAD INDEX to load indexes of different block size.
      mysys/mf_keycache.c:
        Bug#17332 - changing key_buffer_size on a running server
                    can crash under load
        .
        Changed resize_key_cache() to not disable the key cache
        after the flush phase. Changed queue handling to use
        standard functions. Wake all threads waiting on resize_queue.
        We can now have read/write threads waiting there (see below).
        .
        Combined add_to_queue() and the wait loops that were always
        following it to the new function wait_on_queue().
        Combined release_queue() and the condition that was always
        preceding it to the new function release_whole_queue().
        .
        Added code to flag and respect the exceptional situation
        BLOCK_IN_EVICTION.
        .
        Rewrote the resize branch of find_key_block().
        .
        Added code to the eviction handling in find_key_block()
        to catch more exceptional cases.
        .
        Changed key_cache_read(), key_cache_insert() and key_cache_write()
        so that they lock keycache->cache_lock whenever the key cache is
        initialized. Checking for a disabled cache and incrementing and
        decrementing the "resize counter" is always done within the lock.
        Locking and unlocking as well as counting the "resize counter" is
        now done once outside the loop. All three functions can now handle
        a NULL return from find_key_block. This happens in the flush phase
        of a resize and demands direct file I/O. Care is taken for
        secondary requests (PAGE_WAIT_TO_BE_READ) to wait in any case.
        Moved block status changes behind the copying of buffer data.
        key_cache_insert() does now read the block if the caller did
        supply less data than a full cache block.
        key_cache_write() does now take care of parallel running flushes
        (BLOCK_FOR_UPDATE, BLOCK_IN_FLUSHWRITE).
        .
        Changed free_block() to un-initialize block variables in the
        correct order and respect an exceptional BLOCK_IN_EVICTION state.
        .
        Changed flushing to take care for parallel running writes.
        Changed flushing to avoid freeing blocks in eviction.
        Changed flushing to consider that parallel writes can move blocks
        from the file_blocks hash to the changed_blocks hash.
        Changed flushing to take care for other parallel flushes.
        Changed flushing to assure that it ends with everything flushed.
        Optimized normal flush at end of statement (FLUSH_KEEP),
        but let other flush types be stringent.
        .
        Added some comments and debugging statements.
      mysys/my_static.c:
        Bug#17332 - changing key_buffer_size on a running server
                    can crash under load
        Removed an unused global variable.
      sql/ha_myisam.cc:
        Bug#17332 - changing key_buffer_size on a running server
                    can crash under load
        Moved an automatic (stack) variable to the scope where it is used.
      sql/sql_table.cc:
        Bug#17332 - changing key_buffer_size on a running server
                    can crash under load
        Changed TL_READ to TL_READ_NO_INSERT in mysql_preload_keys.
      540b2dc0
    • Martin Hansson's avatar
      Bug#46259: Merge · fe3b6356
      Martin Hansson authored
      fe3b6356
    • Mikael Ronstrom's avatar
      Automerge · bdd43744
      Mikael Ronstrom authored
      bdd43744
    • Martin Hansson's avatar
      Bug#46259: 5.0.83 -> 5.1.36, query doesn't work · 2cb3a131
      Martin Hansson authored
            
      The parser rule for expressions in a udf parameter list contains 
      two hacks: 
      First, the parser input stream is read verbatim, bypassing 
      the lexer.
      Second, the Item::name field is overwritten. If the argument to a
      udf was a field, the field's name as seen by name resolution was
      overwritten this way.
      If the field name was quoted or escaped, it would appear as e.g. "`field`".
      Fixed by not overwriting field names.
      
      mysql-test/r/udf.result:
        Bug#46259: Test result.
      mysql-test/t/udf.test:
        Bug#46259: Test case.
      sql/sql_yacc.yy:
        Bug#46259: Fix.
      2cb3a131