An error occurred fetching the project authors.
  1. 15 Dec, 2009 1 commit
    • Sergey Vojtovich's avatar
      Backport from 6.0-codebase. · 94098b22
      Sergey Vojtovich authored
      WL#3771
        "Audit Plugin Interface"
        Implement new plug-in type - AUDIT
        New plug-in: audit_null
          simply increments counter for how many times it was called.
      94098b22
  2. 23 Nov, 2009 1 commit
    • Konstantin Osipov's avatar
      Backport of: · 777c3034
      Konstantin Osipov authored
      ------------------------------------------------------------
      revno: 2630.13.2
      committer: Davi Arnaut <davi@sun.com>
      branch nick: WL4284-6.0
      timestamp: Thu 2008-07-03 18:26:51 -0300
      message:
      Remove unused USING_TRANSACTIONS macro which unnecessarily
      cumbers the code. This macro is a historical leftover and
      has no practical use since its unconditionally defined.
      777c3034
  3. 20 Nov, 2009 1 commit
    • Konstantin Osipov's avatar
      Backport of: · 948ee7e5
      Konstantin Osipov authored
      revno: 2476.784.2
      committer: davi@moksha.local
      timestamp: Thu 2007-09-27 16:56:27 -0300 
      message:
      Bug#28870 check that table locks are released/reset
          
      The problem is that some mysql_lock_tables error paths are not
      resetting the tables lock type back to TL_UNLOCK. If the lock
      types are not reset properly, a table might be returned to the
      table cache with wrong lock_type.
            
      The proposed fix is to ensure that the tables lock type is always
      properly reset when mysql_lock_tables fails. This is a
      incompatible change with respect to the process state information.
      948ee7e5
  4. 10 Nov, 2009 3 commits
    • Davi Arnaut's avatar
      Backport of Bug#41860 to mysql-next-mr · 5783428f
      Davi Arnaut authored
      ------------------------------------------------------------
      revno: 3317
      revision-id: davi.arnaut@sun.com-20090522170916-fzc5ca3tjs9roy1t
      parent: patrick.crews@sun.com-20090522152933-ole8s3suy4zqyvku
      committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
      branch nick: 41860-6.0
      timestamp: Fri 2009-05-22 14:09:16 -0300
      message:
        Bug#41860: Without Windows named pipe
      
        The problem was that the patch for Bug#10374 broke named pipe
        and shared memory transports on Windows due to a failure to
        implement a dummy poll method for transports other than BSD
        sockets. Another problem was that mysqltest lacked support
        for named pipe and shared memory connections, which lead to
        misleading test cases that were supposed run common queries
        over both transports.
      
        The solution is to properly implement, at the VIO layer, the
        poll and is_connected methods. The is_connected method is
        implemented for every suppported transport and the poll one
        only where it makes sense. Furthermore, support for named pipe
        and shared memory connections is added to mysqltest as to
        enable testing of both transports using the test suite.
      5783428f
    • Davi Arnaut's avatar
      Backport of Bug#10374 to mysql-next-mr · 58706b3f
      Davi Arnaut authored
      ------------------------------------------------------------
      revno: 2597.37.3
      revision-id: sp1r-davi@mysql.com/endora.local-20080328123626-16430
      parent: sp1r-anozdrin/alik@quad.opbmk-20080327125300-11290
      committer: davi@mysql.com/endora.local
      timestamp: Fri 2008-03-28 09:36:26 -0300
      message:
        Bug#10374 GET_LOCK does not let connection to close on the server side if it's aborted
      
        The problem is that the server doesn't detect aborted connections which
        are waiting on a lock or sleeping (user sleep), wasting system resources
        for a connection that is already dead.
      
        The solution is to peek at the connection every five seconds to verify if
        the connection is not aborted. A aborted connection is detect by polling
        the connection socket for available data to be read or end of file and in
        case of eof, the wait is aborted and the connection killed.
      58706b3f
    • Martin Hansson's avatar
      Backport of Bug#33204 from mysql-pe to · b4a3083d
      Martin Hansson authored
      mysql-next-mr-bugfixing.
      
      Bug no 32858 was fixed in two different ways in what was
      then called mysql 5.1 and 6.0. The fix in 6.0 was very
      different since bugfix no 33204 was present.  Furthermore,
      the two fixes were not compatible. Hence in order to
      backport Bug#33204 to the 5.1-based mysql-next-mr-bugfixing,
      it was necessary to remove the 5.1 fix of 32858 and apply
      the 6.0 version of the fix.
      b4a3083d
  5. 02 Nov, 2009 1 commit
  6. 30 Oct, 2009 1 commit
    • Georgi Kodinov's avatar
      Bug #48291 : crash with row() operator,select into @var, and · a0bea5ee
      Georgi Kodinov authored
        subquery returning multiple rows
      
      Error handling was missing when handling subqueires in WHERE 
      and when assigning a SELECT result to a @variable.
      This caused crash(es). 
      
      Fixed by adding error handling code to both the WHERE 
      condition evaluation and to assignment to an @variable.
      a0bea5ee
  7. 28 Oct, 2009 1 commit
    • Konstantin Osipov's avatar
      A patch and a test case for · fdcf0aff
      Konstantin Osipov authored
      Bug#46539 Various crashes on INSERT IGNORE SELECT + SELECT FOR UPDATE.
      
      If a transaction was rolled back inside InnoDB due to a deadlock
      or lock wait timeout, and the statement had IGNORE clause,
      the server could crash at the end of the statement or on shutdown.
      
      This was caused by the error handling infrastructure's attempt to 
      ignore a non-ignorable error.
      
      When a transaction rollback request is raised, switch off 
      current_select->no_error flag, so that the following error
      won't be ignored.
      
      Instead, we could add !thd->is_fatal_sub_stmt_error to
      my_message_sql(), but since in write_record() we switch
      off no_error, the same approach is used in 
      thd_mark_transaction_to_rollback().
      
      @todo: call thd_mark_transaction_to_rollback() from 
      handler::print_error(), then we can easily make sure
      that the error reported by print_error is not ignored.
      fdcf0aff
  8. 22 Oct, 2009 1 commit
    • Alexander Nozdrin's avatar
      Backporting a patch for Bug#43138. That patch had been already backported · 67dbff68
      Alexander Nozdrin authored
      to 5.1 partially. This patch brings what was left to mysql-next-mr.
      
      Original revisions in 6.0:
      ------------------------------------------------------------
      revno: 2617.31.26
      committer: Alexander Nozdrin <alik@sun.com>
      branch nick: 6.0-rt-bug43138.3
      timestamp: Thu 2009-04-30 19:31:30 +0400
      message:
        Fix for Bug#43138: DROP DATABASE failure does not clean up message list.
        
        The problem was that the high-level function mysql_rm_db() invoked
        low-level mysql_rm_table_part2(), which reported low-level error
        (Unknown table) if SE refused to delete a table. Also when
        mysql_rm_table_part2() reported an error, it didn't add corresponding
        warning into the list (because it is used from other places where such
        behaviour is required).
        
        The fix is to
          1. Remove no_warnings_for_error usage from sql_table.cc
          2. Improve internal error handler support in THD, so that
             a stack of error handlers is allowed.
          3. Create an internal error handler (Drop_table_error_handler)
             to silence useless warnings.
          4. Use the handler in DROP DATABASE and DROP TABLE statements.
      ------------------------------------------------------------
      revno: 2617.69.38
      committer: Alexander Nozdrin <alik@sun.com>
      branch nick: mysql-next-bugfixing-bug37431
      timestamp: Mon 2009-08-24 21:52:09 +0400
      message:
        A test case for Bug#37431 (DROP TABLE does not report errors correctly).
      ------------------------------------------------------------
      revno: 2617.31.29
      committer: Dmitry Lenev <dlenev@mysql.com>
      branch nick: mysql-6.0-runtime
      timestamp: Fri 2009-05-01 17:37:34 +0400
      message:
        Follow-up for fix for bug "Bug#43138: DROP DATABASE failure
        does not clean up message list".
        
        Fixed drop.test failure under non-debug server by moving part
        of test dependent on debug-only feature to separate .test file,
        which won't be run for non-debug versions of server.
      ------------------------------------------------------------
      revno: 2617.45.17
      committer: Sergei Golubchik <serg@mysql.com>
      branch nick: 6.0-maria
      timestamp: Wed 2009-05-13 20:08:58 +0200
      message:
        followup for bug#43138
        if delete fails with a permission denied error, we want to show it
      ------------------------------------------------------------
      
      The patch was backported to 5.1 in scope of Bug#42364 by
      the following revision:
      ------------------------------------------------------------
      revno: 2497.975.3
      committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
      branch nick: mysql-5.1-bugteam
      timestamp: Fri 2009-07-03 13:22:06 +0500
      message:
        Bug#42364 SHOW ERRORS returns empty resultset after dropping non existent table
        enabled message storing into error message list
        for 'drop table' command
      ------------------------------------------------------------
      67dbff68
  9. 21 Oct, 2009 1 commit
    • Konstantin Osipov's avatar
      Backport of revno 2630.28.10, 2630.28.31, 2630.28.26, 2630.33.1, · d4632dff
      Konstantin Osipov authored
      2630.39.1, 2630.28.29, 2630.34.3, 2630.34.2, 2630.34.1, 2630.29.29,
      2630.29.28, 2630.31.1, 2630.28.13, 2630.28.10, 2617.23.14 and
      some other minor revisions.
      
      This patch implements: 
      
      WL#4264 "Backup: Stabilize Service Interface" -- all the
      server prerequisites except si_objects.{h,cc} themselves (they can
      be just copied over, when needed).
      
      WL#4435: Support OUT-parameters in prepared statements.
      
      (and all issues in the initial patches for these two
      tasks, that were discovered in pushbuild and during testing).
      
      Bug#39519: mysql_stmt_close() should flush all data
      associated with the statement.
      
      After execution of a prepared statement, send OUT parameters of the invoked
      stored procedure, if any, to the client.
      
      When using the binary protocol, send the parameters in an additional result
      set over the wire.  When using the text protocol, assign out parameters to
      the user variables from the CALL(@var1, @var2, ...) specification.
      
      The following refactoring has been made:
        - Protocol::send_fields() was renamed to Protocol::send_result_set_metadata();
        - A new Protocol::send_result_set_row() was introduced to incapsulate
          common functionality for sending row data.
        - Signature of Protocol::prepare_for_send() was changed: this operation
          does not need a list of items, the number of items is fully sufficient.
      
      The following backward incompatible changes have been made:
        - CLIENT_MULTI_RESULTS is now enabled by default in the client;
        - CLIENT_PS_MULTI_RESUTLS is now enabled by default in the client.
      d4632dff
  10. 16 Oct, 2009 1 commit
    • Georgi Kodinov's avatar
      Bug #40877: multi statement execution fails in 5.1.30 · 8f6f3dba
      Georgi Kodinov authored
            
      Implemented the server infrastructure for the fix:
      
      1. Added a function LEX_STRING *thd_query_string(THD) to return
      a LEX_STRING structure instead of char *.
      This is the function that must be called in innodb instead of 
      thd_query()
      
      2. Did some encapsulation in THD : aggregated thd_query and 
      thd_query_length into a LEX_STRING and made accessor and mutator 
      methods for easy code updating. 
      
      3. Updated the server code to use the new methods where applicable.
      8f6f3dba
  11. 14 Oct, 2009 1 commit
    • Konstantin Osipov's avatar
      Backport of: · 64dbe379
      Konstantin Osipov authored
      ----------------------------------------------------------
      revno: 2617.22.5
      committer: Konstantin Osipov <kostja@sun.com>
      branch nick: mysql-6.0-runtime
      timestamp: Tue 2009-01-27 05:08:48 +0300
      message:
        Remove non-prefixed use of HASH.
        Always use my_hash_init(), my_hash_inited(), my_hash_search(),
        my_hash_element(), my_hash_delete(), my_hash_free() rather
        than non-prefixed counterparts (hash_init(), etc).
        Remove the backward-compatible defines.
      64dbe379
  12. 13 Oct, 2009 1 commit
    • Konstantin Osipov's avatar
      Introduce thd->query_cache_tls (thread · ea6a22bf
      Konstantin Osipov authored
      local storage for query cache). 
      We need more than one pointer in a thread to
      represent the query cache and net->query_cache_query can not be used
      any more (due to ABI compatibility issues and to different life
      time of NET and THD).
      This is a backport of the following patch from 6.0:
      ----------------------------------------------------------
      revno: 2476.1157.2
      committer: kostja@bodhi.(none)
      timestamp: Sat 2007-06-16 13:29:24 +0400
      ea6a22bf
  13. 12 Oct, 2009 1 commit
  14. 09 Oct, 2009 3 commits
    • Dmitry Lenev's avatar
      Fix for bug #39932 "create table fails if column for FK is in different · 268da1b1
      Dmitry Lenev authored
      case than in corr index".
      
      Server was unable to find existing or explicitly created supporting
      index for foreign key if corresponding statement clause used field
      names in case different than one used in key specification and created
      yet another supporting index.
      In cases when name of constraint (and thus name of generated index)
      was the same as name of existing/explicitly created index this led
      to duplicate key name error.
      
      The problem was that unlike all other code Key_part_spec::operator==()
      compared field names in case sensitive fashion. As result routines
      responsible for getting rid of redundant generated supporting indexes
      for foreign key were not working properly for versions of field names
      using different cases.
      268da1b1
    • Dmitry Lenev's avatar
      This patch is prerequisite for the 2nd milestone of WL#148 "Foreign keys" · d4669dc4
      Dmitry Lenev authored
      storing and restoring information about foreign keys in the .FRM files and
      properly displaying it in SHOW CREATE TABLE output and I_S tables.
      
      The idea of this patch is to change type of Key_part_spec::field_name and
      Key::name to LEX_STRING in order to avoid extra strlen() calls during
      semantic analysis and statement execution, particularly, in code to be
      implemented on the 2nd milestone of WL#148.
      
      Note that since we are not using LEX_STRING everywhere yet (e.g. in
      Create_field and KEY) and we want to limit scope of our changes we
      have to do strlen() in places where we create Key and Key_part_spec
      instances from objects using plain (char*) for strings. These calls
      will go away during the process of further (char*) -> LEX_STRING
      refactoring.
      
      We have introduced these changes in 6.0 and backported them to 5.5
      tree to make people aware of these changes as early as possible and
      to simplify merges with mysql-fk and mysql-6.1-fk trees.
      
      No test case is needed since this patch does not introduce any
      user visible changes.
      d4669dc4
    • Jon Olav Hauglid's avatar
      Bug #44651 "have_community_features" variable should be renamed · 0eccb932
      Jon Olav Hauglid authored
                 "have_profiling"
      
      1) Renamed have_community_features server system variable to
      have_profiling.
      2) Removed eable-community-features configure option and
      ENABLE_COMMUNITY_FEATURES macro.
      3) Removed COMMUNITY_SERVER macro and replaced its usage by 
      ENABLED_PROFILING.
      
      Only --enable-profiling is now needed to enable profiling.
      It was the only existing "community feature", so there was
      no need for both configure options.
      
      Using --enable-community-features will give a warning message
      since it no longer exists.
      0eccb932
  15. 29 Sep, 2009 2 commits
    • Ingo Struewing's avatar
      WL#4259 - Debug Sync Facility · 21586dfb
      Ingo Struewing authored
      Backport from 6.0 to 5.1.
      Only those sync points are included, which are used in debug_sync.test.
      
        The Debug Sync Facility allows to place synchronization points
        in the code:
        
        open_tables(...)
        
        DEBUG_SYNC(thd, "after_open_tables");
        
        lock_tables(...)
        
        When activated, a sync point can
        
        - Send a signal and/or
        - Wait for a signal
        
        Nomenclature:
        
        - signal:            A value of a global variable that persists
                             until overwritten by a new signal. The global
                             variable can also be seen as a "signal post"
                             or "flag mast". Then the signal is what is
                             attached to the "signal post" or "flag mast".
        
        - send a signal:     Assign the value (the signal) to the global
                             variable ("set a flag") and broadcast a
                             global condition to wake those waiting for
                             a signal.
        
        - wait for a signal: Loop over waiting for the global condition until
                             the global value matches the wait-for signal.
        
        Please find more information in the top comment in debug_sync.cc
        or in the worklog entry.
      21586dfb
    • Alfranio Correia's avatar
      WL#4828 and BUG#45747 · 5280dc82
      Alfranio Correia authored
      NOTE: Backporting the patch to next-mr.
      
      WL#4828 Augment DBUG_ENTER/DBUG_EXIT to crash MySQL in different functions
      -------
      
      The assessment of the replication code in the presence of faults is extremely
      import to increase reliability. In particular, one needs to know if servers
      will either correctly recovery or print out appropriate error messages thus
      avoiding unexpected problems in a production environment.
      
      In order to accomplish this, the current patch refactories the debug macros
      already provided in the source code and introduces three new macros that
      allows to inject faults, specifically crashes, while entering or exiting a
      function or method. For instance, to crash a server while returning from
      the init_slave function (see module sql/slave.cc), one needs to do what
      follows:
      
      1 - Modify the source replacing DBUG_RETURN by DBUG_CRASH_RETURN;
      
        DBUG_CRASH_RETURN(0);
      
      2 - Use the debug variable to activate dbug instructions:
      
        SET SESSION debug="+d,init_slave_crash_return";
      
      The new macros are briefly described below:
      
      DBUG_CRASH_ENTER (function) is equivalent to DBUG_ENTER which registers the
      beginning of a function but in addition to it allows for crashing the server
      while entering the function if the appropriate dbug instruction is activate.
      In this case, the dbug instruction should be "+d,function_crash_enter".
      
      DBUG_CRASH_RETURN (value) is equivalent to DBUG_RETURN which notifies the
      end of a function but in addition to it allows for crashing the server
      while returning from the function if the appropriate dbug instruction is
      activate. In this case, the dbug instruction should be
      "+d,function_crash_return". Note that "function" should be the same string
      used by either the DBUG_ENTER or DBUG_CRASH_ENTER.
      
      DBUG_CRASH_VOID_RETURN (value) is equivalent to DBUG_VOID_RETURN which
      notifies the end of a function but in addition to it allows for crashing
      the server while returning from the function if the appropriate dbug
      instruction is activate. In this case, the dbug instruction should be
      "+d,function_crash_return". Note that "function" should be the same string
      used by either the DBUG_ENTER or DBUG_CRASH_ENTER.
      
      To inject other faults, for instance, wrong return values, one should rely
      on the macros already available. The current patch also removes a set of
      macros that were either not being used or were redundant as other macros
      could be used to provide the same feature. In the future, we also consider
      dynamic instrumentation of the code.
      
      
      BUG#45747 DBUG_CRASH_* is not setting the strict option
      ---------
            
      When combining DBUG_CRASH_* with "--debug=d:t:i:A,file" the server crashes
      due to a call to the abort function in the DBUG_CRASH_* macro althought the
      appropriate keyword has not been set.
      5280dc82
  16. 26 Sep, 2009 1 commit
  17. 24 Sep, 2009 1 commit
    • Luis Soares's avatar
      BUG#42829: binlogging enabled for all schemas regardless of · 5e04d469
      Luis Soares authored
      binlog-db-db / binlog-ignore-db
            
      InnoDB will return an error if statement based replication is used
      along with transaction isolation level READ-COMMITTED (or weaker),
      even if the statement in question is filtered out according to the
      binlog-do-db rules set. In this case, an error should not be printed.
            
      This patch addresses this issue by extending the existing check in
      external_lock to take into account the filter rules before deciding to
      print an error. Furthermore, it also changes decide_logging_format to
      take into consideration whether the statement is filtered out from 
      binlog before decision is made.
      5e04d469
  18. 10 Sep, 2009 2 commits
  19. 31 Jul, 2009 2 commits
    • Gleb Shchepa's avatar
      Bug# 30946: mysqldump silently ignores --default-character-set · e642140b
      Gleb Shchepa authored
                  when used with --tab
      
      1) New syntax: added CHARACTER SET clause to the
        SELECT ... INTO OUTFILE (to complement the same clause in
        LOAD DATA INFILE).
        mysqldump is updated to use this in --tab mode.
      
      2) ESCAPED BY/ENCLOSED BY field parameters are documented as
         accepting CHAR argument, however SELECT .. INTO OUTFILE
         silently ignored rests of multisymbol arguments.
         For the symmetrical behavior with LOAD DATA INFILE the
         server has been modified to fail with the same error:
      
           ERROR 42000: Field separator argument is not what is
                        expected; check the manual
      
      3) Current LOAD DATA INFILE recognizes field/line separators
         "as is" without converting from client charset to data
         file charset. So, it is supposed, that input file of
         LOAD DATA INFILE consists of data in one charset and
         separators in other charset. For the compatibility with
         that [buggy] behaviour SELECT INTO OUTFILE implementation
         has been saved "as is" too, but the new warning message
         has been added:
      
           Non-ASCII separator arguments are not fully supported
      
         This message warns on field/line separators that contain
         non-ASCII symbols.
      e642140b
    • Davi Arnaut's avatar
      Bug#46265: Can not disable warning about unsafe statements for binary logging · e1c43705
      Davi Arnaut authored
      If using statement based replication (SBR), repeatedly calling
      statements which are unsafe for SBR will cause a warning message
      to be written to the error for each statement. This might lead
      to filling up the error log and there is no way to disable this
      behavior.
      
      The solution is to only log these message (about statements unsafe
      for statement based replication) if the log_warnings option is set.
      
      For example:
      
      SET GLOBAL LOG_WARNINGS = 0;
      INSERT INTO t1 VALUES(UUID());
      SET GLOBAL LOG_WARNINGS = 1;
      INSERT INTO t1 VALUES(UUID());
      
      In this case the message will be printed only once:
      
      [Warning] Statement may not be safe to log in statement format.
                Statement: INSERT INTO t1 VALUES(UUID())
      e1c43705
  20. 24 Jul, 2009 1 commit
    • Gleb Shchepa's avatar
      Bug #38816: kill + flush tables with read lock + stored · 6aea4ceb
      Gleb Shchepa authored
                  procedures causes crashes!
      
      The problem of that bugreport was mostly fixed by the
      patch for bug 38691.
      However, attached test case focused on another crash or
      valgrind warning problem: SHOW PROCESSLIST query accesses
      freed memory of SP instruction that run in a parallel
      connection.
      
      Changes of thd->query/thd->query_length in dangerous
      places have been guarded with the per-thread
      LOCK_thd_data mutex (the THD::LOCK_delete mutex has been
      renamed to THD::LOCK_thd_data).
      6aea4ceb
  21. 27 Jun, 2009 1 commit
    • Luis Soares's avatar
      BUG#42851: Spurious "Statement is not safe to log in statement · 92536e42
      Luis Soares authored
                 format." warnings
            
      Despite the fact that a statement would be filtered out from binlog, a
      warning would still be thrown if it was issued with the LIMIT.
            
      This patch addresses this issue by checking the filtering rules before
      printing out the warning.
      92536e42
  22. 25 Jun, 2009 1 commit
    • Staale Smedseng's avatar
      Bug #34002 uninitialized Rows_examined for some admin queries · 498ac0f5
      Staale Smedseng authored
      such as quit and shutdown
      
      Logging to slow log can produce an undetermined value for
      Rows_examined in special cases. In debug mode this manifests
      itself as any of the various marker values used to mark
      uninitialized memory on various platforms.
      
      If logging happens on a THD object that hasn't performed any
      row reads (on this or any previous connections), the
      THD::examined_row_count may be uninitialized. This patch adds
      initialization for this attribute.
      
      No automated test cases are added, as for this to be
      meaningful, we need to ensure that we're using a THD
      fulfilling the above conditions. This is hard to do in the
      mysql-test-run framework. The patch has been verified
      manually, however, by restarting mysqld and running the test
      included with the bug report.
      498ac0f5
  23. 24 Jun, 2009 1 commit
    • MySQL Build Team's avatar
      Backport into build-200906240007-5.1.34sp1 · 0837b591
      MySQL Build Team authored
      > ------------------------------------------------------------
      > revno: 2852.2.1
      > revision-id: gni@mysql.com-20090403182157-de6ecrtzlgvpl5mk
      > parent: timothy.smith@sun.com-20090402083720-b7i3jr4dmvwjakcj
      > committer: Guangbao Ni <gni@mysql.com>
      > branch nick: bugteam-5.1-bug42640
      > timestamp: Fri 2009-04-03 18:21:57 +0000
      > message:
      >   BUG#42640 mysqld crashes when unsafe statements are executed (STRICT_TRANS_TABLESmode)
      >   
      >   Mysql server crashes because unsafe statements warning is wrongly elevated to error,
      >   which is set the error status of Diagnostics_area of the thread in THD::binlog_query().
      >   Yet the caller believes that binary logging shouldn't touch the status, so it will
      >   set the status also later by my_ok(), my_error() or my_message() seperately
      >   according to the execution result of the statement or transaction.
      >   But the status of Diagnostics_area of the thread is allowed to set only once.
      >   
      >   Fixed to clear the error wrongly set by binary logging, but keep the warning message.
      0837b591
  24. 10 Jun, 2009 1 commit
  25. 08 Jun, 2009 1 commit
  26. 30 May, 2009 1 commit
  27. 29 May, 2009 1 commit
    • Kristofer Pettersson's avatar
      Bug#44658 Create procedure makes server crash when user does not have ALL privilege · a6455554
      Kristofer Pettersson authored
      MySQL crashes if a user without proper privileges attempts to create a procedure.
      
      The crash happens because more than one error state is pushed onto the Diagnostic
      area. In this particular case the user is denied to implicitly create a new user
      account with the implicitly granted privileges ALTER- and EXECUTE ROUTINE.
      
      The new account is needed if the original user account contained a host mask.
      A user account with a host mask is a distinct user account in this context.
      An alternative would be to first get the most permissive user account which
      include the current user connection and then assign privileges to that
      account. This behavior change is considered out of scope for this bug patch.
      
      The implicit assignment of privileges when a user creates a stored routine is a
      considered to be a feature for user convenience and as such it is not
      a critical operation. Any failure to complete this operation is thus considered
      non-fatal (an error becomes a warning).
      
      The patch back ports a stack implementation of the internal error handler interface.
      This enables the use of multiple error handlers so that it is possible to intercept
      and cancel errors thrown by lower layers. This is needed as a error handler already
      is used in the call stack emitting the errors which needs to be converted.
      a6455554
  28. 05 May, 2009 1 commit
  29. 30 Apr, 2009 1 commit
  30. 03 Apr, 2009 1 commit
    • Guangbao Ni's avatar
      BUG#42640 mysqld crashes when unsafe statements are executed (STRICT_TRANS_TABLESmode) · 61ce7092
      Guangbao Ni authored
      Mysql server crashes because unsafe statements warning is wrongly elevated to error,
      which is set the error status of Diagnostics_area of the thread in THD::binlog_query().
      Yet the caller believes that binary logging shouldn't touch the status, so it will
      set the status also later by my_ok(), my_error() or my_message() seperately
      according to the execution result of the statement or transaction.
      But the status of Diagnostics_area of the thread is allowed to set only once.
      
      Fixed to clear the error wrongly set by binary logging, but keep the warning message.
      61ce7092
  31. 25 Mar, 2009 2 commits
    • Ramil Kalimullin's avatar
      Fix for bug#35383: binlog playback and replication breaks · cf6c7262
      Ramil Kalimullin authored
      due to name_const substitution
      
      Problem:
      "In general, statements executed within a stored procedure
      are written to the binary log using the same rules that
      would apply were the statements to be executed in standalone
      fashion. Some special care is taken when logging procedure
      statements because statement execution within procedures
      is not quite the same as in non-procedure context".
      
      For example, each reference to a local variable in SP's
      statements is replaced by NAME_CONST(var_name, var_value).
      Queries like
      "CREATE TABLE ... SELECT FUNC(local_var ..."
      are logged as
      "CREATE TABLE ... SELECT FUNC(NAME_CONST("local_var", var_value) ..."
      that leads to differrent field names and
      might result in "Incorrect column name" if var_value is long enough.
      
      Fix: in 5.x we'll issue a warning in such a case.
      In 6.0 we should get rid of NAME_CONST().
      
      Note: this issue and change should be described in the documentation
      ("Binary Logging of Stored Programs").
      cf6c7262
    • Tatiana A. Nurnberg's avatar
      Bug#43748: crash when non-super user tries to kill the replication threads · de8042d0
      Tatiana A. Nurnberg authored
      Fine-tuning. Broke out comparison into method by
      suggestion of Davi. Clarified comments. Reverting
      test-case which I find too brittle; proper test
      case in 5.1+.
      de8042d0
  32. 19 Mar, 2009 1 commit