1. 28 Mar, 2007 1 commit
  2. 27 Mar, 2007 1 commit
    • istruewing@chilla.local's avatar
      Bug#24985 - UTF8 ENUM primary key on MEMORY using BTREE · 8934e4f3
      istruewing@chilla.local authored
                  causes incorrect duplicate entries
      
      Keys for BTREE indexes on ENUM and SET columns of MEMORY tables
      with character set UTF8 were computed incorrectly. Many
      different column values got the same key value.
      
      Apart of possible performance problems, it made unique indexes
      of this type unusable because it rejected many different
      values as duplicates.
      
      The problem was that multibyte character detection was tried
      on the internal numeric column value. Many values were not
      identified as characters. Their key value became blank filled.
      
      Thanks to Alexander Barkov and Ramil Kalimullin for the patch,
      which sets the character set of ENUM and SET key segments to
      the pseudo binary character set.
      8934e4f3
  3. 23 Mar, 2007 1 commit
  4. 19 Mar, 2007 1 commit
  5. 16 Mar, 2007 1 commit
  6. 15 Mar, 2007 2 commits
    • dlenev@mockturtle.local's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-4.1 · e25ea78f
      dlenev@mockturtle.local authored
      into  mockturtle.local:/home/dlenev/src/mysql-4.1-merge
      e25ea78f
    • dlenev@mockturtle.local's avatar
      Fix for bug #25966 "2MB per second endless memory consumption after LOCK · f2cb6641
      dlenev@mockturtle.local authored
      TABLE ... WRITE".
      
      CPU hogging occured when connection which had to wait for table lock was
      serviced by thread which previously serviced connection that was killed
      (note that connections can reuse threads if thread cache is enabled).
      One possible scenario which exposed this problem was when thread which
      provided binlog dump to replication slave was implicitly/automatically
      killed when the same slave reconnected and started pulling data through
      different thread/connection.
      In 5.* versions memory hogging was added to CPU hogging. Moreover in
      those versions the problem also occured when one killed particular query
      in connection (using KILL QUERY) and later this connection had to wait for
      some table lock.
      
      This problem was caused by the fact that thread-specific mysys_var::abort
      variable, which indicates that waiting operations on mysys layer should
      be aborted (this includes waiting for table locks), was set by kill
      operation but was never reset back. So this value was "inherited" by the
      following statements or even other connections (which reused the same
      physical thread). Such discrepancy between this variable and THD::killed
      flag broke logic on SQL-layer and caused CPU and memory hogging.
      
      This patch tries to fix this problem by properly resetting this member.
      
      There is no test-case associated with this patch since it is hard to test
      for memory/CPU hogging conditions in our test-suite.
      f2cb6641
  7. 14 Mar, 2007 6 commits
  8. 13 Mar, 2007 2 commits
    • svoj@mysql.com/april.(none)'s avatar
      BUG#26881 - Large MERGE tables report incorrect specification when no · cb132bea
      svoj@mysql.com/april.(none) authored
                  differences in tables
      Certain merge tables were wrongly reported as having incorrect definition:
      - Some fields that are 1 byte long (e.g. TINYINT, CHAR(1)), might
        be internally casted (in certain cases) to a different type on a
        storage engine layer. (affects 4.1 and up)
      - If tables in a merge (and a MERGE table itself) had short VARCHAR column (less
        than 4 bytes) and at least one (but not all) tables were ALTER'ed (even to an
        identical table: ALTER TABLE xxx ENGINE=yyy), table definitions went ouf of
        sync. (affects 4.1 only)
      
      This is fixed by relaxing a check for underlying conformance and setting
      field type to FIELD_TYPE_STRING in case varchar is shorter than 4
      when a table is created.
      cb132bea
    • svoj@mysql.com/april.(none)'s avatar
      Merge mysql.com:/home/svoj/devel/bk/mysql-4.1 · 576db4f4
      svoj@mysql.com/april.(none) authored
      into  mysql.com:/home/svoj/devel/mysql/BUG26881/mysql-4.1-engines
      576db4f4
  9. 12 Mar, 2007 4 commits
  10. 10 Mar, 2007 1 commit
  11. 09 Mar, 2007 1 commit
  12. 08 Mar, 2007 5 commits
  13. 07 Mar, 2007 5 commits
  14. 05 Mar, 2007 4 commits
  15. 03 Mar, 2007 1 commit
    • evgen@sunlight.local's avatar
      Bug#25126: Wrongly resolved field leads to a crash. · 629c1231
      evgen@sunlight.local authored
      When the ORDER BY clause gets fixed it's allowed to search in the current
      item_list in order to find aliased fields and expressions. This is ok for a
      SELECT but wrong for an UPDATE statement. If the ORDER BY clause will
      contain a non-existing field which is mentioned in the UPDATE set list
      then the server will crash due to using of non-existing (0x0) field.
      
      When an Item_field is getting fixed it's allowed to search item list for
      aliased expressions and fields only for selects.
      629c1231
  16. 02 Mar, 2007 4 commits