1. 20 Apr, 2006 1 commit
    • bar@mysql.com's avatar
      Bug#9509: Optimizer: wrong result after AND with latin1_german2_ci comparisons · 093792c6
      bar@mysql.com authored
      Fixing part2 of this problem: AND didn't work well 
      with utf8_czech_ci and utf8_lithianian_ci in some cases.
      
      The problem was because when during condition optimization
      field was replaced with a constant, the constant's collation
      and collation derivation was used later for comparison instead
      of the field collation and derivation, which led to non-equal
      new condition in some cases.
      
      This patch copies collation and derivation from the field being removed
      to the new constant, which makes comparison work using the same collation
      with the one which would be used if no condition optimization were done.
      
      In other words:
      
        where s1 < 'K' and s1 = 'Y';
      
      was rewritten to:
      
        where 'Y' < 'K' and s1 = 'Y';
      
      Now it's rewritten to:
      
        where 'Y' collate collation_of_s1 < 'K' and s1 = 'Y'
      
        (using derivation of s1)
      
      
      Note, the first problem of this bug (with latin1_german2_ci) was fixed
      earlier in 5.0 tree, in a separate changeset.
      093792c6
  2. 19 Apr, 2006 6 commits
    • igor@rurik.mysql.com's avatar
      Temporarily commented out a query from the test case for bug 14169 to make it... · 67458961
      igor@rurik.mysql.com authored
      Temporarily commented out a query from the test case for bug 14169 to make it pass with --ps-protocol.
      67458961
    • igor@rurik.mysql.com's avatar
      Merge rurik.mysql.com:/home/igor/mysql-4.1 · 881b55d5
      igor@rurik.mysql.com authored
      into  rurik.mysql.com:/home/igor/dev/mysql-4.1-2
      881b55d5
    • evgen@moonbone.local's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1 · f89daa2f
      evgen@moonbone.local authored
      into moonbone.local:/work/14169-bug-4.1-mysql
      f89daa2f
    • evgen@moonbone.local's avatar
      func_gconcat.result: · 8b4eae6e
      evgen@moonbone.local authored
        Corrected test case for the bug#14169 to make it pass in --ps-protocol mode.
      8b4eae6e
    • svoj@april.(none)'s avatar
      Bug#18544 - LOCK TABLES timeout causes MyISAM table corruption · 806cd415
      svoj@april.(none) authored
      After a locking error the open table(s) were not fully
      cleaned up for reuse. But they were put into the open table
      cache even before the lock was tried. The next statement
      reused the table(s) with a wrong lock type set up. This
      tricked MyISAM into believing that it don't need to update
      the table statistics. Hence CHECK TABLE reported a mismatch
      of record count and table size.
      
      Fortunately nothing worse has been detected yet. The effect
      of the test case was that the insert worked on a read locked
      table. (!)
      
      I added a new function that clears the lock type from all
      tables that were prepared for a lock. I call this function
      when a lock failes.
      
      No test case. One test would add 50 seconds to the
      test suite. Another test requires file mode modifications.
      I added a test script to the bug report. It contains three
      cases for failing locks. All could reproduce a table
      corruption. All are fixed by this patch.
      
      This bug was not lock timeout specific.
      806cd415
    • igor@rurik.mysql.com's avatar
      Fixed bug #19079. · 950214ab
      igor@rurik.mysql.com authored
      The bug caused a reported index corruption in the cases when
      key_cache_block_size was not a multiple of myisam_block_size,
      e.g. when key_cache_block_size=1536 while myisam_block_size=1024.
      950214ab
  3. 18 Apr, 2006 2 commits
  4. 14 Apr, 2006 2 commits
  5. 13 Apr, 2006 5 commits
  6. 12 Apr, 2006 1 commit
    • evgen@moonbone.local's avatar
      Fixed bug#14169: type of group_concat() result changed to blob if tmp_table was · ac54aa2a
      evgen@moonbone.local authored
      used
      
      In a simple queries a result of the GROUP_CONCAT() function was always of 
      varchar type.
      But if length of GROUP_CONCAT() result is greater than 512 chars and temporary
      table is used during select then the result is converted to blob, due to
      policy to not to store fields longer than 512 chars in tmp table as varchar
      fields.
      
      In order to provide consistent behaviour, result of GROUP_CONCAT() now
      will always be converted to blob if it is longer than 512 chars.
      Item_func_group_concat::field_type() is modified accordingly.
      ac54aa2a
  7. 11 Apr, 2006 7 commits
  8. 10 Apr, 2006 4 commits
  9. 08 Apr, 2006 3 commits
  10. 07 Apr, 2006 9 commits