1. 12 Feb, 2010 2 commits
    • Evgeny Potemkin's avatar
      Bug#50539: Wrong result when loose index scan is used for an aggregate · 3e0f70d2
      Evgeny Potemkin authored
                 function with distinct.
      Loose index scan is used to find MIN/MAX values using appropriate index and
      thus allow to avoid grouping. For each found row it updates non-aggregated
      fields with values from row with found MIN/MAX value.
      Without loose index scan non-aggregated fields are copied by end_send_group
      function. With loose index scan there is no need in end_send_group and
      end_send is used instead. Non-aggregated fields still need to be copied and
      this was wrongly implemented in QUICK_GROUP_MIN_MAX_SELECT::get_next.
      WL#3220 added a case when loose index scan can be used with end_send_group to
      optimize calculation of aggregate functions with distinct. In this case
      the row found by QUICK_GROUP_MIN_MAX_SELECT::get_next might belong to a next
      group and copying it will produce wrong result.
      
      Update of non-aggregated fields is moved to the end_send function from
      QUICK_GROUP_MIN_MAX_SELECT::get_next.
      
      
      mysql-test/r/group_min_max.result:
        Added a test case for the bug#50539.
      mysql-test/t/group_min_max.test:
        Added a test case for the bug#50539.
      sql/opt_range.cc:
        Bug#50539: Wrong result when loose index scan is used for an aggregate
        function with distinct.
        Update of non-aggregated fields is moved to the end_send function from
        QUICK_GROUP_MIN_MAX_SELECT::get_next.
      sql/sql_select.cc:
        Bug#50539: Wrong result when loose index scan is used for an aggregate
        function with distinct.
        Update of non-aggregated fields is moved to the end_send function from
        QUICK_GROUP_MIN_MAX_SELECT::get_next.
      3e0f70d2
    • unknown's avatar
      Bug #43913 rpl_cross_version can't pass on conflicts complainig clash with · 97afccae
      unknown authored
      --slave-load-tm
            
      The MDL_SHARED lock was introduced for an object in 5.4, but the 'TABLE_LIST' 
      object was not initialized with the MDL_SHARED lock when applying event with 
      LOAD DATA INFILE into table. So the failure is caused when checking the 
      MDL_SHARED lock for the object.
      To fix the problem, the 'TABLE_LIST' object was initialized with the MDL_SHARED 
      lock when applying event with LOAD DATA INFILE into table.
      
      
      mysql-test/suite/rpl/t/disabled.def:
        Got rid of the line for enabling 'rpl_cross_version' test.
      97afccae
  2. 11 Feb, 2010 2 commits
    • Magne Mahre's avatar
      Bug#50574 5.5.x allows spatial indexes on non-spatial columns, · 20379351
      Magne Mahre authored
                causing crashes!
      
      Adding a SPATIAL INDEX on a non-geometrical column caused a
      segmentation fault when the table was subsequently 
      inserted into.
            
      A test was added in mysql_prepare_create_table to explicitly
      check whether non-geometrical columns are used in a
      spatial index, and throw an error if so.
      
      
      mysql-test/t/gis.test:
        Added test cases to verify that only geometrical
        columns can get a spatial index.
                
        In addition, verify that only a single geom.
        column can participate in a spatial index.
      20379351
    • Magne Mahre's avatar
      Bug#50542 5.5.x doesn't check length of key prefixes: · 93cd02bc
      Magne Mahre authored
                corruption and crash results
            
      An index creation statement where the index key
      is larger/wider than the column it references 
      should throw an error.
            
      A statement like:
        CREATE TABLE t1 (a CHAR(1), PRIMARY KEY (A(255)))
      did not error, but a segmentation fault followed when
      an insertion was attempted on the table
            
      The partial key validiation clause has been 
      restructured to (hopefully) better document which
      uses of partial keys are valid.
      
      93cd02bc
  3. 10 Feb, 2010 2 commits
    • Luis Soares's avatar
      BUG#50984: check_testcase fails for rpl_tmp_table_and_DDL · 5df69267
      Luis Soares authored
            
      We found that there are some tests that are not cleaning
      up properly:
            
        1. rpl_tmp_table_and_DDL
        2. rpl_do_grant
        3. rpl_sync
            
      For #1 and #2 we found that the slave would not, for some
      cases, replicate all the instructions the master processed 
      in the cleanup section. We fix these by deploying some 
      synchronization commands in the test cases so that slave 
      processes all clean up instructions.
            
      As for #3, this is tracked as part of another bug 
      (BUG@50442).
      5df69267
    • Mattias Jonsson's avatar
      Bug#50201: Server crashes in explain_filename on an InnoDB partitioned table · dca67006
      Mattias Jonsson authored
      Problem was that in mysql-trunk the ER() macro is now dependent on current_thd
      and the innodb monitor thread has no binding to that thd object. This cause 
      the crash because of bad derefencing.
      
      Solution was to add a new macro which take the thd as an argument (which the innodb
      thread uses for the call).
      
      (Updated according to reviewers comments, i.e. added ER_THD_OR_DEFAULT and
      moved test to suite parts.)
      
      mysql-test/suite/parts/r/partition_innodb_status_file.result:
        Bug#50201: Server crashes in explain_filename on an InnoDB partitioned table
        
        New test result file
      mysql-test/suite/parts/t/partition_innodb_status_file-master.opt:
        Bug#50201: Server crashes in explain_filename on an InnoDB partitioned table
        
        New test opt file
      mysql-test/suite/parts/t/partition_innodb_status_file.test:
        Bug#50201: Server crashes in explain_filename on an InnoDB partitioned table
        
        New test.
        Note that the innodb monitor thread only runs every 15 seconds, so this
        test will take at least 15 seconds, so I have moved it to the parts suite.
      sql/sql_table.cc:
        Bug#50201: Server crashes in explain_filename on an InnoDB partitioned table
        
        Using thd safe ER macro.
      sql/unireg.h:
        Bug#50201: Server crashes in explain_filename on an InnoDB partitioned table
        
        Added ER macros for use with specified thd pointer.
      dca67006
  4. 09 Feb, 2010 2 commits
  5. 08 Feb, 2010 3 commits
  6. 05 Feb, 2010 4 commits
  7. 04 Feb, 2010 6 commits
  8. 03 Feb, 2010 9 commits
    • Alexander Nozdrin's avatar
      Manual merge from mysql-5.1-bugteam. · 1a46ff87
      Alexander Nozdrin authored
      Conflicts:
        - configure.in
        - mysql-test/include/setup_fake_relay_log.inc
        - sql/sql_select.cc
      1a46ff87
    • Luis Soares's avatar
      BUG#50364: FLUSH LOGS crashes the server (rpl.rpl_heartbeat_basic · 55aab082
      Luis Soares authored
      fails in PB sporadically)
            
      The IO thread can concurrently access the relay log IO_CACHE
      while another thread is performing an FLUSH LOGS procedure.
            
      FLUSH LOGS closes and reopens the relay log and while doing so it
      (re)initializes its IO_CACHE. During this procedure the IO_CACHE
      mutex is also reinitialized, which can cause problems if some
      other thread (namely the IO THREAD) is concurrently accessing it
      at the time .
            
      This patch fixes the problem by extending the interface of the
      flush_master_info function to also include a second paramater, 
      "need_relay_log_lock", stating whether the thread should grab the 
      relay log lock or not before actually flushing the relay log. 
      Also, IO thread now calls flush_master_info with this flag set 
      when it flushes master info with in the event read_event loop.
      
      Finally, we also increase loop time in rpl_heartbeat_basic test 
      case, so that the number of calls to flush logs doubles, stressing
      this part of the code a little more.
      
      mysql-test/suite/rpl/t/rpl_heartbeat_basic.test:
        Doubled the number of iterations on the FLUSH LOGS loop by
        doubling the time available to perform all iterations.
      sql/repl_failsafe.cc:
        Updating flush_master_info call so that it uses two parameters
        instead of one.
      sql/rpl_mi.cc:
        Updating flush_master_info call so that it uses two parameters
        instead of one.
      sql/rpl_mi.h:
        Changed flush_master_info interface. Now takes a second parameter
        instead of just one. The second parameter is: need_lock_relay_log.
      sql/rpl_rli.cc:
        Small fix in comment.
      sql/slave.cc:
        Updating flush_master_info call so that it uses two parameters
        instead of one.
      sql/sql_repl.cc:
        Updating flush_master_info call so that it uses two parameters
        instead of one.
      55aab082
    • Alexander Nozdrin's avatar
      Manual merge from mysql-5.1-bugteam. · defe010c
      Alexander Nozdrin authored
      Conflicts:
        - sql/mysqld.cc
      defe010c
    • Georgi Kodinov's avatar
      merge · b51fa70a
      Georgi Kodinov authored
      b51fa70a
    • Georgi Kodinov's avatar
      merge · d0ac5a75
      Georgi Kodinov authored
      d0ac5a75
    • Georgi Kodinov's avatar
      merge · 44c1a79b
      Georgi Kodinov authored
      44c1a79b
    • Alexander Nozdrin's avatar
      Manual merge from mysql-5.1-bugteam. · cf55cf59
      Alexander Nozdrin authored
      Conflicts:
        - mysql-test/collections/default.experimental
        - mysql-test/suite/rpl/r/rpl_sp.result
      cf55cf59
    • Kent Boortz's avatar
      0a90bfe6
    • Luis Soares's avatar
  9. 02 Feb, 2010 6 commits
    • Kent Boortz's avatar
      Changes to be able to create source TAR packages with longer · 673ec7b2
      Kent Boortz authored
      path names than 99 characters, using the USTAR format of the
      resulting source TAR.
      
      To be able to specify the use of USTAR when creating the source
      TAR, we needed both to update the GNU autotools version requirements
      slightly, and update the initiation of the tools to use more
      modern constructs.
      673ec7b2
    • Magne Mahre's avatar
      Cleanup fix for WL#5154 that splits commands handling for · 090c75d2
      Magne Mahre authored
      --default-character-set and --character-set-server such
      that only the first will give a deprecation warning.
      Apart from that, the two options should do the same.
      090c75d2
    • Luis Soares's avatar
      BUG#47639: The rpl_binlog_corruption test fails on Windows · 56b911f8
      Luis Soares authored
      The test case rpl_binlog_corruption fails on windows because when
      adding a line to the binary log index file it gets terminated
      with a CR+LF (which btw, is the normal case in windows, but not on
      Unixes - LF). This causes mismatch between the relay log names,
      causing mysqld to report that it cannot find the log file.
      
      We fix this by creating the instrumented index file through
      mysql, ie, using SELECT ... INTO DUMPFILE ..., as opposed on
      relying on ultimatly OS commands like: -- echo "..." >
      index. These changes go into the file and make the procedure
      platform independent:
      
        include/setup_fake_relay_log.inc
      
      Side note: when using SELECT ... INTO DUMPFILE ..., one needs to
      check if mysqld is running with secure_file_priv. If it is, we do
      it in two steps: 1. create the file on the allowed location;
      2. move it to the datadir. If it is not, then we just create the
      file directly on the datadir (so previous step 2. is not needed).
      56b911f8
    • Alexander Nozdrin's avatar
      Revert a patch for Bug#48231, which introduced valgrind warnings. · 59f1be1b
      Alexander Nozdrin authored
      Original revision:
      ------------------------------------------------------------
      revision-id: li-bing.song@sun.com-20100130124925-o6sfex42b6noyc6x
      parent: joro@sun.com-20100129145427-0n79l9hnk0q43ajk
      committer: <Li-Bing.Song@sun.com>
      branch nick: mysql-5.1-bugteam
      timestamp: Sat 2010-01-30 20:49:25 +0800
      message:
        Bug #48321  CURRENT_USER() incorrectly replicated for DROP/RENAME USER;
                    REVOKE/GRANT; ALTER EVENT.
        
        The following statements support the CURRENT_USER() where a user is needed.
          DROP USER 
          RENAME USER CURRENT_USER() ...
          GRANT ... TO CURRENT_USER()
          REVOKE ... FROM CURRENT_USER()
          ALTER DEFINER = CURRENT_USER() EVENT
        but, When these statements are binlogged, CURRENT_USER() just is binlogged
        as 'CURRENT_USER()', it is not expanded to the real user name. When slave 
        executes the log event, 'CURRENT_USER()' is expand to the user of slave 
        SQL thread, but SQL thread's user name always NULL. This breaks the replication.
        
        After this patch, All above statements are rewritten when they are binlogged.
        The CURRENT_USER() is expanded to the real user's name and host.
      ------------------------------------------------------------
      59f1be1b
    • Davi Arnaut's avatar
      Fix for valgrind warning: check whether pointer was initialized. · 2db68457
      Davi Arnaut authored
      storage/myisammrg/ha_myisammrg.cc:
        myisam pointer is not relevant if a error was raised.
      2db68457
    • Georgi Kodinov's avatar
      1dafac6f
  10. 01 Feb, 2010 3 commits
  11. 31 Jan, 2010 1 commit