1. 26 Nov, 2010 5 commits
    • Georgi Kodinov's avatar
      merge · d6d0827e
      Georgi Kodinov authored
      d6d0827e
    • Alexander Barkov's avatar
      Bug#56639 Character Euro (0x88) not converted from cp1251 to utf8 · a7c09ea9
      Alexander Barkov authored
      Problem: MySQL cp1251 did not support 'U+20AC EURO SIGN'
      which was assigned a few years ago to 0x88.
      
      Fix: adding mapping: 0x88 <-> U+20AC 
      
        @ mysql-test/include/ctype_8bit.inc
        New shared file to test 8bit character sets.
      
        @ mysql-test/r/ctype_cp1251.result
        @ mysql-test/t/ctype_cp1251.test
        Adding tests
      
        @ sql/share/charsets/cp1251.xml
        Adding mapping
      
        @ strings/ctype-extra.c
        Regenerating ctype-extra.c using strings/conf_to_src
        according to new cp1251.xml
      a7c09ea9
    • Nirbhay Choubey's avatar
      Bug #54899 : --one-database option cannot handle DROP/CREATE DATABASE commands · e1b773cb
      Nirbhay Choubey authored
      After dropping and recreating the database specified along with --one-database
      option at command line, mysql client keeps filtering the statements even after
      the execution of a 'USE' command on the same database.
      
      --one-database option enables the filtering of statements when the current
      database is not the one specified at the command line. However, when the same
      database is dropped and recreated the variable (current_db) that holds the
      inital database name gets altered. This bug exploits the fact that current_db
      initially gets set to null value (0) when a 'use db_name' follows the recreation
      of same database db_name (speficied at the command line) and hence skip_updates
      gets set to 1, which inturn triggers the further filtering of statements.
      
      Fixed by making get_current_db() a no-op function when one_database is set,
      and hence, under that condition current_db will not get altered.
      Note, however the value of current_db can change when we execute 'connect'
      command with a differnet database to reconnect to the server, in which case,
      the behavior of --one-database will be formulated using this new database.
      
      
      client/mysql.cc:
        Bug #54899 : --one-database option cannot handle DROP/CREATE DATABASE commands
        
        Added an if statement at the beginnning of get_current_db() , which makes it
        a no-op function if one-database option is specified, and hence current_db
        remains unchanged.
        
        Changed the help message for one-database option to a more appropriate message
        as specified in mysql documentation.
      mysql-test/r/mysql.result:
        Added a test case for bug#54899 and some more test cases to
        check other one-database option related behaviors.
      mysql-test/t/mysql.test:
        Added a test case for bug#54899 and some more test cases to
        check other one-database option related behaviors.
      e1b773cb
    • Georgi Kodinov's avatar
      merge · db8bd7be
      Georgi Kodinov authored
      db8bd7be
    • Georgi Kodinov's avatar
      bumped up the version string. · b7e69aef
      Georgi Kodinov authored
      b7e69aef
  2. 25 Nov, 2010 2 commits
    • Tatiana Azundris Nurnberg's avatar
      merge · 01e0be66
      Tatiana Azundris Nurnberg authored
      01e0be66
    • Tatiana A. Nurnberg's avatar
      Assorted post-merge fixes, clean-up, integration, compat with 5.6. · 7336ac45
      Tatiana A. Nurnberg authored
      43233/55794.
      
      mysql-test/r/change_user.result:
        Don't use -1 integer wrap around. It used to work, but now we do what's
        actually in the documentation. In tests, we now use DEFAULT or the
        numeral equivalent (as we do in the 5.6 tests).
      mysql-test/r/key_cache.result:
        Can't drop default key case is an error now, not a warning, for compatibility
        with 5.6.
      mysql-test/r/variables.result:
        Can't drop default key case is an error now, not a warning, for compatibility
        with 5.6.
      mysql-test/t/change_user.test:
        Don't use -1 integer wrap around. It used to work, but now we do what's
        actually in the documentation. In tests, we now use DEFAULT or the
        numeral equivalent (as we do in the 5.6 tests).
      mysql-test/t/key_cache.test:
        Can't drop default key case is an error now, not a warning, for compatibility
        with 5.6.
      mysql-test/t/variables.test:
        Can't drop default key case is an error now, not a warning, for compatibility
        with 5.6.
      sql/mysqld.cc:
        0 is a legal (albeit magic) value: "drop key cache."
      sql/set_var.cc:
        bound_unsigned() can go now, it was just a kludge until things are done
        The Right Way, which they are now.
        
        Can't drop default key case is an error now, not a warning, for compatibility
        with 5.6.
      tests/mysql_client_test.c:
        Don't use -1 integer wrap around. It used to work, but now we do what's
        actually in the documentation. In tests, we now use DEFAULT or the
        numeral equivalent (as we do in the 5.6 tests).
      7336ac45
  3. 24 Nov, 2010 4 commits
  4. 23 Nov, 2010 1 commit
    • Sergey Glukhov's avatar
      Bug#56862 Execution of a query that uses index merge returns a wrong result · cf0cc723
      Sergey Glukhov authored
      In case of low memory sort buffer QUICK_INDEX_MERGE_SELECT creates
      temporary file where is stores row ids which meet QUICK_SELECT ranges
      except of clustered pk range, clustered range is processed separately.
      In init_read_record we check if temporary file is used and choose
      appropriate record access method. It does not take into account that
      temporary file contains partial result in case of QUICK_INDEX_MERGE_SELECT
      with clustered pk range.
      The fix is always to use rr_quick if QUICK_INDEX_MERGE_SELECT
      with clustered pk range is used.
      
      
      mysql-test/suite/innodb/r/innodb_mysql.result:
        test case
      mysql-test/suite/innodb/t/innodb_mysql.test:
        test case
      mysql-test/suite/innodb_plugin/r/innodb_mysql.result:
        test case
      mysql-test/suite/innodb_plugin/t/innodb_mysql.test:
        test case
      sql/opt_range.h:
        added new method
      sql/records.cc:
        The fix is always to use rr_quick if QUICK_INDEX_MERGE_SELECT
        with clustered pk range is used.
      cf0cc723
  5. 22 Nov, 2010 4 commits
  6. 20 Nov, 2010 1 commit
  7. 18 Nov, 2010 1 commit
    • Georgi Kodinov's avatar
      Bug #50021: Windows standard configuration files are showing Linux · 05c9acaa
      Georgi Kodinov authored
       options/settings
       
       1. Changed the default value for socket on Windows to the windows
       default
       2. Removed hard-coded trailing slashes from innodb_data_home_dir
       and innodb_log_group_name_dir.
       3. Added extra backslashes to the innodb directory example
       4. Made the tempdir platform "dependent"
       5. Fixed the comments in the .ini files
       6. Removed the tmpdir from the templates and the scripts
      05c9acaa
  8. 19 Nov, 2010 1 commit
  9. 18 Nov, 2010 4 commits
  10. 17 Nov, 2010 2 commits
    • Bjorn Munch's avatar
      Bug #58257 mysqltest: in if(), ! $var with space is always false · 32ea0708
      Bjorn Munch authored
      Evaluation would start with the space and thus ignore the $
      Added while() to skip past white space
      32ea0708
    • Davi Arnaut's avatar
      Bug#57994: Compiler flag change build error : my_redel.c · c3246242
      Davi Arnaut authored
      Use __builtin_stpcpy only if the system supports stpcpy.
      This is necessary as in some cases a call to stpcpy will
      be emitted if the built-in can not optimized.
      
      include/m_string.h:
        The expansion of stpcpy (in glibc) causes warnings if the
        return value of strmov is not being used. Since stpcpy is
        a GNU extension and the expansion ends up using a built-in
        provided by GCC, use the compiler provided built-in directly
        when possible. Nonetheless, the C library must have stpcpy
        as a call be emitted if the built-in can not optimized.
      c3246242
  11. 15 Nov, 2010 1 commit
  12. 14 Nov, 2010 1 commit
  13. 11 Nov, 2010 8 commits
  14. 10 Nov, 2010 1 commit
    • Davi Arnaut's avatar
      Bug#58057: 5.1 libmysql/libmysql.c unused variable/compile failure · cd1c6e22
      Davi Arnaut authored
      Bug#57995: Compiler flag change build error on OSX 10.4: my_getncpus.c
      Bug#57996: Compiler flag change build error on OSX 10.5 : bind.c
      Bug#57994: Compiler flag change build error : my_redel.c
      Bug#57993: Compiler flag change build error on FreeBsd 7.0 : regexec.c
      Bug#57992: Compiler flag change build error on FreeBsd : mf_keycache.c
      Bug#57997: Compiler flag change build error on OSX 10.6: debug_sync.cc
      
      Fix assorted compiler generated warnings.
      
      cmd-line-utils/readline/bind.c:
        Bug#57996: Compiler flag change build error on OSX 10.5 : bind.c
        
        Initialize variable to work around a false positive warning.
      include/m_string.h:
        Bug#57994: Compiler flag change build error : my_redel.c
        
        The expansion of stpcpy (in glibc) causes warnings if the
        return value of strmov is not being used. Since stpcpy is
        a GNU extension and the expansion ends up using a built-in
        provided by GCC, use the compiler provided built-in directly
        when possible.
      include/my_compiler.h:
        Define a dummy MY_GNUC_PREREQ when not compiling with GCC.
      libmysql/libmysql.c:
        Bug#58057: 5.1 libmysql/libmysql.c unused variable/compile failure
        
        Variable might not be used in some cases. So, tag it as unused.
      mysys/mf_keycache.c:
        Bug#57992: Compiler flag change build error on FreeBsd : mf_keycache.c
        
        Use UNINIT_VAR to work around a false positive warning.
      mysys/my_getncpus.c:
        Bug#57995: Compiler flag change build error on OSX 10.4: my_getncpus.c
        
        Declare variable in the same block where it is used.
      regex/regexec.c:
        Bug#57993: Compiler flag change build error on FreeBsd 7.0 : regexec.c
        
        Work around a compiler bug which causes the cast to not be enforced.
      sql/debug_sync.cc:
        Bug#57997: Compiler flag change build error on OSX 10.6: debug_sync.cc
        
        Use UNINIT_VAR to work around a false positive warning.
      sql/handler.cc:
        Use UNINIT_VAR to work around a false positive warning.
      sql/slave.cc:
        Use UNINIT_VAR to work around a false positive warning.
      sql/sql_partition.cc:
        Use UNINIT_VAR to work around a false positive warning.
      storage/myisam/ft_nlq_search.c:
        Use UNINIT_VAR to work around a false positive warning.
      storage/myisam/mi_create.c:
        Use UNINIT_VAR to work around a false positive warning.
      storage/myisammrg/myrg_open.c:
        Use UNINIT_VAR to work around a false positive warning.
      tests/mysql_client_test.c:
        Change function to take a pointer to const, no need for a cast.
      cd1c6e22
  15. 15 Nov, 2010 3 commits
    • Mattias Jonsson's avatar
      merge · 6780abfc
      Mattias Jonsson authored
      6780abfc
    • Mattias Jonsson's avatar
      merge · 3df98a28
      Mattias Jonsson authored
      3df98a28
    • Mattias Jonsson's avatar
      Bug#58197: main.variables-big fails on windows · 47b514ff
      Mattias Jonsson authored
      The test result differs on windows, since
      it writes out 'localhost:<port>' instead of
      only 'localhost', since it uses tcp/ip instead
      of unix sockets on windows.
      
      Fixed by replacing that column.
      
      Also requires --big-test from some long running tests
      and added a weekly run of all test requiring --big-test.
      
      mysql-test/collections/default.weekly:
        Added a run of big-test (already exists in 5.5).
      mysql-test/r/variables-big.result:
        Updated results
      mysql-test/suite/parts/t/part_supported_sql_func_innodb.test:
        requiring --big-test since the test takes long time
      mysql-test/suite/parts/t/partition_alter1_1_2_innodb.test:
        requiring --big-test since the test takes long time
      mysql-test/suite/parts/t/partition_alter1_2_innodb.test:
        requiring --big-test since the test takes long time
      mysql-test/suite/parts/t/partition_alter4_innodb.test:
        requiring --big-test since the test takes long time
      mysql-test/t/disabled.def:
        Disabled two tests since they fail and was already
        reported as bugs (but was never run since they requires
        --big-test flag).
      mysql-test/t/variables-big.test:
        Replacing column 3 in process list since it
        is not the same on windows as in unix.
      47b514ff
  16. 11 Nov, 2010 1 commit
    • Mattias Jonsson's avatar
      Bug#57890: Assertion failed: next_insert_id == 0 · e0a8c254
      Mattias Jonsson authored
                 with on duplicate key update
      
      There was a missed corner case in the partitioning
      handler, which caused the next_insert_id to be changed
      in the second level handlers (i.e the hander of a partition),
      which caused this debug assertion.
      
      The solution was to always ensure that only the partitioning
      level generates auto_increment values, since if it was done
      within a partition, it may fail to match the partition
      function.
      
      mysql-test/suite/parts/inc/partition_auto_increment.inc:
        Added tests
      mysql-test/suite/parts/r/partition_auto_increment_blackhole.result:
        updated results
      mysql-test/suite/parts/r/partition_auto_increment_innodb.result:
        updated results
      mysql-test/suite/parts/r/partition_auto_increment_memory.result:
        updated results
      mysql-test/suite/parts/r/partition_auto_increment_myisam.result:
        updated results
      sql/ha_partition.cc:
        In <engine>::write_row the auto_inc value is generated
        through handler::update_auto_increment (which calls <engine>::get_auto_increment() if needed).
        If:
        * INSERT_ID was set to 0
        * it was updated to 0 by 'INSERT ... ON DUPLICATE KEY UPDATE' and changed partitions for the row
        Then it would try to generate a auto_increment value in the
        <engine for a specific partition>::write_row, which will
        trigger the assert.
        
        So the solution is to prevent this by,
        in ha_partition::write_row set auto_inc_field_not_null and
        add MODE_NO_AUTO_VALUE_ON_ZERO
        in ha_partition::update_row (when changing partition) temporary
        set table->next_number_field to NULL which calling the
        partitions ::write_row().
      e0a8c254