An error occurred fetching the project authors.
  1. 31 Mar, 2010 1 commit
  2. 10 Mar, 2010 1 commit
    • Sergey Vojtovich's avatar
      BUG#51342 - more xid crashing · 405fd822
      Sergey Vojtovich authored
      SET autocommit=1 while XA transaction is active may
      cause various side effects, including memory corruption
      and server crash.
      
      The problem is that SET autocommit=1 and further queries
      attempt to commit local transaction, whereas XA transaction
      is still active.
      
      As local and XA transactions are mutually exclusive, this
      patch forbids enabling autocommit mode while XA transaction
      is active.
      
      mysql-test/r/xa.result:
        A test case for BUG#51342.
      mysql-test/t/xa.test:
        A test case for BUG#51342.
      sql/set_var.cc:
        Forbid enabling autocommit mode while XA transaction is
        active.
      405fd822
  3. 21 Jan, 2010 1 commit
    • Magne Mahre's avatar
      WL#5154 Remove deprecated 4.1 features · 132b46e9
      Magne Mahre authored
      Several items said to be deprecated in the 4.1 manual
      have never been removed.  This worklog adds deprecation
      warnings when these items are used, and warns the user 
      that the items will be removed in MySQL 5.6.
      
      A couple of previously deprecation decision have been
      reversed (see single file comments)
      
      
      
      client/client_priv.h:
        Macro similar to the one in the server (mysql_priv.h)
        for printing a deprecation warning message
      client/mysql.cc:
        no-auto-rehash  will not be deprecated
        skip-line-numbers will not be deprecated
        skip-column-names will not be deprecated
        no-pager is deprecated
        set-variable is deprecated
        no-named-commands is deprecated
      client/mysqladmin.cc:
        set-variable is deprecated
      client/mysqlbinlog.cc:
        position is deprecated
      client/mysqldump.c:
        first-slave is deprecated
        no-set-names is deprecated
        set-variable is deprecated
      mysql-test/r/mysqlbinlog.result:
        Adding the [Warning] to the test case, just to show that the
        deprecation works.
        The test case will be changed in Celosia to use --start-position.
      mysys/my_getopt.c:
        set-variable (include -O) is deprecated
      scripts/mysqld_multi.sh:
        Warning for mysqld_multi
      sql/mysqld.cc:
        default-collation is deprecated
        log-bin-trust-routine-creators is deprecated
        set-variable is deprecated
        default-character-set is deprecated
        safe-show-database is deprecated
      sql/share/errmsg.txt:
        Added version number for sql_log_update deprecation message.
      132b46e9
  4. 20 Jan, 2010 1 commit
    • Alfranio Correia's avatar
      BUG#46364 MyISAM transbuffer problems (NTM problem) · 985c06d0
      Alfranio Correia authored
      It is well-known that due to concurrency issues, a slave can become
      inconsistent when a transaction contains updates to both transaction and
      non-transactional tables in statement and mixed modes.
      
      In a nutshell, the current code-base tries to preserve causality among the
      statements by writing non-transactional statements to the txn-cache which
      is flushed upon commit. However, modifications done to non-transactional
      tables on behalf of a transaction become immediately visible to other
      connections but may not immediately get into the binary log and therefore
      consistency may be broken.
      
      In general, it is impossible to automatically detect causality/dependency
      among statements by just analyzing the statements sent to the server. This
      happen because dependency may be hidden in the application code and it is
      necessary to know a priori all the statements processed in the context of
      a transaction such as in a procedure. Moreover, even for the few cases that
      we could automatically address in the server, the computation effort
      required could make the approach infeasible.
      
      So, in this patch we introduce the option
          - "--binlog-direct-non-transactional-updates" that can be used to bypass
          the current behavior in order to write directly to binary log statements
          that change non-transactional tables.
      
      mysql-test/extra/rpl_tests/rpl_mixing_engines.inc:
        Backported this from Celosia to improve the test cases related to the NTM issue.
      sql/log.cc:
        Checks the --binlog-direct-non-transactional-updates before choosing
        to either use the trxn-cache or not.
      sql/mysqld.cc:
        Introduces the option --binlog-direct-non-transactional-updates.
      sql/set_var.cc:
        Introduces the option --binlog-direct-non-transactional-updates.
      sql/sql_class.h:
        Introduces the option --binlog-direct-non-transactional-updates.
      985c06d0
  5. 17 Dec, 2009 1 commit
    • Satya B's avatar
      Fix for Bug#37408 - Compressed MyISAM files should not require/use mmap() · cf9966f8
      Satya B authored
                        
      When compressed myisam files are opened, they are always memory mapped
      sometimes causing memory swapping problems.
      
      When we mmap the myisam compressed tables of size greater than the memory 
      available, the kswapd0 process utilization is very high consuming 30-40% of 
      the cpu. This happens only with linux kernels older than 2.6.9
      
      With newer linux kernels, we don't have this problem of high cpu consumption
      and this option may not be required.
       
      The option 'myisam_mmap_size' is added to limit the amount of memory used for
      memory mapping of myisam files. This option is not dynamic.
      
      The default value on 32 bit system is 4294967295 bytes and on 64 bit system it
      is 18446744073709547520 bytes.
      
      Note: Testcase only tests the option variable. The actual bug has be to 
      tested manually.
      
      include/my_global.h:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        define SIZE_T_MAX
      include/myisam.h:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        declare 'myisam_mmap_size' and 'myisam_mmap_used' variables and the mutex
        THR_LOCK_myisam_mmap
      myisam/mi_packrec.c:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        add 'myisam_mmap_size' option which limits the memory available to mmap of 
        myisam files
      myisam/mi_static.c:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        declare 'myisam_mmap_size' and 'myisam_mmap_used' variables and the mutex
        THR_LOCK_myisam_mmap
      myisam/myisamdef.h:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        move MEMMAP_EXTRA_MARGIN to myisam.h so that it can be used in mysqld.cc
      mysql-test/r/variables.result:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        Testcase for BUG#37408 to test the myisam_mmap_size option
      mysql-test/t/variables.test:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        Testcase for BUG#37408 to test the myisam_mmap_size option
      mysys/my_thr_init.c:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        intialize the lock THR_LOCK_myisam_mmap
      sql/mysqld.cc:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        add the 'myisam_mmap_size' option
      sql/set_var.cc:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        add the 'myisam_mmap_size' to the SHOW VARIABLES list
      cf9966f8
  6. 29 Sep, 2009 1 commit
    • Ingo Struewing's avatar
      WL#4259 - Debug Sync Facility · 4d57b851
      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.
      
      
      .bzrignore:
        WL#4259 - Debug Sync Facility
        Added the symbolic link libmysqld/debug_sync.cc.
      CMakeLists.txt:
        WL#4259 - Debug Sync Facility
        Added definition for ENABLED_DEBUG_SYNC.
      configure.in:
        WL#4259 - Debug Sync Facility
        Added definition for ENABLED_DEBUG_SYNC.
      include/my_sys.h:
        WL#4259 - Debug Sync Facility
        Added definition for the DEBUG_SYNC_C macro.
      libmysqld/CMakeLists.txt:
        WL#4259 - Debug Sync Facility
        Added sql/debug_sync.cc.
      libmysqld/Makefile.am:
        WL#4259 - Debug Sync Facility
        Added sql/debug_sync.cc.
      mysql-test/include/have_debug_sync.inc:
        WL#4259 - Debug Sync Facility
        New include file.
      mysql-test/mysql-test-run.pl:
        WL#4259 - Debug Sync Facility
        Added option --debug_sync_timeout.
      mysql-test/r/debug_sync.result:
        WL#4259 - Debug Sync Facility
        New test result.
      mysql-test/r/have_debug_sync.require:
        WL#4259 - Debug Sync Facility
        New require file.
      mysql-test/t/debug_sync.test:
        WL#4259 - Debug Sync Facility
        New test file.
      mysys/my_static.c:
        WL#4259 - Debug Sync Facility
        Added definition for debug_sync_C_callback_ptr.
      mysys/thr_lock.c:
        WL#4259 - Debug Sync Facility
        Added sync point "wait_for_lock".
      sql/CMakeLists.txt:
        WL#4259 - Debug Sync Facility
        Added debug_sync.cc and debug_sync.h.
      sql/Makefile.am:
        WL#4259 - Debug Sync Facility
        Added debug_sync.cc and debug_sync.h.
      sql/debug_sync.cc:
        WL#4259 - Debug Sync Facility
        New source file.
      sql/debug_sync.h:
        WL#4259 - Debug Sync Facility
        New header file.
      sql/mysqld.cc:
        WL#4259 - Debug Sync Facility
        Added opt_debug_sync_timeout.
        Added calls to debug_sync_init() and debug_sync_end().
        Fixed a purecov comment (unrelated).
      sql/set_var.cc:
        WL#4259 - Debug Sync Facility
        Added server variable "debug_sync".
      sql/set_var.h:
        WL#4259 - Debug Sync Facility
        Added declaration for server variable "debug_sync".
      sql/share/errmsg.txt:
        WL#4259 - Debug Sync Facility
        Added error messages ER_DEBUG_SYNC_TIMEOUT and ER_DEBUG_SYNC_HIT_LIMIT.
      sql/sql_base.cc:
        WL#4259 - Debug Sync Facility
        Added sync points "after_flush_unlock" and "before_lock_tables_takes_lock".
      sql/sql_class.cc:
        WL#4259 - Debug Sync Facility
        Added initialization for debug_sync_control to THD::THD.
        Added calls to debug_sync_init_thread() and debug_sync_end_thread().
      sql/sql_class.h:
        WL#4259 - Debug Sync Facility
        Added element debug_sync_control to THD.
      storage/myisam/myisamchk.c:
        Fixed a typo in an error message string (unrelated).
      4d57b851
  7. 23 Sep, 2009 1 commit
  8. 22 Sep, 2009 1 commit
    • Davi Arnaut's avatar
      Bug#45498: Socket variable not available on Windows · 83bc7980
      Davi Arnaut authored
      The "socket" variable is not available on Windows even though
      the --socket option can be used to specify the pipe name for
      local connections that use a named pipe.
      
      The solution is to ensure that the variable is always defined.
      
      
      mysql-test/r/windows.result:
        Add test case result for Bug#45498
      mysql-test/t/windows.test:
        Add test case for Bug#45498
      sql/set_var.cc:
        socket variable must always be present.
      83bc7980
  9. 10 Sep, 2009 1 commit
  10. 16 Jul, 2009 1 commit
  11. 19 Jun, 2009 1 commit
    • Staale Smedseng's avatar
      Bug #32223 SETting max_allowed_packet variable · 37d2019d
      Staale Smedseng authored
            
      Inconsistent behavior of session variable max_allowed_packet 
      (and net_buffer_length); only assignment to the global variable 
      has any effect, without this being obvious to the user.
            
      The patch for Bug#22891 is backported to 5.0, making the two
      session variables read-only. As this is a backport to GA 
      software, the error used when trying to assign to the read-
      only variable is ER_UNKNOWN_ERROR. The error message is the 
      same as in 5.1+.
      
      mysql-test/t/variables.test:
        Tests are changed to account for the new semantics, and assignment to the read-only variables is added to test 
        the emission of the correct error message.
      sql/set_var.cc:
        Both max_allowed_packet and net_buffer_length are changed 
        to be of type sys_var_thd_ulong_session_readonly. ER_UNKNOWN_ERROR is used to indicate an attempt to assign 
        to an instance of a read-only variable.
      sql/set_var.h:
        Class sys_var_thd_ulong_session_readonly is added.
      37d2019d
  12. 15 May, 2009 1 commit
    • Satya B's avatar
      Fix for BUG#10206 - InnoDB: Transaction requiring Max_BinLog_Cache_size > 4GB · 1e37c919
      Satya B authored
                          always rollsback.
      
      The global variable max_binlog_cache_size cannot be set more than 4GB on
      32 bit systems, limiting transactions of all storage engines to 4G of changes.
      
      The problem is max_binlog_cache_size is declared as ulong which is 4 bytes
      on 32 bit and 8 bytes on 64 bit machines.
      
      Fixed by using ulonglong for max_binlog_cache_size which is 8bytes on 32 
      and 64 bit machines.The range for max_binlog_cache_size on 32 bit and 64 bit
      systems is 4096-18446744073709547520 bytes.
      
      mysql-test/r/variables.result:
        Result file for BUG#10206
      mysql-test/t/variables.test:
        Testcase for BUG#10206
      sql/mysql_priv.h:
        change the extern declaration of max_binlog_cache_size to ulonglong
      sql/mysqld.cc:
        change the declaration of max_binlog_cache_size to ulonglong and the option is fixed to extend the range of max_binlog_cache_size
      sql/set_var.cc:
        change the variable declaration of max_binlog_cache_size to ulonglong
      1e37c919
  13. 11 May, 2009 1 commit
  14. 05 May, 2009 1 commit
  15. 30 Apr, 2009 1 commit
  16. 24 Apr, 2009 1 commit
  17. 16 Mar, 2009 1 commit
  18. 14 Mar, 2009 1 commit
  19. 11 Mar, 2009 2 commits
  20. 05 Mar, 2009 2 commits
    • Tatiana A. Nurnberg's avatar
      Bug#40657: assertion with out of range variables and traditional sql_mode · 13328b0f
      Tatiana A. Nurnberg authored
      Some changes that make things more elegant in 6.0,
      backported so the code is mostly the same in 5.1,
      for easier maintainence.
      
      sql/set_var.cc:
        Backporting some changes to 5.1 so the code is
        mostly the same in both versions. Less to learn!
      13328b0f
    • Guangbao Ni's avatar
      BUG#41980 SBL, INSERT .. SELECT .. LIMIT = ERROR, even when @@SQL_LOG_BIN is 0 ! · 4f0f021c
      Guangbao Ni authored
            
      When binlog_format is STATEMENT and the statement is unsafe before,
      the unsafe warning/error message was issued without checking
      whether the SQL_LOG_BIN was turned on or not.
            
      Fixed with adding a sql_log_bin_toplevel flag in THD to check
      whether SQL_LOG_BIN is ON in current session whatever the current is in sp or not.
      
      
      mysql-test/suite/binlog/r/binlog_unsafe.result:
        Test case result for unsafe warning/error message
      mysql-test/suite/binlog/t/binlog_unsafe.test:
        Test case for unsafe message warning/error
      sql/set_var.cc:
        Adding a function set_option_log_bin_bit() which specailly handles to
        the change of SQL_LOG_BIN bit in order to set sql_log_bin_toplevel
        according to SQL_LOG_BIN current value at the same time.
      sql/sql_class.cc:
        Initialize the flag sql_log_bin_toplevel in THD::init(),
        and add the condition to check whether unsafe ror message was issued.
      sql/sql_class.h:
        Add a sql_log_bin_toplevel flag in THD to indicate whether the toplevel SQL_LOG_BIN is
      4f0f021c
  21. 27 Feb, 2009 1 commit
    • Tatiana A. Nurnberg's avatar
      Bug#40657: assertion with out of range variables and traditional sql_mode · 71913e35
      Tatiana A. Nurnberg authored
      In STRICT mode, out-of-bounds values caused an error message
      to be queued (rather than just a warning), without any further
      error-like processing happening. (The error is queued during
      update, at which time it's too late. For it to be processed
      properly, it would need to be queued during check-stage.)
      The assertion rightfully complains that we're trying to send
      an OK while having an error queued.
      
      Changeset breaks a lot of tests out into check-stage. This also
      allows us to send more correct warnings/error messages.
      
      sql/set_var.cc:
        cleanup: fold get_unsigned() and fix_unsigned() into one,
        as well as all the semi-common code from the ::check
        functions.
      71913e35
  22. 24 Feb, 2009 1 commit
    • Tatiana A. Nurnberg's avatar
      Bug#40657: assertion with out of range variables and traditional sql_mode · 7099d7bc
      Tatiana A. Nurnberg authored
      In STRICT mode, out-of-bounds values caused an error message
      to be queued (rather than just a warning), without any further
      error-like processing happening. (The error is queued during
      update, at which time it's too late. For it to be processed
      properly, it would need to be queued during check-stage.)
      The assertion rightfully complains that we're trying to send
      an OK while having an error queued.
      
      Changeset breaks a lot of tests out into check-stage. This also
      allows us to send more correct warnings/error messages.
      
      
      sql/set_var.cc:
        cleanup: fold get_unsigned() and fix_unsigned() into one,
        as well as all the semi-common code from the ::check
        functions.
      7099d7bc
  23. 23 Feb, 2009 1 commit
    • Sergey Petrunia's avatar
      - Backport @@optimizer_switch support from 6.0 · cb6581d8
      Sergey Petrunia authored
      - Add support for setting it as a server commandline argument
      - Add support for those switches:
        = no_index_merge
        = no_index_merge_union
        = no_index_merge_sort_union
        = no_index_merge_intersection
      
      mysql-test/r/index_merge_myisam.result:
        Testcases for index_merge related @@optimizer_switch flags.
      mysql-test/t/index_merge_myisam.test:
        Testcases for index_merge related @@optimizer_switch flags.
      sql/set_var.cc:
        - Backport @@optimizer_switch support from 6.0
        - Add support for setting it as a server commandline argument
      sql/sql_class.h:
        - Backport @@optimizer_switch support from 6.0
      sql/sql_select.h:
        - Backport @@optimizer_switch support from 6.0
      cb6581d8
  24. 16 Feb, 2009 1 commit
  25. 10 Feb, 2009 1 commit
  26. 09 Feb, 2009 1 commit
    • Sergey Glukhov's avatar
      Bug#42610 Dynamic plugin broken in 5.1.31 · 4d0557a2
      Sergey Glukhov authored
      added ignore-builtin-innodb option which disabled
      initialization of builtin InnoDB plugin
      
      mysql-test/r/innodb_ignore_builtin.result:
        test case
      mysql-test/t/innodb_ignore_builtin-master.opt:
        test case
      mysql-test/t/innodb_ignore_builtin.test:
        test case
      sql/mysql_priv.h:
        added ignore-builtin-innodb option which disabled
        initialization of builtin InnoDB plugin
      sql/mysqld.cc:
        added ignore-builtin-innodb option which disabled
        initialization of builtin InnoDB plugin
      sql/set_var.cc:
        added ignore-builtin-innodb option which disabled
        initialization of builtin InnoDB plugin
      sql/sql_plugin.cc:
        added ignore-builtin-innodb option which disabled
        initialization of builtin InnoDB plugin
      4d0557a2
  27. 03 Feb, 2009 1 commit
    • Tatiana A. Nurnberg's avatar
      Bug#40657: assertion with out of range variables and traditional sql_mode · d1fb6bbc
      Tatiana A. Nurnberg authored
      In STRICT mode, out-of-bounds values caused an error message
      to be queued (rather than just a warning), without any further
      error-like processing happening. (The error is queued during
      update, at which time it's too late. For it to be processed
      properly, it would need to be queued during check-stage.)
      The assertion rightfully complains that we're trying to send
      an OK while having an error queued.
      
      Changeset breaks a lot of tests out into check-stage. This also
      allows us to send more correct warnings/error messages.
      
      mysql-test/r/auto_increment_increment_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/auto_increment_increment_func.result:
        update test results reflecting more correct warnings
      mysql-test/r/auto_increment_offset_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/auto_increment_offset_func.result:
        update test results reflecting more correct warnings
      mysql-test/r/concurrent_insert_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/connect_timeout_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/default_week_format_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/delayed_insert_timeout_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/div_precision_increment_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/expire_logs_days_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/group_concat_max_len_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/interactive_timeout_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/max_allowed_packet_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/max_binlog_size_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/max_connections_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/max_delayed_threads_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/max_error_count_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/max_insert_delayed_threads_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/max_length_for_sort_data_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/max_prepared_stmt_count_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/max_relay_log_size_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/max_sort_length_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/max_sp_recursion_depth_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/myisam_data_pointer_size_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/net_buffer_length_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/net_read_timeout_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/net_write_timeout_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/optimizer_prune_level_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/optimizer_search_depth_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/preload_buffer_size_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/ps.result:
        update test results reflecting more correct warnings
      mysql-test/r/read_buffer_size_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/read_rnd_buffer_size_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/slave_net_timeout_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/slow_launch_time_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/table_definition_cache_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/table_lock_wait_timeout_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/table_open_cache_basic.result:
        update test results reflecting more correct warnings
      mysql-test/r/variables.result:
        add test case that throws error (rather than warning)
        in the middle of trying to set a system-variable.
      mysql-test/t/variables.test:
        add test case that throws error (rather than warning)
        in the middle of trying to set a system-variable.
      sql/set_var.cc:
        Add comments.
        Prevent double-warnings.
        Through warnings for negative values given to unsigned
        system-variables.
        Process errors and warnings at check() stage rather than
        update() stage, since we may only issue warnings at the latter.
      d1fb6bbc
  28. 08 Jan, 2009 1 commit
    • Timothy Smith's avatar
      Fix a few problems after latest bunch of InnoDB snapshot changes: · 88cd7a98
      Timothy Smith authored
      The binlog_innodb test was sensitive to what tests ran before it.  Now run
      FLUSH STATUS before performing operations that need to be checked.
      
      sys_var_thd_ulong::update() was improperly casting an option value from
      ulonglong to ulong before comparing it to the max allowed value.  On systems
      where ulong and ulonglong are of different size, this caused values greater
      than ULONG_MAX to wrap around (not be truncated to ULONG_MAX, which appears to
      have been the intention of the original coder), and caused some checks to work
      incorrectly.  This wasn't generally visible to the user, because later checks
      would prevent the wrapped-around value from being used.  But it caused warning
      messages to differ between 32- and 64-bit platforms.  Fix is to just remove the
      cast.  Also added a DBUG_ASSERT to ensure that the value really is capped
      properly before finally stuffing it into the ulong.
      88cd7a98
  29. 24 Dec, 2008 1 commit
    • Sergey Glukhov's avatar
      Bug#41456 SET PASSWORD hates CURRENT_USER() · 7103f4c9
      Sergey Glukhov authored
      init user->user struct with 
      thd->security_ctx->priv_user context
      if user->user is not initializied
      
      mysql-test/r/grant.result:
        test result
      mysql-test/t/grant.test:
        test case
      sql/set_var.cc:
        init user->user struct with 
        thd->security_ctx->priv_user context
        if user->user is not initializied
      7103f4c9
  30. 28 Nov, 2008 1 commit
    • Georgi Kodinov's avatar
      Bug #37339: SHOW VARIABLES not working properly with multi-byte datadir · 8e688a7a
      Georgi Kodinov authored
            
      The SHOW VARIABLES LIKE .../SELECT @@/SELECT ... FROM INFORMATION_SCHEMA.VARIABLES
      were assuming that all the system variables are in system charset (UTF-8).
      However the variables that are settable through command line will have a different
      character set (character_set_filesystem).
      Fixed the server to remember the correct character set of basedir, datadir, tmpdir,
      ssl, plugin_dir, slave_load_tmpdir, innodb variables; init_connect and init_slave 
      variables and use it when processing data.
      
      mysql-test/r/ctype_filesystem.result:
        Bug #37339: test case (should be in utf-8)
      mysql-test/t/ctype_filesystem-master.opt:
        Bug #37339: test case (should be in ISO-8859-1)
      mysql-test/t/ctype_filesystem.test:
        Bug #37339: test case
      sql/mysqld.cc:
        Bug #37339: remember the correct character set for init_slave and init_connect
      sql/set_var.cc:
        Bug #37339: 
          - remember the character set of the relevant variables
          - implement storing and using the correct 
            character set
      sql/set_var.h:
        Bug #37339: implement storing and using the correct 
        character set
      sql/sql_show.cc:
        Bug #37339: implement storing and using the correct 
        character set
      8e688a7a
  31. 21 Nov, 2008 1 commit
    • Ingo Struewing's avatar
      Bug#28234 - global/session scope - documentation vs implementation · f92c5731
      Ingo Struewing authored
      Several system variables did not behave like system variables should do.
      When trying to SET them or use them in SELECT, they were reported as
      "unknown system variable". But they appeared in SHOW VARIABLES.
      
      This has been fixed by removing the "fixed_vars" array of variables
      and integrating the variables into the normal system variables chain.
      All of these variables do now behave as read-only global-only
      variables. Trying to SET them tells they are read-only, trying to
      SELECT the session value tells they are global only. Selecting the
      global value works. It delivers the same value as SHOW VARIABLES.
      
      
      mysql-test/r/variables-notembedded.result:
        Bug#28234 - global/session scope - documentation vs implementation
        New test result.
      mysql-test/r/variables.result:
        Bug#28234 - global/session scope - documentation vs implementation
        New test result.
      mysql-test/t/variables-notembedded.test:
        Bug#28234 - global/session scope - documentation vs implementation
        Added a test for each moved variable that is not present in an
        embedded server.
      mysql-test/t/variables.test:
        Bug#28234 - global/session scope - documentation vs implementation
        Added a test for each moved variable that is also present in an
        embedded server.
      sql/item_func.cc:
        Bug#28234 - global/session scope - documentation vs implementation
        Added SHOW_BOOL to some Item_func_get_system_var methods.
      sql/set_var.cc:
        Bug#28234 - global/session scope - documentation vs implementation
        Moved all variables from the "fixed_vars" array into the normal
        system variables chain by using the new variable class sys_var_const.
        Removed the fixed_show_vars array and its initialization in
        enumerate_sys_vars().
        Removed mysql_append_static_vars(), which added fixed_vars arrays
        to the fixed_show_vars array.
      sql/set_var.h:
        Bug#28234 - global/session scope - documentation vs implementation
        Added the new system variable class sys_var_const.
        Removed declaration of mysql_append_static_vars().
      sql/slave.cc:
        Bug#28234 - global/session scope - documentation vs implementation
        Moved the definition of show_slave_skip_errors() from sql_repl.cc
        to here and renamed it to print_slave_skip_errors().
        Changed print_slave_skip_errors() to create a static buffer with
        a printable version of the error numbers set.
        Added a call of print_slave_skip_errors() to init_slave_skip_errors().
      sql/slave.h:
        Bug#28234 - global/session scope - documentation vs implementation
        Added declaration of slave_skip_error_names.
      sql/sql_repl.cc:
        Bug#28234 - global/session scope - documentation vs implementation
        Moved all variables from the "fixed_vars" array into the normal
        system variables chain by using the new variable class sys_var_const.
        Moved the definition of show_slave_skip_errors() to slave.cc and
        modified it to compute the string once at server initialization only.
        Removed the call to mysql_append_static_vars().
      f92c5731
  32. 20 Nov, 2008 1 commit
    • Staale Smedseng's avatar
      A fix for Bug#22891 "session level max_allowed_packet can be · e5ae4e23
      Staale Smedseng authored
      set but is ignored".
                                        
      This patch makes @@session.max_allowed_packed and
      @@session.net_buffer_length read-only as suggested in the bug
      report. The user will have to use SET GLOBAL (and reconnect)
      to alter the session values of these variables.
                                  
      The error string ER_VARIABLE_IS_READONLY is introduced.
                                  
      Tests are modified accordingly.
      
      
      sql/set_var.cc:
        The class sys_var_thd_ulong_session_readonly is introduced as
        a specialization of sys_var_thd_ulong implementing a read-only
        session variable. The class overrides check() and
        check_default() to achieve the read-only property for the
        session part of the variable.
      sql/set_var.h:
        The class sys_var_thd_ulong_session_readonly is introduced as
        a specialization of sys_var_thd_ulong implementing a read-only
        session variable. The class overrides check() and
        check_default() to achieve the read-only property for the
        session part of the variable.
      sql/share/errmsg.txt:
        New error ER_VARIABLE_IS_READONLY.
      e5ae4e23
  33. 10 Nov, 2008 1 commit
  34. 23 Oct, 2008 1 commit
  35. 08 Oct, 2008 1 commit
    • Georgi Kodinov's avatar
      Bug #32124: crash if prepared statements refer to variables in the where clause · 6d54b044
      Georgi Kodinov authored
                        
      The code to get read the value of a system variable was extracting its value 
      on PREPARE stage and was substituting the value (as a constant) into the parse tree.
      Note that this must be a reversible transformation, i.e. it must be reversed before
      each re-execution.
      Unfortunately this cannot be reliably done using the current code, because there are
      other non-reversible source tree transformations that can interfere with this
      reversible transformation.
      Fixed by not resolving the value at PREPARE, but at EXECUTE (as the rest of the 
      functions operate). Added a cache of the value (so that it's constant throughout
      the execution of the query). Note that the cache also caches NULL values.
      Updated an obsolete related test suite (variables-big) and the code to test the 
      result type of system variables (as per bug 74).
      
      mysql-test/extra/rpl_tests/rpl_insert_id.test:
        Bug #32124: removed ambiguous testcase
      mysql-test/r/innodb_data_home_dir_basic.result:
        Bug #32124: fixed wrong test case
      mysql-test/r/innodb_flush_method_basic.result:
        Bug #32124: fixed wrong test case
      mysql-test/r/ps_11bugs.result:
        Bug #32124: test case
      mysql-test/r/ssl_capath_basic.result:
        Bug #32124: fixed wrong test case
      mysql-test/r/ssl_cipher_basic.result:
        Bug #32124: fixed wrong test case
      mysql-test/r/variables.result:
        Bug #32124: system vars are shown as such in EXPLAIN EXTENDED, not as constants.
      mysql-test/suite/rpl/r/rpl_insert_id.result:
        Bug #32124: removed ambiguous testcase
      mysql-test/t/ps_11bugs.test:
        Bug #32124: test case
      sql/item.cc:
        Bug #32124: placed the code to convert string to longlong or double 
        to a function (so that it can be reused)
      sql/item.h:
        Bug #32124: placed the code to convert string to longlong or double 
        to a function (so that it can be reused)
      sql/item_func.cc:
        Bug #32124: moved the evaluation of system variables at runtime (val_xxx).
      sql/item_func.h:
        Bug #32124: moved the evaluation of system variables at runtime (val_xxx).
      sql/set_var.cc:
        Bug #32124: removed the code that calculated the system variable's value 
        at PREPARE
      sql/set_var.h:
        Bug #32124: removed the code that calculated the system variable's value 
        at PREPARE
      tests/mysql_client_test.c:
        Bug #32124 : removed the reading of the system variable, because its max
        length is depended on the system charset and client charset and can't be
        easily calculated.
      6d54b044
  36. 06 Oct, 2008 1 commit
    • Tatiana A. Nurnberg's avatar
      WL#4403 deprecate @log and @slow_log_queries variables · 07953513
      Tatiana A. Nurnberg authored
      Adds --general_log_file, --slow_query_log_file command-
      line options to match system variables of the same names.
      
      Deprecates --log, --log-slow-queries command-line options
      and log, log_slow_queries system-variables for v7.0; they
      are superseded by general_log/general_log_file and
      slow_query_log/slow_query_log_file, respectively.
      
      mysql-test/r/log_basic.result:
        Change deprecated system variable "log" to
        general log.
      mysql-test/r/log_state.result:
        Show that all log-related server variables that
        should throw deprecation warnings do, and the
        others don't.
      mysql-test/t/log_basic.test:
        Change deprecated system variable "log" to
        general log.
      mysql-test/t/log_state.test:
        Show that all log-related server variables that
        should throw deprecation warnings do, and the
        others don't.
      sql/mysqld.cc:
        Add command-line options --general_log_file and
        --slow_query_log_file to match server options of
        the same name.
        
        Deprecated --log and --log-slow-queries command-line
        options; they are superseded by --general-log/
        --general-log-file and --slow-query-log/--slow-query-log-file,
        respectively
      sql/set_var.cc:
        Deprecate system-variables log in favour of general_log,
        log_slow_queries in favour of slow_query_log for 7.0,
        both for value- and DEFAULT-setting.
      07953513
  37. 09 Sep, 2008 1 commit
    • Mats Kindahl's avatar
      Bug #39106: · 589355f0
      Mats Kindahl authored
      SUPER is not required to change binlog format for session
      
      A user without SUPER privileges can change the value of the
      session variable BINLOG_FORMAT, causing problems for a DBA.
      
      This changeset requires a user to have SUPER privileges to
      change the value of the session variable BINLOG_FORMAT, and
      not only the global variable BINLOG_FORMAT.
      
      
      mysql-test/suite/binlog/t/binlog_grant.test:
        Adding test to test grants needed for SQL_LOG_BIN and BINLOG_FORMAT.
      sql/set_var.cc:
        Adding code to check that user has SUPER permission
        needed to change the value of BINLOG_FORMAT.
      sql/set_var.h:
        Adding function sys_var_thd_binlog_format::check()
      589355f0
  38. 25 Aug, 2008 1 commit
    • Sergey Glukhov's avatar
      Bug#37428 Potential security issue with UDFs - linux shellcode execution. · c546559a
      Sergey Glukhov authored
      plugin_dir option backported from 5.1
      
      mysql-test/r/udf.result:
        result fix
      sql/mysql_priv.h:
        opt_plugin_dir and opt_plugin_dir_ptr declared.
      sql/mysqld.cc:
        'plugin_dir' option added
      sql/set_var.cc:
        'plugin_dir' option added.
      sql/sql_udf.cc:
        opt_plugin_dir added to the udf->dl path. Warn if it's not specified.
      sql/unireg.h:
        PLUGINDIR defined.
      c546559a