1. 19 Oct, 2007 1 commit
  2. 17 Oct, 2007 1 commit
  3. 16 Oct, 2007 1 commit
  4. 11 Oct, 2007 1 commit
    • unknown's avatar
      Fix for bug #31174: "Repair" command on MyISAM crashes with small · 1c7b80df
      unknown authored
      myisam_sort_buffer_size.
      
      An incorrect length of the sort buffer was used when calculating the
      maximum number of keys. When myisam_sort_buffer_size is small enough,
      this could result in the number of keys < number of
      BUFFPEK structures which in turn led to use of uninitialized BUFFPEKs.
      
      Fixed by correcting the buffer length calculation.
      
      
      myisam/sort.c:
        Use a correct buffer length when calculating the maximum number of keys.
        Assert that for each BUFFPEK structure there is at least one
        corresponding key. Otherwise we would fail earlier and not reach
        merge_buffers().
      mysql-test/r/repair.result:
        Added a test case for bug #31174.
      mysql-test/t/repair.test:
        Added a test case for bug #31174.
      1c7b80df
  5. 10 Oct, 2007 1 commit
  6. 04 Oct, 2007 5 commits
    • unknown's avatar
      Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-4.1-maint · b055562b
      unknown authored
      into  sin.intern.azundris.com:/home/tnurnberg/30444/41-30444
      
      
      b055562b
    • unknown's avatar
      Backport of the 5.0 patch to 4.1 · 4d0ef0cc
      unknown authored
      Bug#28878: InnoDB tables with UTF8 character set and indexes cause  wrong result for DML
      When making key reference buffers over CHAR fields whitespace (0x20) must be used to fill in the remaining space in the field's buffer. This is what Field_string::store() does. Fixed Field_string::get_key_image() to do the same.
      
      
      mysql-test/r/innodb_mysql.result:
        Bug#28878: test case
      mysql-test/t/innodb_mysql.test:
        Bug#28878: test case
      sql/field.cc:
        Bug#28878: Fill with space instead of binary zeros.
      4d0ef0cc
    • unknown's avatar
      Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-4.1-maint · bb050c0e
      unknown authored
      into  sin.intern.azundris.com:/home/tnurnberg/30444/41-30444
      
      
      bb050c0e
    • unknown's avatar
      Bug #30444: 5.0 mysqldump silently allows wrong backup to be taken against a 4.0 database · 3f4eaf57
      unknown authored
      The combination of --single-transaction and --master-data requires
      START TRANSACTION WITH CONSISTENT SNAPSHOT which is available from
      mysqld 4.1 on. When trying this against an older server, print
      diagnostic, then, if --force is not given, abort.
      
      No test-case given since it would require a mysqld < 4.1.
      
      
      client/mysqldump.c:
        Bug #30444: 5.0 mysqldump silently allows wrong backup to be taken against a 4.0 database
        
        The combination of --single-transaction and --master-data requires
        START TRANSACTION WITH CONSISTENT SNAPSHOT which is available from
        mysqld 4.1 on. When trying this against an older server, print
        diagnostic, then, if --force is not given, abort.
      3f4eaf57
    • unknown's avatar
      Fix for bug #31069: crash in 'sounds like' · db2d3104
      unknown authored
      and for bug #31070: crash during conversion of charsets
      
      Problem: passing a 0 byte length string to some my_mb_wc_XXX() 
      functions leads to server crash due to improper argument check.
      
      Fix: properly check arguments passed to my_mb_wc_XXX() functions.
      
      
      mysql-test/include/ctype_common.inc:
        Fix for bug #31069: crash in 'sounds like'
        and bug #31070: crash during conversion of charsets
          - test case.
      mysql-test/r/ctype_big5.result:
        Fix for bug #31069: crash in 'sounds like'
        and bug #31070: crash during conversion of charsets
          - test result.
      mysql-test/r/ctype_euckr.result:
        Fix for bug #31069: crash in 'sounds like'
        and bug #31070: crash during conversion of charsets
          - test result.
      mysql-test/r/ctype_gb2312.result:
        Fix for bug #31069: crash in 'sounds like'
        and bug #31070: crash during conversion of charsets
          - test result.
      mysql-test/r/ctype_gbk.result:
        Fix for bug #31069: crash in 'sounds like'
        and bug #31070: crash during conversion of charsets
          - test result.
      mysql-test/r/ctype_uca.result:
        Fix for bug #31069: crash in 'sounds like'
        and bug #31070: crash during conversion of charsets
          - test result.
      strings/ctype-big5.c:
        Fix for bug #31069: crash in 'sounds like'
        and bug #31070: crash during conversion of charsets
          - check the string length before testing its first byte.
      strings/ctype-cp932.c:
        Fix for bug #31069: crash in 'sounds like'
        and bug #31070: crash during conversion of charsets
          - check the string length before testing its first byte.
      strings/ctype-euc_kr.c:
        Fix for bug #31069: crash in 'sounds like'
        and bug #31070: crash during conversion of charsets
          - check the string length before testing its first byte.
      strings/ctype-gb2312.c:
        Fix for bug #31069: crash in 'sounds like'
        and bug #31070: crash during conversion of charsets
          - check the string length before testing its first byte.
      strings/ctype-sjis.c:
        Fix for bug #31069: crash in 'sounds like'
        and bug #31070: crash during conversion of charsets
          - check the string length before testing its first byte.
      db2d3104
  7. 28 Sep, 2007 1 commit
  8. 14 Sep, 2007 2 commits
  9. 13 Sep, 2007 1 commit
    • unknown's avatar
      BUG#30590 - delete from memory table with composite btree primary key · cf5762b4
      unknown authored
      DELETE query against memory table with btree index may remove
      not all matching rows. This happens only when DELETE uses
      index read method to find matching rows. E.g. for queries
      like DELETE FROM t1 WHERE a=1.
      
      Fixed by reverting fix for BUG9719 and applying proper solution.
      
      
      heap/hp_delete.c:
        Reverted fix for BUG9719 as it makes queries like
        DELETE FROM t1 WHERE a=1 to remove not all matching
        rows (assuming this is memory table and there is btree
        key over `a`).
        
        This happens because we calculate info->lastkey_len in
        heap_rkey(). When we enter heap_rnext(), info->lastkey_len
        is 0 (set by hp_rb_delete_key()). We need to preserve
        info->lastkey_len in this situation, otherwise
        tree_search_key() will always return smallest value in
        a tree.
      heap/hp_rfirst.c:
        If we're performing index_first on a table that was taken from
        table cache, info->lastkey_len is initialized to previous query.
        Thus we set info->lastkey_len to proper value for subsequent
        heap_rnext() calls.
        This is needed for DELETE queries only, otherwise this variable is
        not used.
        Note that the same workaround may be needed for heap_rlast(), but
        for now heap_rlast() is never used for DELETE queries.
      heap/hp_rnext.c:
        An optimization for DELETE queries that use index_first()/index_next().
        Use faster tree_search_edge() instead of tree_search_key().
      mysql-test/r/heap_btree.result:
        A test case for BUG#30590.
      mysql-test/t/heap_btree.test:
        A test case for BUG#30590.
      cf5762b4
  10. 10 Sep, 2007 1 commit
  11. 04 Sep, 2007 1 commit
  12. 29 Aug, 2007 5 commits
    • unknown's avatar
      libmysql_r/client_settings.h libmysqld/ha_blackhole.cc · f3b2c398
      unknown authored
        Deleted BitKeeper soft links not needed
      
      
      BitKeeper/deleted/.del-client_settings.h:
        Delete: libmysql_r/client_settings.h
      BitKeeper/deleted/.del-ha_blackhole.cc:
        Delete: libmysqld/ha_blackhole.cc
      f3b2c398
    • unknown's avatar
      mysql_config.sh: · 16ce5d11
      unknown authored
        Flag changed name in icc 10
      
      
      scripts/mysql_config.sh:
        Flag changed name in icc 10
      16ce5d11
    • unknown's avatar
      Remove any old pidfile before starting mysqld to make sure that · 10012b36
      unknown authored
      'mysqld_wait_started' don't return prematurely because of an old
      pidfile
      
      
      10012b36
    • unknown's avatar
      Fix typo: '$$' => '$' · 305c3526
      unknown authored
      305c3526
    • unknown's avatar
      Add 'mtr_rmtree' · 038df2d0
      unknown authored
      
      mysql-test/lib/mtr_misc.pl:
        Add function 'mtr_rmtree' it will try 'rmtree' and if that fails (most likely
        due to permission problems we will fun File::find to chmod all files and dirs
        to 0777 and then delete.
      mysql-test/mysql-test-run.pl:
        Use 'mtr_rmtree' in favour of 'rmtree'
      038df2d0
  13. 13 Aug, 2007 1 commit
  14. 05 Aug, 2007 1 commit
  15. 04 Aug, 2007 1 commit
  16. 02 Aug, 2007 7 commits
  17. 01 Aug, 2007 3 commits
    • unknown's avatar
      Merge jperkin@bk-internal.mysql.com:/home/bk/mysql-4.1-maint · bb88e1ee
      unknown authored
      into  production.mysql.com:/usersnfs/jperkin/bk/mysql-4.1-maint
      
      
      bb88e1ee
    • unknown's avatar
      Option 6 tries to grant global privileges at the database level · c517fea5
      unknown authored
      which does not work.  Removing these attempted privileges makes
      this identical to option 5 so remove it completely.  The spirit
      of the program appears to be aimed at database privileges, so do
      not add another option for granting global privileges as it may
      be unexpected.  Fixes bug#14618 (same as previous patch, this
      time applied to -maint tree).
      
      
      scripts/mysql_setpermission.sh:
        Option 6 tries to apply global privileges at the database
        level which does not work - remove it.
      c517fea5
    • unknown's avatar
      Bug#29838 - myisam corruption using concurrent select ... and update · 4158e75d
      unknown authored
      When using concurrent insert with parallel index reads, it could
      happen that reading sessions found keys that pointed to records
      yet to be written to the data file. The result was a report of
      a corrupted table. But it was false alert.
      
      When inserting a record in a table with indexes, the keys are
      inserted into the indexes before the record is written to the data
      file. When the insert happens concurrently to selects, an
      index read can find a key that references the record that is not
      yet written to the data file. To avoid any access to such record,
      the select saves the current end of file position when it starts.
      Since concurrent inserts are always appended at end of the data
      file, the select can easily ignore any concurrently inserted record.
      
      The problem was that the ignore was only done for non-exact key
      searches (partial key or using >, >=, < or <=).
      
      The fix is to ignore concurrently inserted records also for
      exact key searches.
      
      No test case. Concurrent inserts cannot be tested with the test
      suite. Test cases are attached to the bug report.
      
      
      myisam/mi_rkey.c:
        Bug#29838 - myisam corruption using concurrent select ... and update
        Fixed mi_rkey() to always ignore records beyond saved eof.
      4158e75d
  18. 31 Jul, 2007 2 commits
    • unknown's avatar
      Merge mysql.com:/home/hf/work/029717/my41-29717 · 6b745cf6
      unknown authored
      into  mysql.com:/home/hf/work/29717/my41-29717
      
      
      sql/sql_select.cc:
        Auto merged
      6b745cf6
    • unknown's avatar
      Bug #29717 INSERT INTO SELECT inserts values even if · 791584ae
      unknown authored
       SELECT statement itself returns empty.
      
      As a result of this bug 'SELECT AGGREGATE_FUNCTION(fld) ... GROUP BY'
      can return one row instead of an empty result set.
      
      When GROUP BY only has fields of constant tables
      (with a single row), the optimizer deletes the group_list.
      After that we lose the information about whether we had an
      GROUP BY statement. Though it's important
      as SELECT min(x) from empty_table; and
         SELECT min(x) from empty_table GROUP BY y; have to return
      different results - the first query should return one row,
      second - an empty result set.
      So here we add the 'group_optimized_away' flag to remember this case
      when GROUP BY exists in the query and is removed
      by the optimizer, and check this flag in end_send_group()
      
      
      mysql-test/r/group_by.result:
        Bug #29717 INSERT INTO SELECT inserts values even if
         SELECT statement itself returns empty.
        
        test result
      mysql-test/r/insert_select.result:
        Bug #29717 INSERT INTO SELECT inserts values even if
         SELECT statement itself returns empty.
        
        test result
      mysql-test/t/group_by.test:
        Bug #29717 INSERT INTO SELECT inserts values even if
         SELECT statement itself returns empty.
        
        This is additional testcase that is more basic than the
        original bug's testcase and has the same reason.
      mysql-test/t/insert_select.test:
        Bug #29717 INSERT INTO SELECT inserts values even if
         SELECT statement itself returns empty.
        
        test case
      sql/sql_select.cc:
        Bug #29717 INSERT INTO SELECT inserts values even if
         SELECT statement itself returns empty.
        
        Remember the 'GROUP BY was optimized away' case in the JOIN::group_optimized
        and check this in the end_send_group()
      sql/sql_select.h:
        Bug #29717 INSERT INTO SELECT inserts values even if
         SELECT statement itself returns empty.
        
        JOIN::group_optimized member added to remember the 'GROUP BY optimied away'
        case
      791584ae
  19. 30 Jul, 2007 1 commit
    • unknown's avatar
      my_pthread.c: · 8d0526a8
      unknown authored
        Backport of correction for Mac OS X build problem, global variable not
        initiated is "common" and can't be used in shared libraries, unless
        special flags are used (bug#26218)
      
      
      mysys/my_pthread.c:
        Backport of correction for Mac OS X build problem, global variable not
        initiated is "common" and can't be used in shared libraries, unless
        special flags are used (bug#26218)
      8d0526a8
  20. 26 Jul, 2007 3 commits
    • unknown's avatar
      Merge dfischer@bk-internal.mysql.com:/home/bk/mysql-4.1 · eb79904d
      unknown authored
      into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-4.1
      
      
      eb79904d
    • unknown's avatar
      Merge debian.(none):/M41/bug16635-4.1 · 947e42af
      unknown authored
      into  debian.(none):/M41/push-4.1
      
      
      947e42af
    • unknown's avatar
      Raise the 64 character limit for path names in the error messages · 00d694a9
      unknown authored
      to 150 or 107 characters for those messages which are generated
      by the embedded server during release builds.
      
      This fixes bug#16635:
         Error messages wrong: absolute path names, "%s" format code
      
      See the bug report or the changelog for "sql/share/english/errmsg.txt"
      for instructions how to do that with other languages, 
      even at the customer site, and for the restrictions to keep.
      
      
      sql/share/english/errmsg.txt:
        The embedded server uses absolute path names in its error messages,
        in the release build environment these exceed the 64 character limit
        which the format strings for the error messages impose (bug#16635).
        
        But when the messages are output, the server does the "printf()" 
        internally in a 256 character buffer; the constant text and the
        expanded variables (strings, error number) must fit into this.
        
        (If the buffer would overflow, a format specification will not be
        expanded but just copied with its code, and the message output
        will just contain '%s' or '%d' where a value is expected.)
        
        So the string lengths are increased to 150 characters in those messages
        which are issued by the embedded server during release tests
        and contain 1 (one) path name,
        but only to 107 in the "rename" message which contains 2 (two).
        
        This solves bug#16635 for the release builds.
        
        For other languages used by OEM customers, similar fixes may be needed,
        but we cannot test them.
        
        These fixes can be done even in a binary installation at the customer site
        by following these steps:
           cd <<install-root>>/share
           $EDITOR <<lang>>/errmsg.txt
           ../../bin/comp_err -C./charsets/ <<lang>>/errmsg.txt <<lang>>/errmsg.sys
        and then restarting the server.
      00d694a9