An error occurred fetching the project authors.
  1. 26 Nov, 2007 1 commit
    • kaa@polly.(none)'s avatar
      Fix for bug #28837: MyISAM storage engine error (134) doing delete with · 8fdd9087
      kaa@polly.(none) authored
      self-join
      
      When doing DELETE with self-join on a MyISAM or MERGE table, it could
      happen that a record being retrieved in join_read_next_same() has
      already been deleted by previous iterations. That caused the engine's
      index_next_same() method to fail with HA_ERR_RECORD_DELETED error and
      the whole DELETE query to be aborted with an error.
      
      Fixed by suppressing the HA_ERR_RECORD_DELETED error in
      hy_myisam::index_next_same() and ha_myisammrg::index_next_same(). Since
      HA_ERR_RECORD_DELETED can only be returned by MyISAM, there is no point
      in filtering this error in the SQL layer.
      8fdd9087
  2. 06 Nov, 2007 1 commit
    • istruewing@stella.local's avatar
      Bug#4692 - DISABLE/ENABLE KEYS waste a space · 30b409bd
      istruewing@stella.local authored
      Disabling and enabling indexes on a non-empty table grows the
      index file.
      
      Disabling indexes just sets a flag per non-unique index and does not
      free the index blocks of the affected indexes. Re-enabling indexes
      creates new indexes with new blocks. The old blocks remain unused
      in the index file.
      
      Fixed by dropping and re-creating all indexes if non-empty disabled
      indexes exist when enabling indexes. Dropping all indexes resets
      the internal end-of-file marker to the end of the index file header.
      It also clears the root block pointers of every index and clears the
      deleted blocks chains. This way all blocks are declared as free.
      30b409bd
  3. 29 Aug, 2007 1 commit
  4. 22 May, 2007 1 commit
  5. 16 Mar, 2007 1 commit
    • 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
  6. 24 Jan, 2007 2 commits
  7. 17 Jan, 2007 3 commits
  8. 05 Jan, 2007 1 commit
  9. 20 Dec, 2006 1 commit
  10. 19 Dec, 2006 1 commit
  11. 14 Dec, 2006 3 commits
  12. 09 Oct, 2006 1 commit
    • istruewing@chilla.local's avatar
      Bug#8283 - OPTIMIZE TABLE causes data loss · 5f08a831
      istruewing@chilla.local authored
      OPTIMIZE TABLE with myisam_repair_threads > 1 performs a non-quick 
      parallel repair. This means that it does not only rebuild all 
      indexes, but also the data file.
      
      Non-quick parallel repair works so that there is one thread per 
      index. The first of the threads rebuilds also the new data file.
      
      The problem was that all threads shared the read io cache on the
      old data file. If there were holes (deleted records) in the table,
      the first thread skipped them, writing only contiguous, non-deleted
      records to the new data file. Then it built the new index so that
      its entries pointed to the correct record positions. But the other
      threads didn't know the new record positions, but put the positions
      from the old data file into the index.
      
      The new design is so that there is a shared io cache which is filled
      by the first thread (the data file writer) with the new contiguous
      records and read by the other threads. Now they know the new record
      positions.
      
      Another problem was that for the parallel repair of compressed
      tables a common bit_buff and rec_buff was used. I changed it so
      that thread specific buffers are used for parallel repair.
      
      A similar problem existed for checksum calculation. I made this
      multi-thread safe too.
      5f08a831
  13. 07 Sep, 2006 1 commit
  14. 29 Aug, 2006 1 commit
  15. 25 Aug, 2006 1 commit
  16. 10 Aug, 2006 1 commit
  17. 10 Jul, 2006 2 commits
  18. 06 Jul, 2006 1 commit
    • acurtis@xiphis.org's avatar
      Bug#8706 · 86132d5d
      acurtis@xiphis.org authored
        "temporary table with data directory option fails"
        myisam should not use user-specified table name when creating
        temporary tables and use generated connection specific real name.
        Test included.
      86132d5d
  19. 21 Jun, 2006 1 commit
    • svoj@may.pils.ru's avatar
      BUG#20357 - Got error 124 from storage engine using MIN and MAX · 8b98be28
      svoj@may.pils.ru authored
                  functions in queries
      
      Using MAX()/MIN() on table with disabled indexes (by ALTER TABLE)
      results in error 124 (wrong index) from storage engine.
      
      The problem was that optimizer use disabled index to optimize
      MAX()/MIN(). Normally it must skip disabled index and perform
      table scan.
      
      This patch skips disabled indexes for min/max optimization.
      8b98be28
  20. 19 Jun, 2006 1 commit
    • svoj@may.pils.ru's avatar
      BUG#18036 - update of table joined to self reports table as crashed · 37cdb0fb
      svoj@may.pils.ru authored
      Certain updates of table joined to self results in unexpected
      behavior.
      
      The problem was that record cache was mistakenly enabled for
      self-joined table updates. Normally record cache must be disabled
      for such updates.
      
      Fixed wrong condition in code that determines whether to use
      record cache for self-joined table updates.
      
      Only MyISAM tables were affected.
      37cdb0fb
  21. 10 Mar, 2006 1 commit
    • ingo@mysql.com's avatar
      Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX · d0c6eb88
      ingo@mysql.com authored
      For "count(*) while index_column = value" an index read
      is done. It consists of an index scan and retrieval of
      each key.
      
      For efficiency reasons the index scan stores the key in
      the special buffer 'lastkey2' once only. At the first 
      iteration it notes this fact with the flag 
      HA_STATE_RNEXT_SAME in 'info->update'.
      
      For efficiency reasons, the key retrieval for blobs
      does not allocate a new buffer, but uses 'lastkey2'...
      
      Now I clear the HA_STATE_RNEXT_SAME flag whenever the 
      buffer has been polluted. In this case, the index scan
      copies the key value again (and sets the flag again).
      d0c6eb88
  22. 24 Jan, 2006 1 commit
  23. 07 Nov, 2005 1 commit
  24. 28 Oct, 2005 1 commit
  25. 21 Oct, 2005 1 commit
  26. 12 Oct, 2005 1 commit
  27. 20 Sep, 2005 1 commit
  28. 29 Aug, 2005 2 commits
  29. 28 Jul, 2005 1 commit
  30. 27 Jul, 2005 1 commit
  31. 13 May, 2005 2 commits
  32. 08 Apr, 2005 1 commit