1. 28 Mar, 2007 3 commits
  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. 25 Mar, 2007 1 commit
  4. 23 Mar, 2007 1 commit
  5. 19 Mar, 2007 1 commit
  6. 16 Mar, 2007 2 commits
    • istruewing@chilla.local's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-4.1-engines · 068b237d
      istruewing@chilla.local authored
      into  chilla.local:/home/mydev/mysql-4.1-bug25289
      068b237d
    • istruewing@chilla.local's avatar
      Bug#26231 - select count(*) on myisam table returns wrong value · c33486ff
      istruewing@chilla.local authored
                  when index is used
      
      When the table contained TEXT columns with empty contents
      ('', zero length, but not NULL) _and_ strings starting with
      control characters like tabulator or newline, the empty values
      were not found in a "records in range" estimate. Hence count(*)
      missed these records.
      
      The reason was a different set of search flags used for key
      insert and key range estimation.
      
      I decided to fix the set of flags used in range estimation.
      Otherwise millions of databases around the world would require
      a repair after an upgrade.
      
      The consequence is that the manual must be fixed, which claims
      that TEXT columns are compared with "end space padding". This
      is true for CHAR/VARCHAR but wrong for TEXT. See also bug 21335.
      c33486ff
  7. 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
  8. 14 Mar, 2007 6 commits
  9. 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
  10. 12 Mar, 2007 4 commits
  11. 10 Mar, 2007 1 commit
  12. 09 Mar, 2007 1 commit
  13. 08 Mar, 2007 5 commits
  14. 07 Mar, 2007 5 commits
  15. 05 Mar, 2007 4 commits
  16. 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