1. 10 Dec, 2009 2 commits
  2. 09 Dec, 2009 4 commits
  3. 07 Dec, 2009 1 commit
  4. 06 Dec, 2009 5 commits
    • Luis Soares's avatar
      Automerge bzr bundle from bug report. · 1ee79014
      Luis Soares authored
      Removed rpl_cross_version from experimental list.
      1ee79014
    • Luis Soares's avatar
    • Luis Soares's avatar
      BUG#49119: Master crashes when executing 'REVOKE ... ON · 289c1493
      Luis Soares authored
      {PROCEDURE|FUNCTION} FROM ...'
      
      The master would hit an assertion when binary log was
      active. This was due to the fact that the thread's diagnostics
      area was being cleared before writing to the binlog,
      independently of mysql_routine_grant returning an error or
      not. When mysql_routine_grant was to return an error, the return
      value and the diagnostics area contents would
      mismatch. Consequently, neither my_ok would be called nor an
      error would be signaled in the diagnostics area, eventually
      triggering the assertion in net_end_statement.
      
      We fix this by not clearing the diagnostics area at binlogging
      time. 
      289c1493
    • Staale Smedseng's avatar
      Merge from 5.0 · d5391ed6
      Staale Smedseng authored
      d5391ed6
    • Staale Smedseng's avatar
      Bug #47391 no stack trace printed to error log on · 846c81c7
      Staale Smedseng authored
      solaris after a crash
            
      This patch adds a Solaris-specific version of
      print_stacktrace() which uses printstack(2), available on all
      Solaris versions since Solaris 9. (While Solaris 11 adds
      support for the glibc functions backtrace_*() as of
      PSARC/2007/162, printstack() is used for consistency over all
      Solaris versions.)
      
      The symbol names are mangled, so use of c++filt may be
      required as described in the MySQL documentation.
      846c81c7
  5. 05 Dec, 2009 1 commit
  6. 04 Dec, 2009 3 commits
    • Davi Arnaut's avatar
      Bug#49141: Encode function is significantly slower in 5.1 compared to 5.0 · 96a3a92c
      Davi Arnaut authored
      The problem was that the multiple evaluations of a ENCODE or
      DECODE function within a single statement caused the random
      generator to be reinitialized at each evaluation, even though
      the parameters were constants.
      
      The solution is to initialize the random generator only once
      if the password (seed) parameter is constant.
      
      This patch borrows code and ideas from Georgi Kodinov's patch.
      96a3a92c
    • Davi Arnaut's avatar
      Bug#41569: mysql_upgrade (ver 5.1) add 3 fields to mysql.proc table but does not set values · a2d630d0
      Davi Arnaut authored
      Post-merge fix: Redirect stderr to a file as to avoid buffering
      problems due to redirecting stderr to stdout.
      a2d630d0
    • Alfranio Correia's avatar
      BUG#45292 orphan binary log created when starting server twice · e362e9a7
      Alfranio Correia authored
      This patch fixes three bugs as follows. First, aborting the server while purging
      binary logs might generate orphan files due to how the purge operation was
      implemented:
      
                (purge routine - sql/log.cc - MYSQL_BIN_LOG::purge_logs)
      
            1 - register the files to be removed in a temporary buffer.
            2 - update the log-bin.index.
            3 - flush the log-bin.index.
            4 - erase the files whose names where register in the temporary buffer
            in step 1.
      
      Thus a failure while  executing step 4 would generate an orphan file. Second,
      a similar issue might happen while creating a new binary as follows:
      
                (create routine - sql/log.cc - MYSQL_BIN_LOG::open)
      
            1 - open the new log-bin.
            2 - update the log-bin.index.
      
      Thus a failure while executing step 1 would generate an orphan file.
      
      To fix these issues, we record the files to be purged or created before really
      removing or adding them. So if a failure happens such records can be used to
      automatically remove dangling files. The new steps might be outlined as follows:
      
                (purge routine - sql/log.cc - MYSQL_BIN_LOG::purge_logs)
      
            1 - register the files to be removed in the log-bin.~rec~ placed in
            the data directory.
            2 - update the log-bin.index.
            3 - flush the log-bin.index.
            4 - delete the log-bin.~rec~.
      
                (create routine - sql/log.cc - MYSQL_BIN_LOG::open)
      
            1 - register the file to be created in the log-bin.~rec~
            placed in the data directory.
            2 - open the new log-bin.
            3 - update the log-bin.index.
            4 - delete the log-bin.~rec~.
      
                (recovery routine - sql/log.cc - MYSQL_BIN_LOG::open_index_file)
      
            1 - open the log-bin.index.
            2 - open the log-bin.~rec~.
            3 - for each file in log-bin.~rec~.
              3.1 Check if the file is in the log-bin.index and if so ignore it.
              3.2 Otherwise, delete it.
      
      The third issue can be described as follows. The purge operation was allowing
      to remove a file in use thus leading to the loss of data and possible
      inconsistencies between the master and slave. Roughly, the routine was only
      taking into account the dump threads and so if a slave was not connect the
      file might be delete even though it was in use.
      e362e9a7
  7. 03 Dec, 2009 7 commits
    • Gleb Shchepa's avatar
      Bug #38883: thd_security_context is not thread safe, crashes? · 2a878de0
      Gleb Shchepa authored
      After-push minor code cleanup for WL 2360: unnecessary external
      reference to LOCK_thread_count has been removed from ha_innodb.cc.
      2a878de0
    • lars-erik.bjork@sun.com's avatar
      This is a patch for bug#41569. · 99654c27
      lars-erik.bjork@sun.com authored
      "mysql_upgrade (ver 5.1) add 3 fields to mysql.proc table but does
      not set values".
                  
      mysql_upgrade (ver 5.1) adds 3 fields (character_set_client, 
      collation_connection and db_collation) to the mysql.proc table, but 
      does not set any values. When we run stored procedures, which were 
      created with mysql 5.0, a warning is logged into the error log.
                  
      The solution to this is for mysql_upgrade to set default best guess
      values for these fields. A warning is also written during upgrade, to
      make the user aware that default values are set.
      99654c27
    • Evgeny Potemkin's avatar
      Auto-merged. · c286b411
      Evgeny Potemkin authored
      c286b411
    • Evgeny Potemkin's avatar
      Auto-merged. · eb911422
      Evgeny Potemkin authored
      eb911422
    • Evgeny Potemkin's avatar
      Bug#48508: Crash on prepared statement re-execution. · a2f18f44
      Evgeny Potemkin authored
      Test case cleanup.
      a2f18f44
    • Georgi Kodinov's avatar
      Bug #48985: show create table crashes if previous access to the table was killed · 1457d7b3
      Georgi Kodinov authored
      When checking for an error after removing the special view error handler the code
      was not taking into account that open_tables() may fail because of the current
      statement being killed. 
      Added a check for thd->killed.
      Added a client program to test it.
      1457d7b3
    • Alexander Barkov's avatar
      Bug#44131 Binary-mode "order by" returns records in incorrect order for UTF-8 strings · 3707a74e
      Alexander Barkov authored
      Problem: Item_char_typecast reported wrong max_length when
      casting to BINARY, which lead, in particular, in wrong
      "ORDER BY BINARY(char_column)" results.
      
      Fix: making Item_char_typecast report correct max_length.
      
        @ mysql-test/r/ctype_utf16.result
          Fixing old incorrect test result.
        @ mysql-test/r/ctype_utf32.result
          Fixing old incorrect test result.
        @ mysql-test/r/ctype_utf8.result
          Adding new test
        @ mysql-test/t/ctype_utf8.test
          Adding new test
        @ sql/item_timefunc.cc
          Making Item_char_typecast report correct max_length
          when cast is done to BINARY.
      3707a74e
  8. 02 Dec, 2009 3 commits
    • Evgeny Potemkin's avatar
      Auto-merged. · e4344ffa
      Evgeny Potemkin authored
      e4344ffa
    • Evgeny Potemkin's avatar
      Auto-merged fix for the bug#48508. · 1a0f3c38
      Evgeny Potemkin authored
      1a0f3c38
    • Alexander Barkov's avatar
      Bug#48766 SHOW CREATE FUNCTION returns extra data in return clause · f81700aa
      Alexander Barkov authored
      Problem: SHOW CREATE FUNCTION and SELECT DTD_IDENTIFIER FROM I_S.ROUTINES
      returned wrong values in case of ENUM return data type and UCS2
      character set.
      
      Fix: the string to collect returned data type was incorrectly set to
      "binary" character set, therefore UCS2 values where returned with
      extra '\0' characters.
      Setting string character set to creation_ctx->get_client_cs()
      in sp_find_routine(), and to system_charset_info in sp_create_routine
      fixes the problem.
      
      Adding tests:
      - the original test with Latin letters
      - an extra test with non-Latin letters
      f81700aa
  9. 01 Dec, 2009 9 commits
    • Evgeny Potemkin's avatar
      Bug#48508: Crash on prepared statement re-execution. · 1db3a684
      Evgeny Potemkin authored
      Actually there is two different bugs.
      The first one caused crash on queries with WHERE condition over views
      containing WHERE condition. A wrong check for prepared statement phase led
      to items for view fields being allocated in the execution memory and freed
      at the end of execution. Thus the optimized WHERE condition refers to
      unallocated memory on the second execution and server crashed.
      The second one caused by the Item_cond::compile function not saving changes
      it made to the item tree. Thus on the next execution changes weren't
      reverted and server crashed on dereferencing of unallocated space.
      
      The new helper function called is_stmt_prepare_or_first_stmt_execute
      is added to the Query_arena class.
      The find_field_in_view function now uses
      is_stmt_prepare_or_first_stmt_execute() to check whether
      newly created view items should be freed at the end of the query execution.
      The Item_cond::compile function now saves changes it makes to item tree.
      1db3a684
    • Satya B's avatar
      merge to mysql-5.1-bugteam · f327aa6e
      Satya B authored
      f327aa6e
    • Satya B's avatar
      Addition to Innodb Plugin 1.0.6 snapshot · a5b6f693
      Satya B authored
      the last IF ELSE part which decides the plugin name is not relevant as we still have
      to substitute the occurences of INNOBASE with INNODB_PLUGIN.
      Remove the last IF ELSE part in CMakeLists.txt as it doesn't make sense in 5.1.
      a5b6f693
    • Gleb Shchepa's avatar
      Bug #38883 (reopened): thd_security_context is not thread safe, crashes? · b2fc9114
      Gleb Shchepa authored
      manual merge 5.0-->5.1, updating InnoDB plugin.
      b2fc9114
    • Gleb Shchepa's avatar
      Bug #38883 (reopened): thd_security_context is not thread safe, crashes? · 5f31dbdc
      Gleb Shchepa authored
      The bug 38816 changed the lock that protects THD::query from
      LOCK_thread_count to LOCK_thd_data, but didn't update the associated
      InnoDB functions.
      
      1. The innobase_mysql_prepare_print_arbitrary_thd and the
      innobase_mysql_end_print_arbitrary_thd InnoDB functions have been
      removed, since now we have a per-thread mutex: now we don't need to wrap
      several inter-thread access tries to THD::query with a single global
      LOCK_thread_count lock, so we can simplify the code.
      
      2. The innobase_mysql_print_thd function has been modified to lock
      LOCK_thd_data in direct way.
      5f31dbdc
    • Georgi Kodinov's avatar
      merged · 0b7c514e
      Georgi Kodinov authored
      0b7c514e
    • Georgi Kodinov's avatar
    • Georgi Kodinov's avatar
    • 's avatar
      Updated experimental test list for rpl.rpl_cross_version · c92bce90
      authored
      and rpl.rpl_get_master_version_and_clock.
      c92bce90
  10. 30 Nov, 2009 5 commits
    • Satya B's avatar
      merge to mysql-5.1-bugteam · ce449a7f
      Satya B authored
      ce449a7f
    • Satya B's avatar
      Applying InnoDB Plugin 1.0.6 snapshot, Fixes BUG#48469 · 685725eb
      Satya B authored
      applied revisions: r6201, r6202, r6207, r6208, r6210
      
      r6202 - port fix for BUG#48469 to plugin
      
      Detailed revision comments:
      
      r6201 | marko | 2009-11-19 14:09:11 +0200 (Thu, 19 Nov 2009) | 2 lines
      branches/zip: ha_innobase::add_index(): Clarify the comment
      on orphaned tables when creating a primary key.
      r6202 | jyang | 2009-11-19 15:01:00 +0200 (Thu, 19 Nov 2009) | 8 lines
      branches/zip: Function fseg_free() is no longer defined
      in branches/zip. To port fix for bug #48469 to zip,
      we can use btr_free_root() which frees the page,
      and also does not require mini-transaction.
      
      Approved by Marko.
      
      
      r6207 | vasil | 2009-11-20 10:19:14 +0200 (Fri, 20 Nov 2009) | 54 lines
      branches/zip: Merge r6198:6206 from branches/5.1:
      
      (r6203 was skipped as it is already in branches/zip)
      
        ------------------------------------------------------------------------
        r6200 | vasil | 2009-11-19 12:14:23 +0200 (Thu, 19 Nov 2009) | 4 lines
        Changed paths:
           M /branches/5.1/btr/btr0btr.c
        
        branches/5.1:
        
        White space fixup - indent under the opening (
        
        ------------------------------------------------------------------------
        r6203 | jyang | 2009-11-19 15:12:22 +0200 (Thu, 19 Nov 2009) | 8 lines
        Changed paths:
           M /branches/5.1/btr/btr0btr.c
        
        branches/5.1: Use btr_free_root() instead of fseg_free() for
        the fix of bug #48469, because fseg_free() is not defined
        in the zip branch. And we could save one mini-trasaction started
        by fseg_free().
        
        Approved by Marko.
        
        
        ------------------------------------------------------------------------
        r6205 | jyang | 2009-11-20 07:55:48 +0200 (Fri, 20 Nov 2009) | 11 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
        
        branches/5.1: Add a special case to handle the Duplicated Key error
        and return DB_ERROR instead. This is to avoid a possible SIGSEGV
        by mysql error handling re-entering the storage layer for dup key
        info without proper table handle.
        This is to prevent a server crash when error situation in bug
        #45961 "DDL on partitioned innodb tables leaves data dictionary
        in an inconsistent state" happens.
        
        rb://157 approved by Sunny Bains.
        
        
        ------------------------------------------------------------------------
        r6206 | jyang | 2009-11-20 09:38:43 +0200 (Fri, 20 Nov 2009) | 5 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
        
        branches/5.1: Fix a minor code formating issue for 
        the parenthesis iplacement of the if condition in
        rename_table().
        
        
        ------------------------------------------------------------------------
      
      r6208 | vasil | 2009-11-20 10:49:24 +0200 (Fri, 20 Nov 2009) | 4 lines
      branches/zip:
      
      Add ChangeLog entry for c6207.
      
      r6210 | vasil | 2009-11-20 23:39:48 +0200 (Fri, 20 Nov 2009) | 3 lines
      branches/zip:
      
      Whitespace fixup.
      685725eb
    • Satya B's avatar
      Applying InnoDB Plugin 1.0.6 snapshot, part 9. Fixes BUG#48526, BUG#48317 · f35e3c0a
      Satya B authored
      applied revisions: r6197, r6198, r6199
      r6197 - BUG#48317
      r6199 - BUG#48526
      
      Detailed revision comments:
      
      r6197 | calvin | 2009-11-19 09:32:55 +0200 (Thu, 19 Nov 2009) | 6 lines
      branches/zip: merge the fix of bug#48317 (CMake file)
      
      Due to MySQL changes to the CMake, it is no longer able
      to build InnoDB plugin as a static library on Windows.
      The fix is proposed by Vlad of MySQL.
      
      r6198 | vasil | 2009-11-19 09:44:31 +0200 (Thu, 19 Nov 2009) | 4 lines
      branches/zip:
      
      Add ChangeLog entry for r6197.
      
      r6199 | vasil | 2009-11-19 12:10:12 +0200 (Thu, 19 Nov 2009) | 31 lines
      branches/zip: Merge r6159:6198 from branches/5.1:
      
        ------------------------------------------------------------------------
        r6187 | jyang | 2009-11-18 05:27:30 +0200 (Wed, 18 Nov 2009) | 9 lines
        Changed paths:
           M /branches/5.1/btr/btr0btr.c
        
        branches/5.1: Fix bug #48469 "when innodb tablespace is
        configured too small, crash and corruption!". Function
        btr_create() did not check the return status of fseg_create(),
        and continue the index creation even there is no sufficient
        space.
        
        rb://205 Approved by Marko
        
        
        ------------------------------------------------------------------------
        r6188 | jyang | 2009-11-18 07:14:23 +0200 (Wed, 18 Nov 2009) | 8 lines
        Changed paths:
           M /branches/5.1/data/data0type.c
        
        branches/5.1: Fix bug #48526 "Data type for float and
        double is incorrectly reported in InnoDB table monitor".
        Certain datatypes are not printed correctly in
        dtype_print().
        
        rb://204 Approved by Marko.
        
        
        ------------------------------------------------------------------------
      f35e3c0a
    • Satya B's avatar
      Applying InnoDB Plugin 1.0.6 snapshot, part 8. Fixes BUG#48782 · 7cec3500
      Satya B authored
      applied revisions: r6185, r6186, r6189, r6194
      
      r6185 - only code changes incorporated, changesets which change
              innodb tests in the main mysql suite are discarded
      
      r61889 - Fixes BUG#48782
      
      Detailed revision comments:
      
      r6185 | marko | 2009-11-17 16:44:20 +0200 (Tue, 17 Nov 2009) | 16 lines
      branches/zip: Report duplicate table names
      to the client connection, not to the error log.  This change will allow
      innodb-index.test to be re-enabled.  It was previously disabled, because
      mysql-test-run does not like output in the error log.
      
      row_create_table_for_mysql(): Do not output anything to the error log
      when reporting DB_DUPLICATE_KEY.  Let the caller report the error.
      Add a TODO comment that the dict_table_t object is apparently not freed
      when an error occurs.
      
      create_table_def(): Convert InnoDB table names to the character set
      of the client connection for reporting.  Use my_error(ER_WRONG_COLUMN_NAME)
      for reporting reserved column names.  Report my_error(ER_TABLE_EXISTS_ERROR)
      when row_create_table_for_mysql() returns DB_DUPLICATE_KEY.
      
      rb://206
      r6186 | vasil | 2009-11-17 16:48:14 +0200 (Tue, 17 Nov 2009) | 4 lines
      branches/zip:
      
      Add ChangeLog entry for r6185.
      
      r6189 | marko | 2009-11-18 11:36:18 +0200 (Wed, 18 Nov 2009) | 5 lines
      branches/zip: ha_innobase::add_index(): When creating the primary key
      and the table is being locked by another transaction,
      do not attempt to drop the table. (Bug #48782)
      
      Approved by Sunny Bains over IM
      r6194 | vasil | 2009-11-19 09:24:45 +0200 (Thu, 19 Nov 2009) | 5 lines
      branches/zip:
      
      Increment version number from 1.0.5 to 1.0.6 since 1.0.5 was just released
      by MySQL and we will soon release 1.0.6.
      7cec3500
    • Satya B's avatar
      Applying InnoDB Plugin 1.0.6 snapshot, part 7 · 072e2bb4
      Satya B authored
      Fixes several test cases.
      
      applied revisions: r6181, r6182, r6183, r6184
      
      r6183 - changes are made only to tests in innodb suite which is only 
              innodb-consistent-master.opt
      
      Detailed revision comments:
      
      r6181 | vasil | 2009-11-17 12:21:41 +0200 (Tue, 17 Nov 2009) | 33 lines
      branches/zip:
      
      At the end of innodb-index.test: restore the environment as it was before
      the test was started to silence this warning:
      
        MTR's internal check of the test case 'main.innodb-index' failed.
        This means that the test case does not preserve the state that existed
        before the test case was executed.  Most likely the test case did not
        do a proper clean-up.
        This is the diff of the states of the servers before and after the
        test case was executed:
        mysqltest: Logging to '/tmp/autotest.sh-20091117_033000-zip.btyZwu/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.log'.
        mysqltest: Results saved in '/tmp/autotest.sh-20091117_033000-zip.btyZwu/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.result'.
        mysqltest: Connecting to server localhost:13000 (socket /tmp/autotest.sh-20091117_033000-zip.btyZwu/mysql-5.1/mysql-test/var/tmp/mysqld.1.sock) as 'root', connection 'default', attempt 0 ...
        mysqltest: ... Connected.
        mysqltest: Start processing test commands from './include/check-testcase.test' ...
        mysqltest: ... Done processing test commands.
        --- /tmp/autotest.sh-20091117_033000-zip.btyZwu/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.result	2009-11-17 13:10:40.000000000 +0300
        +++ /tmp/autotest.sh-20091117_033000-zip.btyZwu/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.reject	2009-11-17 13:10:54.000000000 +0300
        @@ -84,7 +84,7 @@
         INNODB_DOUBLEWRITE	ON
         INNODB_FAST_SHUTDOWN	1
         INNODB_FILE_FORMAT	Antelope
        -INNODB_FILE_FORMAT_CHECK	Antelope
        +INNODB_FILE_FORMAT_CHECK	Barracuda
         INNODB_FILE_PER_TABLE	OFF
         INNODB_FLUSH_LOG_AT_TRX_COMMIT	1
         INNODB_FLUSH_METHOD	
        
        mysqltest: Result content mismatch
        
        not ok
      
      r6182 | marko | 2009-11-17 13:49:15 +0200 (Tue, 17 Nov 2009) | 1 line
      branches/zip: Set svn:eol-style on mysql-test files.
      r6183 | marko | 2009-11-17 13:51:16 +0200 (Tue, 17 Nov 2009) | 1 line
      branches/zip: Prepend loose_ to plugin-only mysql-test options.
      r6184 | marko | 2009-11-17 13:52:01 +0200 (Tue, 17 Nov 2009) | 1 line
      branches/zip: innodb-index.test: Restore innodb_file_format_check.
      072e2bb4