1. 04 Aug, 2006 1 commit
  2. 03 Aug, 2006 2 commits
    • petr/cps@mysql.com/owlet.'s avatar
      Fix Bug #18559 "log tables cannot change engine, and · be2ce261
      petr/cps@mysql.com/owlet. authored
                      gets deadlocked when dropping w/ log on"
      
      Log tables rely on concurrent insert machinery to add data.
      This means that log tables are always opened and locked by
      special (artificial) logger threads. Because of this, the thread
      which tries to drop a log table starts to wait for the table
      to be unlocked. Which will happen only if the log table is disabled.
      Alike situation happens if one tries to alter a log table.
      However in addition to the problem above, alter table calls
      check_if_locking_is_allowed() routine for the engine. The
      routine does not allow alter for the log tables. So, alter
      doesn't start waiting forever for logs to be disabled, but 
      returns with an error.
      Another problem is that not all engines could be used for
      the log tables. That's because they need concurrent insert.
      
      In this patch we:
      (1) Explicitly disallow to drop/alter a log table if it
          is currently used by the logger.
      (2) Update MyISAM to support log tables
      (3) Allow to drop log tables/alter log tables if log is
          disabled
      At the same time we (4) Disallow to alter log tables to
      unsupported engine (after this patch CSV and MyISAM are 
      alowed)
      Recommit with review fixes.
      be2ce261
    • petr/cps@mysql.com/owlet.'s avatar
      Fix Bug #20139 Infinite loop after "FLUSH" and "LOCK tabX, general_log" · 7aec1205
      petr/cps@mysql.com/owlet. authored
      Due to incorrect handling of FLUSH TABLES, log tables were marked for flush,
      but not reopened. Later we started to wait for the log table to be closed
      (disabled) after the flush. And as nobody disabled logs in concurrent treads,
      the command lasted forever.
      After internal consultations it was decided to skip logs during FLUSH TABLES.
      The reasoning is that logging is done in the "log device", whatever it is
      which is always active and controlled by FLUSH LOGS. So, to flush logs
      one should use FLUSH LOGS, and not FLUSH TABLES.
      7aec1205
  3. 02 Aug, 2006 1 commit
  4. 28 Jul, 2006 2 commits
  5. 27 Jul, 2006 5 commits
  6. 26 Jul, 2006 14 commits
  7. 25 Jul, 2006 3 commits
  8. 24 Jul, 2006 4 commits
  9. 23 Jul, 2006 2 commits
  10. 22 Jul, 2006 4 commits
  11. 21 Jul, 2006 2 commits