1. 27 Mar, 2008 1 commit
    • unknown's avatar
      Bug #35206: select query result different if the key is indexed or not · 77fbeeab
      unknown authored
      The code for executing indexed ORDER BY was not setting all the 
      internal fields correctly when selecting to execute ORDER BY over
      and index.
      Fixed by change the access method to one that will use the 
      quick indexed access if one is selected while selecting indexed
      ORDER BY.
      
      
      mysql-test/r/order_by.result:
        Bug #35206: test case
      mysql-test/t/order_by.test:
        Bug #35206: test case
      sql/sql_select.cc:
        Bug #35206: Change the access method when selecting a 
        quick indexed access.
      77fbeeab
  2. 25 Mar, 2008 2 commits
    • unknown's avatar
      Bug#35272: @@global.key_buffer_size = 4294967295 let the server crash · c3641cd5
      unknown authored
      When trying to get the requested amount of memory for the keybuffer,
      the out of memory could be signaled if one of the tentative allocations
      fail. Later the server would crash (debug assert) when trying to send
      a ok packet with a error set.
      
      The solution is only to signal the error if all tentative allocations
      for the keybuffer fail.
      
      
      mysql-test/r/key_cache.result:
        Add test case result for Bug#35272
      mysql-test/t/key_cache.test:
        Add test case for Bug#35272
      mysys/mf_keycache.c:
        Don't set error on my_large_malloc if allocation fails.
        Set the error if all tentative allocations failed.
      c3641cd5
    • unknown's avatar
      Fix for Bug #27944 Filtering THD::client capabilities · 2d5a444d
      unknown authored
      The server used to trust blindly information from the client about
      its capabilities. During the connection handshake the server sends
      information about what it supports and then the client sends back a
      set of capabilities which cover all of the server's or less.
      Before this changeset the server didn't check whether the flags sent
      by the client were valid for the server. For example, if the server
      doesn't support compressed protocol but the client does and sends that
      bit turned on, the server didn't check it. The change make the server code
      less error prone to problems related to the value of THD::client_capabilities.
      
      Clearly there is no vulnerability being fixed but this is a maintainenance
      fix to prevent misusage in the future.
      
      
      include/mysql_com.h:
        List all CLIENT flags in a common defition. Add also a definition
        which excludes flags, which are optoinal.
      sql/sql_connect.cc:
        Renamed client_flags to server_capabilities to reflect what
        the server supports. Only allow from the client the flags the
        server supports.
      2d5a444d
  3. 14 Mar, 2008 5 commits
    • unknown's avatar
      Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl · 92a09cf9
      unknown authored
      into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
      
      
      sql/slave.cc:
        Auto merged
      sql/sql_repl.h:
        Auto merged
      92a09cf9
    • unknown's avatar
      Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.1 · 774d21cf
      unknown authored
      into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
      
      
      mysql-test/include/commit.inc:
        Auto merged
      mysql-test/lib/mtr_report.pl:
        Auto merged
      mysql-test/r/commit_1innodb.result:
        Auto merged
      mysql-test/r/variables.result:
        Auto merged
      mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result:
        Auto merged
      mysql-test/t/variables.test:
        Auto merged
      sql/handler.cc:
        Auto merged
      sql/item_func.cc:
        Auto merged
      sql/item_func.h:
        Auto merged
      sql/log.cc:
        Auto merged
      sql/rpl_rli.cc:
        Auto merged
      sql/set_var.cc:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      774d21cf
    • unknown's avatar
      Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.0 · 4097ee7f
      unknown authored
      into  dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl
      
      
      4097ee7f
    • unknown's avatar
      Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.1-new-rpl · 0b7d39fd
      unknown authored
      into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
      
      
      mysql-test/suite/binlog/r/binlog_unsafe.result:
        Auto merged
      mysql-test/suite/binlog/t/binlog_unsafe.test:
        Auto merged
      0b7d39fd
    • unknown's avatar
      Post-merge fixes. · 45978147
      unknown authored
      
      mysql-test/extra/rpl_tests/rpl_loaddata.test:
        Removing SHOW MASTER STATUS that does not seem to make sense.
      mysql-test/extra/rpl_tests/rpl_log.test:
        Correcting test case to sync slave with master.
      mysql-test/suite/binlog/r/binlog_unsafe.result:
        Result change.
      mysql-test/suite/binlog/t/binlog_unsafe.test:
        Removing unsafe variable from list of safe variables.
      mysql-test/suite/rpl/r/rpl_loaddata.result:
        Result change.
      mysql-test/suite/rpl/r/rpl_skip_error.result:
        Result change.
      mysql-test/suite/rpl/t/rpl_skip_error.test:
        Correcting bad manual+automatic merge. Test is now only relevant for statement-
        based replication.
      sql/rpl_rli.cc:
        Correcting automerge undoing previous change of return value.
        Relay_log_info::wait_for_pos() should return -2 when not initialized to work
        correctly.
      45978147
  4. 13 Mar, 2008 2 commits
  5. 12 Mar, 2008 11 commits
    • unknown's avatar
      3155a88d
    • unknown's avatar
      Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl · 62dee6f7
      unknown authored
      into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
      
      
      mysql-test/suite/rpl/r/rpl_loaddata.result:
        Auto merged
      mysql-test/suite/rpl/r/rpl_master_pos_wait.result:
        Auto merged
      mysql-test/suite/rpl/r/rpl_slave_status.result:
        Auto merged
      mysql-test/suite/rpl/t/rpl_master_pos_wait.test:
        Auto merged
      mysql-test/suite/rpl/t/rpl_temporary.test:
        Auto merged
      mysql-test/suite/rpl/t/rpl_loaddata.test:
        Manual merge. The rpl_loaddata.test file was moved on 5.1 by editing
        the file to include the file at the new location. This causes conflicts
        when merging, since the changes will not propagate to the moved file.
      sql/slave.cc:
        Manual merge.
      mysql-test/suite/rpl/t/rpl_skip_error.test:
        Manual merge.
      mysql-test/suite/rpl/t/rpl_slave_status.test:
        Manual merge.
      62dee6f7
    • unknown's avatar
      Merge ssh://bk-internal.mysql.com//home/bk/mysql-5.1-opt · 6c2f9bf5
      unknown authored
      into  kaamos.(none):/data/src/opt/mysql-5.1-opt
      
      
      sql/sql_show.cc:
        Auto merged
      sql/table.h:
        Auto merged
      6c2f9bf5
    • unknown's avatar
      Merge kaamos.(none):/data/src/opt/mysql-5.0-opt · 9fcf16a0
      unknown authored
      into  kaamos.(none):/data/src/opt/mysql-5.1-opt
      
      
      tests/mysql_client_test.c:
        Manual merge.
      9fcf16a0
    • unknown's avatar
      Post-merge fix. · fe846378
      unknown authored
      fe846378
    • unknown's avatar
    • unknown's avatar
      Merge kaamos.(none):/data/src/opt/mysql-5.0-opt · 69d49bca
      unknown authored
      into  kaamos.(none):/data/src/opt/mysql-5.1-opt
      
      
      client/mysql.cc:
        Auto merged
      mysql-test/r/view.result:
        Auto merged
      mysql-test/t/view.test:
        Auto merged
      scripts/mysql_config.sh:
        Auto merged
      sql/filesort.cc:
        Auto merged
      sql/item.cc:
        Auto merged
      sql/item.h:
        Auto merged
      sql/item_func.cc:
        Auto merged
      sql/mysqld.cc:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      tests/mysql_client_test.c:
        Auto merged
      69d49bca
    • unknown's avatar
      Merge kaamos.(none):/data/src/mysql-5.1 · d6df18dd
      unknown authored
      into  kaamos.(none):/data/src/opt/mysql-5.1-opt
      
      
      client/mysql.cc:
        Auto merged
      client/mysqldump.c:
        Auto merged
      configure.in:
        Auto merged
      include/my_global.h:
        Auto merged
      libmysql/libmysql.c:
        Auto merged
      libmysqld/lib_sql.cc:
        Auto merged
      mysql-test/include/mix1.inc:
        Auto merged
      mysql-test/r/create.result:
        Auto merged
      mysql-test/r/func_str.result:
        Auto merged
      mysql-test/r/innodb.result:
        Auto merged
      mysql-test/r/innodb_mysql.result:
        Auto merged
      mysql-test/r/select.result:
        Auto merged
      mysql-test/r/subselect.result:
        Auto merged
      mysql-test/t/create.test:
        Auto merged
      mysql-test/t/disabled.def:
        Auto merged
      sql/filesort.cc:
        Auto merged
      sql/handler.cc:
        Auto merged
      sql/item.cc:
        Auto merged
      sql/item.h:
        Auto merged
      sql/item_cmpfunc.cc:
        Auto merged
      sql/item_func.cc:
        Auto merged
      sql/item_func.h:
        Auto merged
      sql/item_sum.cc:
        Auto merged
      sql/log.cc:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/mysqld.cc:
        Auto merged
      sql/set_var.cc:
        Auto merged
      sql/sp.cc:
        Auto merged
      sql/sql_acl.cc:
        Auto merged
      sql/sql_base.cc:
        Auto merged
      sql/sql_insert.cc:
        Auto merged
      sql/sql_plugin.cc:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      storage/ndb/src/kernel/blocks/backup/Backup.hpp:
        Auto merged
      tests/mysql_client_test.c:
        Auto merged
      mysql-test/r/func_time.result:
        Manual merge.
      mysql-test/r/view.result:
        Manual merge.
      mysql-test/t/view.test:
        Manual merge.
      scripts/mysql_config.sh:
        Manual merge.
      sql-common/client.c:
        Manual merge.
      sql/sql_parse.cc:
        Manual merge.
      d6df18dd
    • unknown's avatar
      Merge kaamos.(none):/data/src/opt/mysql-4.1-opt · 66507ba8
      unknown authored
      into  kaamos.(none):/data/src/opt/mysql-5.0-opt
      
      
      66507ba8
    • unknown's avatar
      Merge kaamos.(none):/data/src/mysql-5.0 · 09f8a4af
      unknown authored
      into  kaamos.(none):/data/src/opt/mysql-5.0-opt
      
      
      client/mysql.cc:
        Auto merged
      sql/filesort.cc:
        Auto merged
      sql/item.cc:
        Auto merged
      sql/item.h:
        Auto merged
      sql/item_func.cc:
        Auto merged
      sql/mysqld.cc:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      tests/mysql_client_test.c:
        Auto merged
      mysql-test/r/view.result:
        Manual merge.
      mysql-test/t/view.test:
        Manual merge.
      scripts/mysql_config.sh:
        Manual merge.
      09f8a4af
    • unknown's avatar
      Merge kaamos.(none):/data/src/mysql-4.1 · 6dfe411c
      unknown authored
      into  kaamos.(none):/data/src/opt/mysql-4.1-opt
      
      
      6dfe411c
  6. 11 Mar, 2008 5 commits
    • unknown's avatar
      Removed pushbuild errors. · 40515ad7
      unknown authored
      Problem: rpl_variables_stm.test used a character set and a collation which
      are not included on all platforms.
      Fix: replace the character set and collation by ones that are included on
      all platforms. (rpl_variables_stm does not rely on which character set is
      used, the only important aspect is the fact that it changes.)
      
      
      mysql-test/suite/rpl/r/rpl_variables_stm.result:
        Updated result file.
      mysql-test/suite/rpl/t/rpl_variables_stm.test:
        Changed test to get rid of pushbuild errors.
      40515ad7
    • unknown's avatar
      BUG#31024: STOP SLAVE does not stop attempted connect()s · 1836625f
      unknown authored
      Problem: if the IO slave thread is attempting to connect,
      STOP SLAVE waits for the attempt to finish. 
      It may take a long time.
      Fix: don't wait, stop the slave immediately.
      
      
      sql/slave.cc:
        Send a SIGALRM signal to the slave thread when stopping it (using
        pthread_kill()). This breaks current socket(), connect(), poll() etc.
        calls, and makes the subsequent thd->awake() call effective.
        
        Also, move the definition of KICK_SLAVE to slave.cc.
      sql/sql_repl.h:
        Removed KICK_SLAVE and inlined it in slave.cc because:
         - it was only called once, so better to make it local to where it is used
         - it needed to include a preprocessor conditional in the middle
      1836625f
    • unknown's avatar
      Merge kaamos.(none):/data/src/opt/mysql-5.0-opt · a5e775b4
      unknown authored
      into  kaamos.(none):/data/src/opt/mysql-5.1-opt
      
      
      mysql-test/r/func_misc.result:
        Auto merged
      mysql-test/r/null_key.result:
        Auto merged
      mysql-test/t/func_misc.test:
        Auto merged
      sql/item.cc:
        Auto merged
      sql/item.h:
        Auto merged
      sql/sql_select.cc:
        Manual merge.
      a5e775b4
    • unknown's avatar
      Merge mhansson@bk-internal:/home/bk/mysql-5.1-opt · f9bbd753
      unknown authored
      into  riffraff.(none):/data0/martin/bug34367/my51-bug34367-pushee
      
      
      f9bbd753
    • unknown's avatar
      Merge bk@192.168.21.1:mysql-5.1-opt · 74783c57
      unknown authored
      into  mysql.com:/home/hf/work/32801/my51-32801
      
      
      74783c57
  7. 10 Mar, 2008 8 commits
  8. 08 Mar, 2008 3 commits
  9. 07 Mar, 2008 3 commits
    • unknown's avatar
      Bug #26622 MASTER_POS_WAIT does not work as documented · 0e679ab7
      unknown authored
      Affected tests fixing. After the fix for st_relay_log_info::wait_for_pos() that
      handles widely used select('master-bin.xxxx',pos) invoked by mysqltest
      there appeared to be four tests that either tried synchronizing when
      the slave was stopped or used incorrect synchronization method like
      to call `sync_with_master' from the current connection being to the
      master itself.
      
      Fixed with correcting the current connection or/and using the correct
      synchronization macro when possible.
      
      
      mysql-test/r/rpl_loaddata.result:
        results changed
      mysql-test/r/rpl_slave_status.result:
        results changed
      mysql-test/t/rpl_loaddata.test:
        fixing cleanup for two tests
      mysql-test/t/rpl_skip_error.test:
        fixing cleanup for two tests
      mysql-test/t/rpl_slave_status.test:
        fixing cleanup
      mysql-test/t/rpl_temporary.test:
        fixing synchronizations to use the intended correct macro.
      0e679ab7
    • unknown's avatar
      BUG#31168: @@hostname does not replicate · 875ad6d8
      unknown authored
      Problem: in mixed and statement mode, a query that refers to a
      system variable will use the slave's value when replayed on
      slave. So if the value of a system variable is inserted into a
      table, the slave will differ from the master.
      Fix: mark statements that refer to a system variable as "unsafe",
      meaning they will be replicated by row in mixed mode and produce a warning
      in statement mode. There are some exceptions: some variables are actually
      replicated. Those should *not* be marked as unsafe.
      BUG#34732: mysqlbinlog does not print default values for auto_increment variables
      Problem: mysqlbinlog does not print default values for some variables,
      including auto_increment_increment and others. So if a client executing
      the output of mysqlbinlog has different default values, replication will
      be wrong.
      Fix: Always print default values for all variables that are replicated.
      I need to fix the two bugs at the same time, because the test cases would
      fail if I only fixed one of them.
      
      
      include/m_ctype.h:
        Added definition of ILLEGAL_CHARSET_INFO_NUMBER. We just need a symbol
        for a number that will never be used by any charset. ~0U should be safe
        since charset numbers are sequential, starting from 0.
      mysql-test/include/commit.inc:
        Upated test to avoid making statements unsafe.
      mysql-test/r/commit_1innodb.result:
        Updated test needs updated result file.
      mysql-test/r/mysqlbinlog.result:
        Updated result file.
      mysql-test/r/mysqlbinlog2.result:
        Updated result file.
      mysql-test/r/user_var-binlog.result:
        Updated result file.
      mysql-test/suite/binlog/r/binlog_base64_flag.result:
        Updated result file.
      mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result:
        Updated result file.
      mysql-test/suite/binlog/r/binlog_unsafe.result:
        Modified test file needs modified result file.
      mysql-test/suite/binlog/t/binlog_base64_flag.test:
        Need to filter out pseudo_thread_id from result since it is
        nondeterministic.
      mysql-test/suite/binlog/t/binlog_unsafe.test:
        Add tests that using variables is unsafe. The 'CREATE VIEW' tests didn't
        make sense, so I removed them. SHOW WARNINGS is not necessary either,
        because we get warnings for each statement in the result file.
      mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result:
        Updated result file.
      mysql-test/suite/rpl/r/rpl_skip_error.result:
        Updated result file.
      mysql-test/suite/rpl/t/rpl_skip_error.test:
        The test used @@server_id, which is not safe to replicate, so it would
        have given a warning. The way it used @@server_id was hackish (issue a
        query on master that removes rows only on master), so I replaced it by a
        more robust way to do the same thing (connect to slave and insert the
        rows only there).
        Also clarified what the test case does.
      mysql-test/t/mysqlbinlog2.test:
        Use --short-form instead of manually filtering out nondeterministic stuff
        from mysqlbinlog (because we added the nondeterministic @@pseudo_thread_id
        to the output).
      sql/item_func.cc:
        Added method of Item_func_get_system_var that indicates whether the given
        system variable will be written to the binlog or not.
      sql/item_func.h:
        Added method of Item_func_get_system_var that indicates whether the given
        system variable will be written to the binlog or not.
      sql/log_event.cc:
         - auto_increment_offset was not written to the binlog if
        auto_increment_increment=1
         - mysqlbinlog did not output default values for some variables
        (BUG#34732). In st_print_event_info, we remember for each variable whether
        it has been printed or not. This is achieved in different ways for
        different variables:
            - For auto_increment_*, lc_time_names, charset_database_number,
              we set the default values in st_print_event_info to something
              illegal, so that it will look like they have changed the first time
              they are seen.
            - For charset, sql_mode, pseudo_thread_id, we add a flag to
              st_print_event_info which indicates whether the variable has been
              printed.
            - Since pseudo_thread_id is now printed more often, and its value is
              not guaranteed to be constant across different runs of the same
              test script, I replaced it by a constant if --short-form is used.
         - Moved st_print_event_info constructor from log_event.h to log_event.cc,
        since it now depends on ILLEGAL_CHARSET_NUMBER, which is defined in
        m_ctype.h, which is better to include from a .cc file than from a header
        file.
      sql/log_event.h:
        Added fields to st_print_event_info that indicate whether some of the
        variables have been written or not. Since the initialization of
        charset_database_number now depends on ILLEGAL_CHARSET_INFO_NUMBER, which
        is defined in a header file, which we'd better not include from this
        header file -- I moved the constructor from here to log_event.cc.
      sql/set_var.cc:
        System variables now have a flag binlog_status, which indicates if they
        are written to the binlog. If nothing is specified, all variables are
        marked as not written to the binlog (NOT_IN_BINLOG) when created. In this
        file, the variables that are written to the binlog are marked with
        SESSION_VARIABLE_IN_BINLOG.
      sql/set_var.h:
        Added flag binlog_status to class sys_var. Added a getter and a
        constructor parameter that sets it.
        Since I had to change sys_var_thd_enum constructor anyways, I simplified
        it to use default values of arguments instead of three copies of the
        constructor.
      sql/sql_yacc.yy:
        Mark statements that refer to a system variable as "unsafe",
        meaning they will be replicated by row in mixed mode. Added comment to
        explain strange piece of code just above.
      mysql-test/include/diff_tables.inc:
        New auxiliary test file that tests whether two tables (possibly one on
        master and one on slave) differ.
      mysql-test/suite/rpl/r/rpl_variables.result:
        New test case needs new result file.
      mysql-test/suite/rpl/r/rpl_variables_stm.result:
        New test file needs new result file.
      mysql-test/suite/rpl/t/rpl_variables.test:
        Test that INSERT of @@variables is replicated correctly (by switching to
        row-based mode).
      mysql-test/suite/rpl/t/rpl_variables_stm.test:
        Test that replication of @@variables which are replicated explicitly works
        as expected in statement mode (without giving warnings).
      875ad6d8
    • unknown's avatar
      Bug #34367: sql/sql_show.cc: create_schema_table should handle · 4aae2099
      unknown authored
      MYSQL_TYPE_NEWDECIMAL
      
      Added support for the type MYSQL_TYPE_NEWDECIMAL. It now works like
      MYSQL_TYPE_DECIMAL. Unfortunately there cannot be a test case until
      we have a working information_schema plugin as part of the source
      distribution.
      
      
      sql/sql_show.cc:
        Bug#34367: The fix. Corrected wrong comments and a DBUG_ENTER with wrong 
        function name.
      sql/table.h:
        Bug#34367: Added comments to st_field_info.
      4aae2099