1. 24 Mar, 2009 1 commit
    • Alexey Kopytov's avatar
      Fix for bug #43801: mysql.test takes too long, fails due to · 8d4d3e13
      Alexey Kopytov authored
                          expired timeout on debx86-b in PB 
      
      Moved the resource-intensive test case for bug #41486 into 
      a separate test file to reduce execution time for mysql.test. 
      
      
      mysql-test/include/wait_until_disconnected.inc:
        Used in mysql-bug41486.test.
      mysql-test/r/mysql-bug41486.result:
        Moved the resource-intensive test case for bug #41486 into 
        a separate test file to reduce execution time for mysql.test.
      mysql-test/r/mysql.result:
        Moved the resource-intensive test case for bug #41486 into 
        a separate test file to reduce execution time for mysql.test.
      mysql-test/t/mysql-bug41486.test:
        Moved the resource-intensive test case for bug #41486 into 
        a separate test file to reduce execution time for mysql.test.
      mysql-test/t/mysql.test:
        Moved the resource-intensive test case for bug #41486 into 
        a separate test file to reduce execution time for mysql.test.
      8d4d3e13
  2. 19 Mar, 2009 1 commit
  3. 18 Mar, 2009 1 commit
    • Alexey Kopytov's avatar
      Fix for bug#41486: extra character appears in BLOB for every · 73a7d993
      Alexey Kopytov authored
                         ~40Mb after mysqldump/import 
              
      When the input string exceeds the maximum allowed size for the 
      internal buffer, batch_readline() returns a truncated string. 
      Since there was no way for a caller to determine whether the 
      string was truncated or not, the command line client assumed 
      batch_readline() to always return the whole input string and 
      appended a newline character. This resulted in garbled data 
      when importing dumps containing strings longer than the 
      maximum input buffer size. 
        
      Fixed by adding a flag to the batch_readline() interface to 
      signal a truncated string to the caller. 
        
      Other minor problems fixed during patch implementation: 
       
      - The maximum allowed buffer size for batch_readline() was set 
      up depending on the client's max_allowed_packet value. It does 
      not actully make any sense, as those variables are not 
      related. The input buffer size limit is now always set to 1 
      MB. 
        
      - fill_buffer() did not always set the EOF flag. 
       
      - The input buffer could actually grow twice as the specified 
      limit due to insufficient checks in intern_read_line(). 
      
      client/my_readline.h:
        Changed the interface of batch_readline().
      client/mysql.cc:
        Honor the truncated flag returned by batch_readline() and do  
        not append the newline character if it was set. Since we can't 
        change the interfaces for readline()/fgets() used in the  
        interactive mode, always assume the returned string was not  
        truncated. In addition, always set the batch_readline()  
        internal buffer to 1 MB, independently from the client's  
        max_allowed_packet.
      client/readline.cc:
        Added the 'truncated' argument do batch_readline() to signal 
        truncated string to a caller. 
        Fixed fill_buffer() to set the EOF flag correctly. 
        Fixed checks in intern_read_line() to not allow the internal  
        buffer grow past the specified limit.
      mysql-test/r/mysql.result:
        Added a test case for bug #41486.
      mysql-test/t/mysql.test:
        Added a test case for bug #41486.
      73a7d993
  4. 25 Feb, 2009 2 commits
  5. 24 Feb, 2009 1 commit
    • Georgi Kodinov's avatar
      Bug #31060: MySQL CLI parser bug 2 · 4b05db5c
      Georgi Kodinov authored
            
      There was a problem when a DELIMITER COMMAND is not the first 
      command on the line. I this case an extra line feed was added
      to the glob buffer and this was causing subsequent attempts 
      to enter this delimiter to fail.
      Fixed by not adding a new line to the glob buffer if the 
      command being added is a DELIMITER
      
      client/mysql.cc:
        Bug #31060: Don't add a new line if DELIMTER is added to
        the glob buffer
      mysql-test/r/mysql.result:
        Bug #31060: test case
      mysql-test/t/mysql.test:
        Bug #31060: test case
      4b05db5c
  6. 25 Feb, 2009 2 commits
    • Alexey Kopytov's avatar
      Automerge. · 315748a4
      Alexey Kopytov authored
      315748a4
    • Alexey Kopytov's avatar
      Fixed a build failure on Ubuntu 8.10 introduced by the patch · 0f6e7f11
      Alexey Kopytov authored
      for bug #15936.
      
      On some platforms fenv.h may #undef the min/max macros
      defined in my_global.h.
      
      Fixed by moving the #include directive for fenv.h from
      mysqld.cc to my_global.h before definitions for min/max.
      
      include/my_global.h:
        Moved #include <fenv.h> from mysqld.cc.
      sql/mysqld.cc:
        Moved #include <fenv.h> to my_global.h.
      0f6e7f11
  7. 24 Feb, 2009 9 commits
  8. 23 Feb, 2009 4 commits
    • Alexey Kopytov's avatar
      Automerge. · d86c8af3
      Alexey Kopytov authored
      d86c8af3
    • Alexey Kopytov's avatar
      Fix for bug #15936: "round" differs on Windows to Unix · 0e62c9aa
      Alexey Kopytov authored
      Both of our own implementations of rint(3) were inconsistent with the
      most common behavior of rint() on those platforms that have it: round
      to nearest, break ties by rounding to nearest even.
      
      Fixed by leaving just one implementation of rint() in our source tree,
      and changing its behavior to match the most common native
      implementations on other platforms.
      
      configure.in:
        Added checks for fenv.h and fesetround().
      include/config-win.h:
        Removed the incorrect implementation of rint() for Windows.
      include/my_global.h:
        Added an rint() implementation for platforms that do not have it.
      mysql-test/r/func_math.result:
        Added a test case for bug #15936.
      mysql-test/t/func_math.test:
        Added a test case for bug #15936.
      sql/mysqld.cc:
        Explicitly set the FPU rounding mode with fesetround().
      0e62c9aa
    • Tatiana A. Nurnberg's avatar
      auto-merge · ec3decf6
      Tatiana A. Nurnberg authored
      ec3decf6
    • Tatiana A. Nurnberg's avatar
      auto-merge · c1d73f33
      Tatiana A. Nurnberg authored
      c1d73f33
  9. 20 Feb, 2009 4 commits
    • Patrick Crews's avatar
      automerge · fb20a7d6
      Patrick Crews authored
      fb20a7d6
    • Andrei Elkin's avatar
      Bug #37313 BINLOG Contains Incorrect server id · 4712e6b9
      Andrei Elkin authored
        
      Signed integer format specifier forced to print the binlog header with server_id
      negative if the unsigned value sets the sign-bit ON.
        
      Fixed with correcting the specifier to correspond to typeof(server_id) == ulong.
      
      mysql-test/r/mysqlbinlog.result:
        results changed.
      mysql-test/t/mysqlbinlog.test:
        displaying the expected unsignedly formatted server_id value, bug#37313.
      sql/log_event.cc:
        Format specifier is corrected to correspond to typeof(server_id).
      4712e6b9
    • Georgi Kodinov's avatar
      fixed a warning · c1ddc60c
      Georgi Kodinov authored
      c1ddc60c
    • Georgi Kodinov's avatar
      Bug #42419: test suite fix · a67725ac
      Georgi Kodinov authored
      Moved the test case for the bug into a separate file (and restored the 
      original innodb_mysql test setup).
      Used the new wait_show_condition test macro to avoid the usage of sleep
      
      mysql-test/include/wait_show_condition.inc:
        Bug #42419: new test macro to wait for a row in SHOW to have a certain value.
      mysql-test/r/innodb_bug42419.result:
        Bug #42419: test case
      mysql-test/r/innodb_mysql.result:
        Bug #42419: revert to the original innodb_mysql test
      mysql-test/t/innodb_bug42419.test:
        Bug #42419: test case
      mysql-test/t/innodb_mysql-master.opt:
        Bug #42419: revert to the original innodb_mysql test
      mysql-test/t/innodb_mysql.test:
        Bug #42419: revert to the original innodb_mysql test
      a67725ac
  10. 19 Feb, 2009 9 commits
    • Patrick Crews's avatar
      Bug#38831: 11 test cases fail on Windows due to missing commands · cf571967
      Patrick Crews authored
      Re-enabling mysqlbinlog.test on Windows - removed the use of grep/sed
      cf571967
    • Patrick Crews's avatar
      Bug#38831: 11 test cases fail on Windows due to missing commands · 79300d6f
      Patrick Crews authored
      Replaced Unix calls with mysql-test-run's built-in functions / SQL manipulation where possible.
      Replaced error codes with error names as well.
      Disabled two tests on Windows due to more complex Unix command usage
      See Bug#41307, Bug#41308
      79300d6f
    • Tatiana A. Nurnberg's avatar
      Bug#33550: mysqldump 4.0 compatibility broken · 4a3f5b2b
      Tatiana A. Nurnberg authored
      mysqldump included character_set_client magic
      that is unknown before 4.1 even when asked for
      an appropriate compatibility mode.
      
      In compatibility (3.23, 4.0) mode, we do not
      output charset statements (not even in a
      "comment conditional"), nor do we do magic on
      the server, even if the server is sufficient
      new (4.1+). Table-names will be output converted
      to the charset requested by mysqldump; if such
      a conversion is not possible (Ivrit -> Latin),
      mysqldump will fail.
      4a3f5b2b
    • Georgi Kodinov's avatar
      merged bug 42419 to 5.0-bugteam · cf42f668
      Georgi Kodinov authored
      cf42f668
    • Georgi Kodinov's avatar
      Bug #42419: Server crash with "Pure virtual method called" on two concurrent · 29476d87
      Georgi Kodinov authored
      connections
      The problem is that tables can enter open table cache for a thread without 
      being properly cleaned up. This can happen if make_join_statistics() fails 
      to read a const table because of e.g. a deadlock. It does set a member of 
      TABLE structure to a value it allocates, but doesn't clean-up this setting 
      on error nor does it set the rest of the members in JOIN to allow for 
      automatic cleanup.
      As a result when such an error occurs and the next statement depends re-uses 
      the table from the open tables cache it will get it with this 
      TABLE::reginfo.join_tab pointing to a memory area that's freed.
      Fixed by making sure make_join_statistics() cleans up TABLE::reginfo.join_tab 
      on error.
      
      mysql-test/r/innodb_mysql.result:
        Bug #42419: test case
      mysql-test/t/innodb_mysql-master.opt:
        Bug #42419: increase the timeout so it covers te conservative 
        sleep 3 in the test
      mysql-test/t/innodb_mysql.test:
        Bug #42419: test case
      sql/sql_select.cc:
        Bug #42419: clean up the members of TABLE on failure in 
                make_join_statisitcs()
      29476d87
    • Sergey Glukhov's avatar
      Bug#37601 Cast Is Not Done On Row Comparison · c2e23208
      Sergey Glukhov authored
      In case of ROW item each compared pair does not
      check if argumet collations can be aggregated and
      thus appropiriate item conversion does not happen.
      The fix is to add the check and convertion for ROW
      pairs.
      
      
      mysql-test/r/row.result:
        test result
      mysql-test/t/row.test:
        test case
      sql/item.cc:
        added agg_item_set_converter() function which was a part of
        agg_item_charsets() func. The only difference is that
        agg_item_set_converter() checks and converts items 
        using already known collation.
      sql/item.h:
        added agg_item_set_converter() function
      sql/item_cmpfunc.cc:
        In case of ROW item each compared pair does not
        check if argumet collations can be aggregated and
        thus appropiriate item conversion does not happen.
        The fix is to add the check and convertion for ROW
        pairs.
      c2e23208
    • Alexey Kopytov's avatar
      Automerge. · 0c96241b
      Alexey Kopytov authored
      0c96241b
    • Alexey Kopytov's avatar
      Fix for bug #41078: With CURSOR_TYPE_READ_ONLY mysql_stmt_fetch() · 32164609
      Alexey Kopytov authored
      returns short string value. 
       
      Multibyte character sets were not taken into account when 
      calculating max_length in Item_param::convert_str_value(). As a 
      result, string parameters of a prepared statement could be 
      truncated later when calculating string length in characters by 
      dividing length in bytes by the charset's mbmaxlen value (e.g. in 
      Field_varstring::store()). 
       
      Fixed by taking charset's mbmaxlen into account when calculating 
      max_length in Item_param::convert_str_value().
      
      
      sql/item.cc:
        Multiply string's length in characters by charset's mbmaxlen when 
        calculating max_length.
      tests/mysql_client_test.c:
        Added a test case for bug #41078.
      32164609
    • Tatiana A. Nurnberg's avatar
      Bug#37400: mysql: Bad help message for charset command · 1d0b5cc9
      Tatiana A. Nurnberg authored
      Typo existed in help-text for command "charset" in mysql
      client, making the parameter-name different for long and
      short forms of the command for no good reason.
      
      Fixed.
      
      client/mysql.cc:
        Make parameter-name in help-text the same for
        long and short forms, for consistency.
      1d0b5cc9
  11. 18 Feb, 2009 2 commits
  12. 17 Feb, 2009 1 commit
  13. 16 Feb, 2009 2 commits
  14. 15 Feb, 2009 1 commit