1. 31 May, 2006 1 commit
  2. 29 May, 2006 1 commit
    • unknown's avatar
      Bug#19815 - CREATE/RENAME/DROP DATABASE can deadlock on a global read lock · 4f8407b6
      unknown authored
      The order of acquiring LOCK_mysql_create_db
      and wait_if_global_read_lock() was wrong. It could happen
      that a thread held LOCK_mysql_create_db while waiting for
      the global read lock to be released. The thread with the
      global read lock could try to administrate a database too.
      It would first try to lock LOCK_mysql_create_db and hang...
      
      The check if the current thread has the global read lock
      is done in wait_if_global_read_lock(), which could not be
      reached because of the hang in LOCK_mysql_create_db.
      
      Now I exchanged the order of acquiring LOCK_mysql_create_db
      and wait_if_global_read_lock(). This makes 
      wait_if_global_read_lock() fail with an error message for
      the thread with the global read lock. No deadlock happens.
      
      
      mysql-test/r/lock_multi.result:
        Bug#19815 - CREATE/RENAME/DROP DATABASE can deadlock on a global read lock
        The test result
      mysql-test/t/lock_multi.test:
        Bug#19815 - CREATE/RENAME/DROP DATABASE can deadlock on a global read lock
        The test case
      sql/sql_db.cc:
        Bug#19815 - CREATE/RENAME/DROP DATABASE can deadlock on a global read lock
        Exchanged the order of acquiring LOCK_mysql_create_db
        and wait_if_global_read_lock().
      4f8407b6
  3. 18 May, 2006 2 commits
  4. 17 May, 2006 4 commits
    • unknown's avatar
      Fixed bug#19077: A nested materialized derived table is used before being populated. · 1c6beaee
      unknown authored
      The convert_constant_item() function converts constant items to ints on
      prepare phase to optimize execution speed. In this case it tries to evaluate
      subselect which contains a derived table and is contained in a derived table. 
      All derived tables are filled only after all derived tables are prepared.
      So evaluation of subselect with derived table at the prepare phase will
      return a wrong result.
      
      A new flag with_subselect is added to the Item class. It indicates that
      expression which this item represents is a subselect or contains a subselect.
      It is set to 0 by default. It is set to 1 in the Item_subselect constructor
      for subselects.
      For Item_func and Item_cond derived classes it is set after fixing any argument
      in Item_func::fix_fields() and Item_cond::fix_fields accordingly.
      The convert_constant_item() function now doesn't convert a constant item
      if the with_subselect flag set in it. 
      
      
      mysql-test/t/view.test:
        Added test case for bug#19077: A nested materialized derived table is used before being populated.
      mysql-test/t/subselect.test:
        Added test case for bug#19077: A nested materialized derived table is used before being populated.
      mysql-test/r/view.result:
        Added test case for bug#19077: A nested materialized derived table is used before being populated.
      mysql-test/r/subselect.result:
        Added test case for bug#19077: A nested materialized derived table is used before being populated.
      sql/item_subselect.cc:
        Fixed bug#19077: A nested materialized derived table is used before being populated.
        The Item_subselect class constructor sets new with_subselect flag to 1.
      sql/item_func.cc:
        Fixed bug#19077: A nested materialized derived table is used before being populated.
        
        The Item_func::fix_fields() sets new with_subselect flag from with_subselect flags of its arguments.
      sql/item_cmpfunc.cc:
        Fixed bug#19077: A nested materialized derived table is used before being populated.
        The convert_constant_item() function now doesn't convert a constant item
        with the with_subselect flag set.
        The Item_cond::fix_fields() sets new with_subselect flag from with_subselect flags of its arguments.
      sql/item.cc:
        Fixed bug#19077: A nested materialized derived table is used before being populated.
        Set new with_subselect flag to default value - 0 in the Item constructor.
      sql/item.h:
        Fixed bug#19077: A nested materialized derived table is used before being populated.
        A new flag with_subselect is added to the Item class. It indicates that
        expression which this item represents is a subselect or contains a subselect.
        It is set to 0 by default.
      1c6beaee
    • unknown's avatar
    • unknown's avatar
      Include "config.h" (if it exists) in all yaSSL files via their "runtime.hpp". · 8d4cbe39
      unknown authored
      Fixes bug#19040 "yaSSL does not compile on AIX".
      
      
      extra/yassl/taocrypt/include/runtime.hpp:
        Include "config.h" (if it exists) in all yaSSL files. This is needed to ensure the same 
        configure settings are used for yaSSL as for the other modules linked together.
        Example: the settings for "large file" on AIX.
        Fixes bug#19040 "yaSSL does not compile on AIX".
      8d4cbe39
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-5.0 · 5fb23aa3
      unknown authored
      into  neptunus.(none):/home/msvensson/mysql/bug18818/my50-bug18818
      
      
      5fb23aa3
  5. 16 May, 2006 20 commits
  6. 15 May, 2006 12 commits