1. 06 Aug, 2007 1 commit
  2. 05 Aug, 2007 3 commits
    • unknown's avatar
      Added test for bug #21281 "Pending write lock is incorrectly removed · 35dbd685
      unknown authored
      when its statement being KILLed". The bug itself was fixed by separate
      patch in 5.0 tree.
      
      
      mysql-test/r/lock_multi.result:
        Added test for bug #21281 "Pending write lock is incorrectly removed
        when its statement being KILLed".
      mysql-test/t/lock_multi.test:
        Added test for bug #21281 "Pending write lock is incorrectly removed
        when its statement being KILLed".
      35dbd685
    • unknown's avatar
      Merge mockturtle.local:/home/dlenev/src/mysql-5.0-bg21281 · 2bdd92cb
      unknown authored
      into  mockturtle.local:/home/dlenev/src/mysql-5.1-bg21281-2
      
      
      mysql-test/t/federated.test:
        Auto merged
      mysys/thr_lock.c:
        Auto merged
      mysql-test/r/federated.result:
        SCCS merged
      2bdd92cb
    • unknown's avatar
      Fix for bug #21281 "Pending write lock is incorrectly removed when its · ca85e964
      unknown authored
      statement being KILLed".
      
      When statement which was trying to obtain write lock on then table and
      which was blocked by existing read lock was killed, concurrent statements
      that were trying to obtain read locks on the same table and that were
      blocked by the presence of this pending write lock were not woken up and
      had to wait until this first read lock goes away.
      
      This problem was caused by the fact that we forgot to wake up threads
      which pending requests could have been satisfied after removing lock
      request for the killed thread.
      
      The patch solves the problem by waking up those threads in such situation.
      
      Test for this bug will be added to 5.1 only as it has much better
      facilities for its implementation. Particularly, by using I_S.PROCESSLIST
      and wait_condition.inc script we can wait until thread will be blocked on
      certain table lock without relying on unconditional sleep (which usage
      increases time needed for test runs and might cause spurious test
      failures on slower platforms).
      
      
      mysys/thr_lock.c:
        After removing lock request from the list of waiting lock requests
        (e.g. when we discover that current thread was killed) we should
        wake up other threads waiting for the same lock which pending
        requests now can be satisfied. To implement this behavior we
        move code responsible for waking up threads which pending requests
        can be satisfied from thr_unlock() to new wake_up_waiters() procedure
        and use it in wait_for_lock() and hr_abort_locks_for_thread().
      ca85e964
  3. 03 Aug, 2007 1 commit
    • unknown's avatar
      Fix for BUG#30123: mysqldump is unable to work with old servers. · 9074842b
      unknown authored
      New server (as of 5.1.21) provides new features:
        - SHOW CREATE TRIGGER;
        - character set information for SHOW TRIGGERS and SHOW CREATE
          EVENT | FUNCTION | PROCEDURE statements.
      Mysqldump uses these features to generate proper dump.
      
      The bug happened when new mysqldump was used to dump older servers.
      The problem was that 5.1.21 new features are not available, so
      mysqldump exited with error code or just crashed.
      
      The fix is to detect if mysqldump has ben run against older server
      and don't use new 5.1.21 functionality in this case. Certainly,
      the dump generated for the older server suffers from the character
      set problems fixed by BUG#16291 and the like.
      
      
      client/mysqldump.c:
        Don't use new server features if they are not available.
      9074842b
  4. 02 Aug, 2007 1 commit
  5. 01 Aug, 2007 5 commits
    • unknown's avatar
      Add a test case for Bug#18287 create federated table always times out, · 9f402516
      unknown authored
       error 1159 ' ' (fixed by the patch for Bug 25679)
      
      
      mysql-test/r/federated.result:
        Update results (Bug#18287)
      mysql-test/t/federated.test:
        Add a test case for Bug#18287 create federated table always times out,
         error 1159 ' '
      9f402516
    • unknown's avatar
      Fix a valgrind warning. For some reason it never popped up before. · 80584169
      unknown authored
      
      sql/sql_class.cc:
        Fix a valgrind warning (row_count_func is used before it was initialized
        in SQLCOM_CALL)
      80584169
    • unknown's avatar
      Fix an unstable test. · 5c682a56
      unknown authored
      
      mysql-test/r/log_tables.result:
        Update results.
      mysql-test/t/log_tables.test:
        Silence a race condition: TRUNCATE code issues mysql_frm_type without
        a metadata lock, and finds no table if hits the moment when
        ALTER is swapping two tables.
      5c682a56
    • unknown's avatar
      Merge bodhi.(none):/opt/local/work/mysql-5.0-runtime · ea978293
      unknown authored
      into  bodhi.(none):/opt/local/work/mysql-5.1-runtime
      
      
      client/mysqldump.c:
        Auto merged
      mysql-test/r/func_time.result:
        Auto merged
      mysql-test/r/mysqldump.result:
        Auto merged
      mysql-test/t/func_time.test:
        Auto merged
      sql/sql_base.cc:
        Auto merged
      sql/sql_table.cc:
        Auto merged
      sql/table.cc:
        Auto merged
      mysql-test/include/mix1.inc:
        Manual merge.
      mysql-test/r/innodb_mysql.result:
        Manual merge.
      ea978293
    • unknown's avatar
      Fix an unstable test. It was reliant on the current time. · ce7cbe73
      unknown authored
      
      mysql-test/r/func_time.result:
        Update results (use fixed datetime values instead of NOW()).
      mysql-test/t/func_time.test:
        Use fixed datetime values instead of NOW(): the test would have a sporadic
        failure when current day changed between two consequtive calls to
        NOW(). The test actually tests FROM_DAYS/TO_DAYS functions, 
        so use of NOW() is not necessary.
      ce7cbe73
  6. 31 Jul, 2007 6 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.1 · 3f0bf2e8
      unknown authored
      into  bodhi.(none):/opt/local/work/mysql-5.1-runtime
      
      
      client/mysqldump.c:
        Auto merged
      mysql-test/r/mysqldump.result:
        Auto merged
      mysql-test/t/disabled.def:
        Auto merged
      mysql-test/t/mysqldump.test:
        Auto merged
      sql/handler.cc:
        Auto merged
      sql/lock.cc:
        Auto merged
      sql/sql_base.cc:
        Auto merged
      sql/sql_lex.cc:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      sql/sql_table.cc:
        Auto merged
      sql/table.cc:
        Auto merged
      sql/table.h:
        Auto merged
      mysql-test/include/mix1.inc:
        Manual merge.
      mysql-test/r/innodb_mysql.result:
        Manual merge.
      3f0bf2e8
    • unknown's avatar
      Post-merge fixes. · f9c94f97
      unknown authored
      
      sql/sql_base.cc:
        Fix an incorrect manual merge.
      f9c94f97
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · c8c5323b
      unknown authored
      into  bodhi.(none):/opt/local/work/mysql-5.0-runtime
      
      
      client/mysqldump.c:
        Auto merged
      mysql-test/r/mysqldump.result:
        Auto merged
      sql/sql_base.cc:
        Auto merged
      sql/table.cc:
        Auto merged
      mysql-test/r/innodb_mysql.result:
        Manual merge.
      mysql-test/t/innodb_mysql.test:
        Manual merge.
      sql/sql_table.cc:
        Manual merge.
      c8c5323b
    • unknown's avatar
      Merge bodhi.(none):/opt/local/work/mysql-5.0-runtime · cbcb6988
      unknown authored
      into  bodhi.(none):/opt/local/work/mysql-5.1-runtime
      
      
      sql/mysql_priv.h:
        Auto merged
      sql/sql_class.h:
        Auto merged
      sql/sql_lex.cc:
        Auto merged
      mysql-test/include/mix1.inc:
        Manual merge.
      mysql-test/r/innodb_mysql.result:
        Manual merge.
      sql/handler.h:
        Manual merge.
      sql/lock.cc:
        Manual merge.
      sql/opt_range.cc:
        Manual merge.
      sql/sql_base.cc:
        Manual merge.
      sql/sql_table.cc:
        Manual merge.
      cbcb6988
    • unknown's avatar
      Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime · 29372b5d
      unknown authored
      into  weblab.(none):/home/marcsql/TREE/mysql-5.1-cleanup
      
      
      sql/log.cc:
        Auto merged
      29372b5d
    • unknown's avatar
      11a492b7
  7. 30 Jul, 2007 5 commits
  8. 29 Jul, 2007 3 commits
  9. 28 Jul, 2007 1 commit
  10. 27 Jul, 2007 14 commits
    • unknown's avatar
      manual merge · 9c3c4817
      unknown authored
      9c3c4817
    • unknown's avatar
      Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime · 52d3ed38
      unknown authored
      into  weblab.(none):/home/marcsql/TREE/mysql-5.1-25422-d
      
      
      client/mysqldump.c:
        Auto merged
      mysql-test/r/log_state.result:
        Auto merged
      mysql-test/r/show_check.result:
        Auto merged
      mysql-test/t/show_check.test:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/share/errmsg.txt:
        Auto merged
      sql/sp.cc:
        Auto merged
      52d3ed38
    • unknown's avatar
      Code review changes · 94620433
      unknown authored
      94620433
    • unknown's avatar
      Fix merge. · 2d612630
      unknown authored
      2d612630
    • unknown's avatar
      Merge ibm.:/home/alik/Documents/MySQL/devel/5.0-rt · ed9bfeb3
      unknown authored
      into  ibm.:/home/alik/Documents/MySQL/devel/5.1-rt-merge
      
      
      mysql-test/r/mysqldump-max.result:
        Auto merged
      mysql-test/r/openssl_1.result:
        Auto merged
      mysql-test/t/show_check.test:
        Auto merged
      sql/sp.cc:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      client/mysqldump.c:
        Manual merge.
      mysql-test/r/mysqldump.result:
        Manual merge + use local.
      ed9bfeb3
    • unknown's avatar
      Fix test so that it will be environment-independent. · da0986d1
      unknown authored
      
      mysql-test/r/mysqldump.result:
        Update result file.
      da0986d1
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime · 1b1715ab
      unknown authored
      into  janus.mylan:/usr/home/serg/Abk/mysql-5.1
      
      1b1715ab
    • unknown's avatar
      Merge adventure.(none):/home/thek/Development/cpp/bug29929/my50-bug29929 · c1fd3178
      unknown authored
      into  adventure.(none):/home/thek/Development/cpp/mysql-5.0-runtime
      
      c1fd3178
    • unknown's avatar
      Merge adventure.(none):/home/thek/Development/cpp/bug29929/my50-bug29929 · 02f3a750
      unknown authored
      into  adventure.(none):/home/thek/Development/cpp/bug29929/my51-bug29929
      
      
      mysql-test/r/sp-prelocking.result:
        Auto merged
      mysql-test/t/sp-prelocking.test:
        Auto merged
      sql/sql_lex.cc:
        Auto merged
      sql/table.cc:
        Auto merged
      sql/table.h:
        SCCS merged
      02f3a750
    • unknown's avatar
      Bug #29929 LOCK TABLES does not pre-lock tables used in triggers of the locked tables · 34695c01
      unknown 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.
      
      
      mysql-test/r/sp-prelocking.result:
        Added test case
      mysql-test/t/sp-prelocking.test:
        Added test case
      sql/sql_lex.cc:
        - Moved some conditional logic out of the table iteration.
        - Added event map values for LOCK TABLE command.
      sql/table.cc:
        - Refactored set_trg_event_tpye into the two simpler functions set_trg_event_map
          and set_trg_event_map as methods for manipulating the table event map.
          The original function was only called from st_lex::set_trg_event_type_for_tables
          so it was possible to move the event map creation logic to this function as
          a loop optimization.
      sql/table.h:
        - Refactored set_trg_event_tpye into the two simpler functions set_trg_event_map
          and set_trg_event_map as methods for manipulating the table event map.
          The original function was only called from st_lex::set_trg_event_type_for_tables
          so it was possible to move the event map creation logic to this function as
          a loop optimization.
      34695c01
    • unknown's avatar
      Fix for BUG#30027: mysqldump does not dump views properly. · 2a846fa2
      unknown 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.
      
      
      client/mysqldump.c:
        1. Switch character_set_results for mysqldump's connection to
        binary before SHOW FIELDS in order to avoid conversion to client
        character set.
        
        2. Dump switch character_set_client statements to UTF8 and back
        for CREATE TABLE statement.
      mysql-test/r/mysqldump.result:
        Update result file.
      mysql-test/t/mysqldump.test:
        Test case for BUG#30027.
      2a846fa2
    • unknown's avatar
      Fix for BUG#28030: test im_instance_conf fails with an assert. · b70262d6
      unknown 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.
      
      
      server-tools/instance-manager/guardian.cc:
        Try to stop mysqld several times if it is still active.
      server-tools/instance-manager/instance.cc:
        Make Instance::kill_mysqld() to return operation status.
      server-tools/instance-manager/instance.h:
        Make Instance::kill_mysqld() to return operation status.
      server-tools/instance-manager/thread_registry.cc:
        Log unregistered thread ids.
      b70262d6
    • unknown's avatar
      Bug #30094 mi_test_all: assertion failure · 9ea7329f
      unknown authored
      updated to keypart_map api
      
      
      storage/myisam/mi_test2.c:
        Bug #30094 mi_test_all: assertion failure
        updated to keypart_map api
        prefix char keys are not supported anymore
      9ea7329f
    • unknown's avatar
      A fix and a test case for Bug#24918 drop table and lock / inconsistent · 0c371edd
      unknown 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.
      
      
      mysql-test/r/innodb_mysql.result:
        Update test results (Bug#24918)
      mysql-test/t/innodb_mysql.test:
        Add a test case for Bug#24918
      sql/handler.h:
        Make handler::external_lock() a protected method. Backport from 5.1 its
        public wrapper handler::ha_external_lock().
        Assert that the handler is not closed if it is still locked.
      sql/lock.cc:
        In mysql_lock_tables only call lock_external() for the list of tables that
        we called store_lock() for. 
        E.g. get_lock_data() does not add non-transactional temporary tables to the
        lock list, so lock_external() should not be called for them.
        
        Use handler::ha_external_lock() instead of handler::external_lock().
        
        Add comments for mysql_lock_remove(), parameterize one strange
        side effect that it has. At least in one place where mysql_lock_remove
        is used, this side effect is not desired (DROP TABLE). The parameter
        will be dropped in 5.1, along with the side effect.
      sql/mysql_priv.h:
        Update declaration of mysql_lock_remove().
      sql/opt_range.cc:
        Deploy handler::ha_external_lock() instead of handler::external_lock()
      sql/sql_base.cc:
        When closing a temporary table, remove the table from the list of LOCKed 
        TABLES of this thread, in case it's there. 
        It's there if it is a transactional temporary table.
        Use a new declaration of mysql_lock_remove().
      sql/sql_class.h:
        Extend the comment for THD::temporary_tables.
      sql/sql_table.cc:
        Deploy handler::ha_external_lock() instead of handler::external_lock()
      0c371edd