1. 31 Jul, 2007 5 commits
  2. 30 Jul, 2007 5 commits
  3. 29 Jul, 2007 3 commits
  4. 28 Jul, 2007 1 commit
  5. 27 Jul, 2007 18 commits
    • malff/marcsql@weblab.(none)'s avatar
      manual merge · db7af023
      malff/marcsql@weblab.(none) authored
      db7af023
    • malff/marcsql@weblab.(none)'s avatar
      Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime · 32668a2e
      malff/marcsql@weblab.(none) authored
      into  weblab.(none):/home/marcsql/TREE/mysql-5.1-25422-d
      32668a2e
    • malff/marcsql@weblab.(none)'s avatar
      Code review changes · ac7b17ea
      malff/marcsql@weblab.(none) authored
      ac7b17ea
    • anozdrin/alik@ibm.'s avatar
      Fix merge. · 47345bd0
      anozdrin/alik@ibm. authored
      47345bd0
    • anozdrin/alik@ibm.'s avatar
      Merge ibm.:/home/alik/Documents/MySQL/devel/5.0-rt · af9e5756
      anozdrin/alik@ibm. authored
      into  ibm.:/home/alik/Documents/MySQL/devel/5.1-rt-merge
      af9e5756
    • anozdrin/alik@ibm.'s avatar
    • serg@janus.mylan's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime · 0967e887
      serg@janus.mylan authored
      into  janus.mylan:/usr/home/serg/Abk/mysql-5.1
      0967e887
    • thek@adventure.(none)'s avatar
      Merge adventure.(none):/home/thek/Development/cpp/bug29929/my50-bug29929 · 8f5fad2c
      thek@adventure.(none) authored
      into  adventure.(none):/home/thek/Development/cpp/mysql-5.0-runtime
      8f5fad2c
    • thek@adventure.(none)'s avatar
      Merge adventure.(none):/home/thek/Development/cpp/bug29929/my50-bug29929 · 5ab7da91
      thek@adventure.(none) authored
      into  adventure.(none):/home/thek/Development/cpp/bug29929/my51-bug29929
      5ab7da91
    • thek@adventure.(none)'s avatar
      Bug #29929 LOCK TABLES does not pre-lock tables used in triggers of the locked tables · 889b4ebc
      thek@adventure.(none) authored
      When a table was explicitly locked with LOCK TABLES no associated
      tables from any related trigger on the subject table were locked.
      As a result of this the user could experience unexpected locking
      behavior and statement failures similar to "failed: 1100: Table'xx'
      was not locked with LOCK TABLES".
      
      This patch fixes this problem by making sure triggers are
      pre-loaded on any statement if the subject table was explicitly
      locked with LOCK TABLES.
      889b4ebc
    • anozdrin/alik@ibm.'s avatar
      Fix for BUG#30027: mysqldump does not dump views properly. · e73f004f
      anozdrin/alik@ibm. authored
      mysqldump generates view defitions in two stages:
      
        - dump CREATE TABLE statements for the temporary tables.  For each view a
          temporary table, that has the same structure as the view is created.
      
        - dump DROP TABLE statements for the temporary tables and CREATE VIEW
          statements for the view.
      
      This approach is required because views can have dependencies on each other
      (a view can use other views). So, they should be created in the particular
      order. mysqldump however is not smart enough, so in order to resolve
      dependencies it creates temporary tables first of all.
      
      The problem was that mysqldump might have generated incorrect dump for the
      temporary table when a view has non-ASCII column name. That happened when
      default-character-set is not utf8.
      
      The fix is to:
      
        1. Switch character_set_client for the mysqldump's connection to binary
           before issuing SHOW FIELDS statement in order to avoid conversion.
          
        2. Dump switch character_set_client statements to UTF8 and back for
           CREATE TABLE statement that is issued to create temporary table.
      e73f004f
    • anozdrin/alik@ibm.'s avatar
      Fix for BUG#28030: test im_instance_conf fails with an assert. · bbb1b64b
      anozdrin/alik@ibm. authored
      The problem was a race condition on shutdown -- when IM got shutdown
      request while a guarded mysqld is starting. In this case the Guardian
      thread tried to stop the mysqld, but might fail if the mysqld hadn't
      created pid-file so far. When this happened, the mysqld-monitor thread
      didn't stop, so the assert in Thread_registry happened.
      
      The fix is to make several attempts to stop mysqld if it is active.
      bbb1b64b
    • serg@janus.mylan's avatar
      Bug #30094 mi_test_all: assertion failure · 42cb8ae7
      serg@janus.mylan authored
      updated to keypart_map api
      42cb8ae7
    • kostja@bodhi.(none)'s avatar
      A fix and a test case for Bug#24918 drop table and lock / inconsistent · 11c57540
      kostja@bodhi.(none) authored
      between perm and temp tables. Review fixes.
      
      The original bug report complains that if we locked a temporary table
      with LOCK TABLES statement, we would not leave LOCK TABLES mode
      when this temporary table is dropped.
      
      Additionally, the bug was escalated when it was discovered than
      when a temporary transactional table that was previously
      locked with LOCK TABLES statement was dropped, futher actions with
      this table, such as UNLOCK TABLES, would lead to a crash.
      
      The problem originates from incomplete support of transactional temporary
      tables. When we added calls to handler::store_lock()/handler::external_lock()
      to operations that work with such tables, we only covered the normal
      server code flow and did not cover LOCK TABLES mode. 
      In LOCK TABLES mode, ::external_lock(LOCK) would sometimes be called without
      matching ::external_lock(UNLOCK), e.g. when a transactional temporary table
      was dropped. Additionally, this table would be left in the list of LOCKed 
      TABLES.
      
      The patch aims to address this inadequacy. Now, whenever an instance
      of 'handler' is destroyed, we assert that it was priorly
      external_lock(UNLOCK)-ed. All the places that violate this assert
      were fixed.
      
      This patch introduces no changes in behavior -- the discrepancy in
      behavior will be fixed when we start calling ::store_lock()/::external_lock()
      for all tables, regardless whether they are transactional or not, 
      temporary or not.
      11c57540
    • svoj@june.mysql.com's avatar
      Merge mysql.com:/home/svoj/devel/mysql/BUG29957/mysql-5.0-engines · 21b707e4
      svoj@june.mysql.com authored
      into  mysql.com:/home/svoj/devel/mysql/BUG29957/mysql-5.1-engines
      21b707e4
    • svoj@june.mysql.com's avatar
      Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0-engines · 81905ee1
      svoj@june.mysql.com authored
      into  mysql.com:/home/svoj/devel/mysql/BUG29957/mysql-5.0-engines
      81905ee1
    • svoj@mysql.com/june.mysql.com's avatar
      BUG#29957 - alter_table.test fails · 9d1bfec2
      svoj@mysql.com/june.mysql.com authored
      INSERT/DELETE/UPDATE followed by ALTER TABLE within LOCK TABLES
      may cause table corruption on Windows.
      
      That happens because ALTER TABLE writes outdated shared state
      info into index file.
      
      Fixed by removing obsolete workaround.
      
      Affects MyISAM tables on Windows only.
      9d1bfec2
    • malff/marcsql@weblab.(none)'s avatar
      WL#3984 (Revise locking of mysql.general_log and mysql.slow_log) · c7bbd891
      malff/marcsql@weblab.(none) authored
      Bug#25422 (Hang with log tables)
      Bug 17876 (Truncating mysql.slow_log in a SP after using cursor locks the
                thread)
      Bug 23044 (Warnings on flush of a log table)
      Bug 29129 (Resetting general_log while the GLOBAL READ LOCK is set causes
                 a deadlock)
      
      Prior to this fix, the server would hang when performing concurrent
      ALTER TABLE or TRUNCATE TABLE statements against the LOG TABLES,
      which are mysql.general_log and mysql.slow_log.
      
      The root cause traces to the following code:
      in sql_base.cc, open_table()
        if (table->in_use != thd)
        {
          /* wait_for_condition will unlock LOCK_open for us */
          wait_for_condition(thd, &LOCK_open, &COND_refresh);
        }
      The problem with this code is that the current implementation of the
      LOGGER creates 'fake' THD objects, like
      - Log_to_csv_event_handler::general_log_thd
      - Log_to_csv_event_handler::slow_log_thd
      which are not associated to a real thread running in the server,
      so that waiting for these non-existing threads to release table locks
      cause the dead lock.
      
      In general, the design of Log_to_csv_event_handler does not fit into the
      general architecture of the server, so that the concept of general_log_thd
      and slow_log_thd has to be abandoned:
      - this implementation does not work with table locking
      - it will not work with commands like SHOW PROCESSLIST
      - having the log tables always opened does not integrate well with DDL
      operations / FLUSH TABLES / SET GLOBAL READ_ONLY
      
      With this patch, the fundamental design of the LOGGER has been changed to:
      - always open and close a log table when writing a log
      - remove totally the usage of fake THD objects
      - clarify how locking of log tables is implemented in general.
      
      See WL#3984 for details related to the new locking design.
      
      Additional changes (misc bugs exposed and fixed):
      
      1)
      
      mysqldump which would ignore some tables in dump_all_tables_in_db(),
       but forget to ignore the same in dump_all_views_in_db().
      
      2)
      
      mysqldump would also issue an empty "LOCK TABLE" command when all the tables
      to lock are to be ignored (numrows == 0), instead of not issuing the query.
      
      3)
      
      Internal errors handlers could intercept errors but not warnings
      (see sql_error.cc).
      
      4)
      
      Implementing a nested call to open tables, for the performance schema tables,
      exposed an existing bug in remove_table_from_cache(), which would perform:
        in_use->some_tables_deleted=1;
      against another thread, without any consideration about thread locking.
      This call inside remove_table_from_cache() was not required anyway,
      since calling mysql_lock_abort() takes care of aborting -- cleanly -- threads
      that might hold a lock on a table.
      This line (in_use->some_tables_deleted=1) has been removed.
      c7bbd891
  6. 26 Jul, 2007 8 commits