1. 23 Jul, 2007 1 commit
  2. 21 Jul, 2007 1 commit
  3. 20 Jul, 2007 2 commits
  4. 19 Jul, 2007 11 commits
    • unknown's avatar
      Merge gleb.loc:/home/uchum/work/bk/5.0 · db31d3c9
      unknown authored
      into  gleb.loc:/home/uchum/work/bk/5.0-opt
      
      
      sql/set_var.cc:
        Auto merged
      sql/sql_class.h:
        Auto merged
      db31d3c9
    • unknown's avatar
      Bug#29898: Item_date_typecast::val_int doesn't reset the null_value flag. · a131428f
      unknown authored
      The Item_date_typecast::val_int function doesn't reset null_value flag.
      This makes all values that follows the first null value to be treated as nulls
      and led to a wrong result.
      
      Now the Item_date_typecast::val_int function correctly sets the null_value flag
      for both null and non-null values.
      
      
      mysql-test/t/cast.test:
        Added a test case for the bug#29898:  Item_date_typecast::val_int doesn't reset
        the null_value flag.
      mysql-test/r/cast.result:
        Added a test case for the bug#29898:  Item_date_typecast::val_int doesn't reset
        the null_value flag.
      sql/item_timefunc.cc:
        Bug#29898: Item_date_typecast::val_int doesn't reset the null_value flag.
        Now the Item_date_typecast::val_int function correctly sets the null_value flag
        for both null and non-null values.
      a131428f
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · d0020607
      unknown authored
      into  moonbone.local:/mnt/gentoo64/work/29850-bug-5.0-opt-mysql
      
      
      d0020607
    • unknown's avatar
      Bug#29850: Wrong charset of GROUP_CONCAT result when the select employs · 7f6a8164
      unknown authored
      a temporary table.
      
      The result string of the Item_func_group_concat wasn't initialized in the 
      copying constructor of the Item_func_group_concat class. This led to a
      wrong charset of GROUP_CONCAT result when the select employs a temporary
      table.
      
      The copying constructor of the Item_func_group_concat class now correctly
      initializes the charset of the result string.
      
      
      mysql-test/t/func_gconcat.test:
        Added a test case for the bug#29850: Wrong charset of the GROUP_CONCAT result
        when the select employs a temporary table.
      mysql-test/r/func_gconcat.result:
        Added a test case for the bug#29850: Wrong charset of the GROUP_CONCAT result
        when the select employs a temporary table.
      sql/item_sum.cc:
        Bug#29850: Wrong charset of GROUP_CONCAT result when the select employs
        a temporary table.
        The copying constructor of the Item_func_group_concat class now correctly
        initializes the charset of the result string.
      7f6a8164
    • unknown's avatar
      Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 248c5e24
      unknown authored
      into  mysql.com:/home/hf/work/29687/my50-29687
      
      
      248c5e24
    • unknown's avatar
      Merge bk@192.168.21.1:mysql-5.0-opt · 02999636
      unknown authored
      into  mysql.com:/home/hf/work/29687/my50-29687
      
      
      02999636
    • unknown's avatar
      Merge bk-internal.mysql.com:/data0/bk/mysql-4.1-maint · 8d592e95
      unknown authored
      into  bk-internal.mysql.com:/data0/bk/tsmith-tmp/mysql-5.0-maint
      
      
      8d592e95
    • unknown's avatar
      Rename all references to 'Delayed_insert' instances from 'tmp' to 'di' · 62eb5f17
      unknown authored
      for consistency.
      
      
      62eb5f17
    • unknown's avatar
      A fix for Bug#29431 killing an insert delayed thread causes crash · e81e55e7
      unknown authored
      No test case, since the bug requires a stress case with 30 INSERT DELAYED
      threads and 1 killer thread to repeat. The patch is verified
      manually.
      Review fixes.
      
      The server that is running DELAYED inserts would deadlock itself
      or crash under high load if some of the delayed threads were KILLed
      in the meanwhile.
      
      The fix is to change internal lock acquisition order of delayed inserts
      subsystem and to ensure that
      Delayed_insert::table_list::db does not point to volatile memory in some 
      cases.
      For details, please see a comment for sql_insert.cc.
      
      
      sql/sql_insert.cc:
        A fix for Bug#29431 killing an insert delayed thread causes crash
        
        1) The deadlock was caused by different lock acquisition order
        between delayed_get_table and handle_delayed_insert.
        
        delayed_get_table would:
        - acquire LOCK_delayed_create
        - create a new Delayed_insert instance
        - acquire instance mutex (di->mutex)
        - "lock the instance in memory" by 
        increasing di->locked_in_memory variable
        - start the delayed thread
        - release di->mutex
        - let the delayed thread open the delayed table
        - discover that the delayed thread was killed
        - try to unlock() the delayed insert instance in memory
        - in Delayed_insert::unlock() do
         * lock LOCK_delayed_insert
         * decrease locks_in_memory and discover it's 0
         * attempt to lock di->mutex to broadcast di->cond condition <-- deadlock
         here
        
        Meanwhile, the delayed thread would
         * lock di->mutex
         * open the table
         * get killed
         * not notice that and attempt to lock LOCK_delayed_insert
        to register itself in the delayed insert list <-- deadlock here.
        
        Simply put, delayed_get_table used to lock LOCK_delayed_insert and then 
        di->mutex, and handle_delayed_insert would lock di->mutex and then 
        LOCK_delayed_insert.
        
        Fixed by moving registration in the list of delayed insert threads from 
        handle_delayed_insert to delayed_get_table - so that now
        handle_delayed_insert doesn't need to acquire LOCK_delayed_insert mutex.
        
        
        2) di->table_list.db was copied by-pointer from table_list.db of the first
        producer -- the one who initiated creation of the delayed insert thread.
        This producer might be long gone when the member is needed
        (handle_delayed_insert:open_ltable),
        e.g. by having been killed with KILL CONNECTION statement.
        Fixed by using a pointer to the consumer's deep copy of THD::db.
        
        3) In find_handler, we shouldn't assume that Delayed_insert object
        already (or still) has a table opened all the time it is
        present in the delayed insert list. E.g. it's not the case
        when Delayed_insert decided to terminate, closed the table, but haven't
        yet unregistered from the list (see the end of handle_delayed_insert).
      e81e55e7
    • unknown's avatar
      Merge gleb.loc:/home/uchum/work/bk/5.0 · c865b225
      unknown authored
      into  gleb.loc:/home/uchum/work/bk/5.0-opt
      
      
      sql/ha_myisam.cc:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      c865b225
    • unknown's avatar
      Merge gleb.loc:/home/uchum/work/bk/5.0-opt-28524 · 8b59beae
      unknown authored
      into  gleb.loc:/home/uchum/work/bk/5.0-opt
      
      
      8b59beae
  5. 18 Jul, 2007 6 commits
    • unknown's avatar
      Fixed bug #28524. · 2bfe84d4
      unknown authored
      For each view the mysqldump utility creates a temporary table
      with the same name and the same columns as the view 
      in order to satisfy views that depend on this view.
      After the creation of all tables, mysqldump drops all
      temporary tables and creates actual views.
      However, --skip-add-drop-table and --compact flags disable
      DROP TABLE statements for those temporary tables. Thus, it was
      impossible to create the views because of existence of the
      temporary tables with the same names.
      
      
      client/mysqldump.c:
        Fixed bug #28524.
        The mysqldump utility has been modified to unconditionally drop
        temporary tables before the creation of views.
      mysql-test/t/mysqldump.test:
        Updated test case for bug #28524 and updated result of previous tests.
      mysql-test/r/mysqldump.result:
        Updated test case for bug #28524 and updated result of previous tests.
      2bfe84d4
    • unknown's avatar
      Add a test case for Bug#22427 create table if not exists + stored · 6981af6f
      unknown authored
      function results in inconsistent behavior.
      
      The bug itself was fixed by the patch for bug 20662.
      
      
      mysql-test/r/sp-prelocking.result:
        Update results (Bug#22427)
      mysql-test/t/sp-prelocking.test:
        Add a test case for Bug#22427 create table if not exists + stored 
        function results in inconsistent behavior
      6981af6f
    • unknown's avatar
      Bug #29325: create table overwrites .MYD file of other · a266c16d
      unknown authored
      table (datadir)
      Set errno when retunring an error in my_create_with_symlink.
      
      
      mysys/my_symlink2.c:
        Bug #29325: set errno when retunring 
        an error in my_create_with_symlink
      a266c16d
    • unknown's avatar
      A fix and a test case for Bug#26104 Bug on foreign key class constructor. · c0277a11
      unknown authored
      Fix the typo in the constructor. Cover a semantic check that previously
      never worked with a test.
      
      
      mysql-test/r/create.result:
        Update results (Bug#26104)
      mysql-test/r/innodb.result:
        Update results.
      mysql-test/t/create.test:
        Add a test case for Bug#26104 Bug on foreign key class constructor
      mysql-test/t/innodb.test:
        Return a new error number (MySQL error instead of internal InnoDB error).
      sql/sql_class.h:
        A fix for Bug#26104 Bug on foreign key class constructor -- fix
        the typo in the constructor
      c0277a11
    • unknown's avatar
      Add a test case for Bug#27248 Triggers: error if insert affects temporary · 5f462f96
      unknown authored
      table.
      The bug itself is yet another manifestation of Bug 26141.
      
      
      mysql-test/r/trigger.result:
        Update results.
      mysql-test/t/trigger.test:
        Add a test case for Bug#27248 Triggers: error if insert affects temporary
        table
      5f462f96
    • unknown's avatar
      Mark deadcode for gcov · 06b446da
      unknown authored
      06b446da
  6. 17 Jul, 2007 9 commits
  7. 16 Jul, 2007 6 commits
  8. 15 Jul, 2007 4 commits
    • unknown's avatar
      item_cmpfunc.cc: · 56a65d7a
      unknown authored
        A typo fixed.
      
      
      sql/item_cmpfunc.cc:
        A typo fixed.
      56a65d7a
    • unknown's avatar
      item_cmpfunc.cc: · 3e925554
      unknown authored
        Fixed compiler warning.
      
      
      sql/item_cmpfunc.cc:
        Fixed compiler warning.
      3e925554
    • unknown's avatar
      item_cmpfunc.cc: · 16135c7d
      unknown authored
        A comment changed.
      
      
      sql/item_cmpfunc.cc:
        A comment changed.
      16135c7d
    • unknown's avatar
      Extended fix for the bug#29555. · 6e078ff5
      unknown authored
      The get_time_value function is added. It is used to obtain TIME values both
      from items the can return time as an integer and from items that can return
      time only as a string.
      The Arg_comparator::compare_datetime function now uses pointer to a getter
      function to obtain values to compare. Now this function is also used for
      comparison of TIME values.
      The get_value_func variable is added to the Arg_comparator class.
      It points to a getter function for the DATE/DATETIME/TIME comparator.
      
      
      mysql-test/t/type_time.test:
        Extended test case for the bug#29555.
      mysql-test/r/type_time.result:
        Extended test case for the bug#29555.
      sql/item_cmpfunc.cc:
        Extended fix for the bug#29555.
        The get_time_value function is added. It is used to obtain TIME values both
        from items the can return time as an integer and from items that can return
        time only as a string.
        The Arg_comparator::compare_datetime function now uses pointer to a getter
        function to obtain values to compare. Now this function is also used for
        comparison of TIME values.
      sql/item_cmpfunc.h:
        Extended fix for the bug#29555.
        The get_value_func variable is added to the Arg_comparator class.
        It points to a getter function for the DATE/DATETIME/TIME comparator.
      6e078ff5