1. 16 Oct, 2009 4 commits
  2. 15 Oct, 2009 8 commits
  3. 14 Oct, 2009 12 commits
    • Jorgen Loland's avatar
      merge · d9ea1943
      Jorgen Loland authored
      d9ea1943
    • Jorgen Loland's avatar
      Followup patch for BUG#47280 · 08965b75
      Jorgen Loland authored
      Temporary tables may set join->group to 0 even though there is 
      grouping. Also need to test if sum_func_count>0 when JOIN::exec() 
      decides whether to present results in a grouped manner.
      
      sql/sql_select.cc:
        Temporary tables may set join->group to 0 even though there is 
        grouping. Also need to test if sum_func_count>0 when JOIN::exec() 
        decides whether to present results in a grouped manner.
      08965b75
    • Georgi Kodinov's avatar
      merge · d7f8581c
      Georgi Kodinov authored
      d7f8581c
    • Georgi Kodinov's avatar
      merge · fd914752
      Georgi Kodinov authored
      fd914752
    • Georgi Kodinov's avatar
      version change · 5649f3ce
      Georgi Kodinov authored
      5649f3ce
    • Georgi Kodinov's avatar
      merge · d3350778
      Georgi Kodinov authored
      d3350778
    • Georgi Kodinov's avatar
      merged main to mysql-5.0-bugteam · a92e6d3b
      Georgi Kodinov authored
      a92e6d3b
    • Georgi Kodinov's avatar
      merged 5.1-main · 752287f6
      Georgi Kodinov authored
      752287f6
    • He Zhenxing's avatar
      Attempt to fix Windows testcase output issue · ec03ebdf
      He Zhenxing authored
      ec03ebdf
    • Jorgen Loland's avatar
      Bug#47280 - strange results from count(*) with order by multiple · 3ab5751a
      Jorgen Loland authored
                  columns without where/group
                           
      Simple SELECT with implicit grouping used to return many rows if
      the query was ordered by the aggregated column in the SELECT
      list. This was incorrect because queries with implicit grouping
      should only return a single record.
                                    
      The problem was that when JOIN:exec() decided if execution needed
      to handle grouping, it was assumed that sum_func_count==0 meant
      that there were no aggregate functions in the query. This
      assumption was not correct in JOIN::exec() because the aggregate
      functions might have been optimized away during JOIN::optimize().
                        
      The reason why queries without ordering behaved correctly was
      that sum_func_count is only recalculated if the optimizer chooses
      to use temporary tables (which it does in the ordered case).
      Hence, non-ordered queries were correctly treated as grouped.
                        
      The fix for this bug was to remove the assumption that
      sum_func_count==0 means that there is no need for grouping. This
      was done by introducing variable "bool implicit_grouping" in the
      JOIN object.
      
      mysql-test/r/func_group.result:
        Add test for BUG#47280
      mysql-test/t/func_group.test:
        Add test for BUG#47280
      sql/opt_sum.cc:
        Improve comment for opt_sum_query()
      sql/sql_class.h:
        Add comment for variables in TMP_TABLE_PARAM
      sql/sql_select.cc:
        Introduce and use variable implicit_grouping instead of (!group_list && sum_func_count) in places that need to test if grouping is required. Also added comments for: optimization of aggregate fields for implicitly grouped queries  (JOIN::optimize) and choice of end_select method (JOIN::execute)
      sql/sql_select.h:
        Add variable implicit_grouping, which will be TRUE for queries that contain aggregate functions but no GROUP BY clause. Also added comment to sort_and_group variable.
      3ab5751a
    • unknown's avatar
      Null-merge from mysql-5.0.84sp1-release · b9acf240
      unknown authored
      b9acf240
    • unknown's avatar
      Bug#46640: output from mysqlbinlog command in 5.1 breaks replication · dafe440f
      unknown authored
            
      The BINLOG statement was sharing too much code with the slave SQL thread, introduced with
      the patch for Bug#32407. This caused statements to be logged with the wrong server_id, the
      id stored inside the events of the BINLOG statement rather than the id of the running 
      server.
            
      Fix by rearranging code a bit so that only relevant parts of the code are executed by
      the BINLOG statement, and the server_id of the server executing the statements will 
      not be overrided by the server_id stored in the 'format description BINLOG statement'.
      
      mysql-test/extra/binlog_tests/binlog.test:
        Added test to verify if the server_id stored in the 'format 
        description BINLOG statement' will override the server_id
        of the server executing the statements.
      mysql-test/suite/binlog/r/binlog_row_binlog.result:
        Test result for bug#46640
      mysql-test/suite/binlog/r/binlog_stm_binlog.result:
        Test result for bug#46640
      sql/log_event.cc:
        Moved rows_event_stmt_clean() call from update_pos() to apply_event(). This in any case
        makes more sense, and is needed as update_pos() is no longer called when executing
        BINLOG statements.
        
        Moved setting of rli->relay_log.description_event_for_exec from 
        Format_description_log_event::do_update_pos() to 
        Format_description_log_event::do_apply_event()
      sql/log_event_old.cc:
        Moved rows_event_stmt_clean() call from update_pos() to apply_event(). This in any case
        makes more sense, and is needed as update_pos() is no longer called when executing
        BINLOG statements.
      sql/slave.cc:
        The skip flag is no longer needed, as the code path for BINLOG statement has been 
        cleaned up.
      sql/sql_binlog.cc:
        Don't invoke the update_pos() code path for the BINLOG statement, as it contains code 
        that is redundant and/or harmful (especially setting thd->server_id).
      dafe440f
  4. 13 Oct, 2009 7 commits
    • unknown's avatar
      Raise version number after cloning 5.0.87 · 45d624d4
      unknown authored
      45d624d4
    • unknown's avatar
      Null-merge from mysql-5.1.37sp1-release · cdfe0785
      unknown authored
      cdfe0785
    • Alexey Kopytov's avatar
      Bug #47123: Endless 100% CPU loop with STRAIGHT_JOIN · e7a2740e
      Alexey Kopytov authored
       
      The problem was in incorrect handling of predicates involving 
      NULL as a constant value by the range optimizer.  
       
      For example, when creating a SEL_ARG node from a condition of 
      the form "field < const" (which would normally result in the 
      "NULL < field < const" SEL_ARG),  the special case when "const" 
      is NULL was not taken into account, so "NULL < field < NULL" 
      was produced for the "field < NULL" condition. 
       
      As a result, SEL_ARG structures of this form could not be 
      further optimized which in turn could lead to incorrectly 
      constructed SEL_ARG trees. In particular, code assuming SEL_ARG 
      structures to always form a sequence of ordered disjoint 
      intervals could enter an infinite loop under some 
      circumstances. 
       
      Fixed by changing get_mm_leaf() so that for any sargable 
      predicate except "<=>" involving NULL as a constant, "empty" 
      SEL_ARG is returned, since such a predicate is always false. 
      
      mysql-test/r/range.result:
        Added a test case for bug #47123.
      mysql-test/t/range.test:
        Added a test case for bug #47123.
      sql/opt_range.cc:
        Fixed get_mm_leaf() so that for any sargable 
        predicate except "<=>" involving NULL as a constant, "empty" 
        SEL_ARG is returned, since such a predicate is always false.
      e7a2740e
    • Satya B's avatar
      merge to mysql-5.1-bugteam · 140bb6ee
      Satya B authored
      140bb6ee
    • Satya B's avatar
      Applying Innodb Plugin 1.0.5 snapshot, part 15 · 45f73168
      Satya B authored
      - Fix a typo and adjust the CMakeLists.txt
      - Remove the README file as it doesn't exist in 
        Innodb plugin 1.0.5
      
      
      45f73168
    • He Zhenxing's avatar
      Auto merge · 7a998b60
      He Zhenxing authored
      7a998b60
    • unknown's avatar
      Bug#45578: Test binlog_tmp_table fails ramdonly on PB2: Unknown table 't2' · 75770006
      unknown authored
      The bug has been closed.
      75770006
  5. 12 Oct, 2009 5 commits
    • Satya B's avatar
      Applying Innodb Plugin 1.0.5 snapshot, part 14 · a0fa1945
      Satya B authored
      Sync the storage/innodb_plugin/mysql-test directory
      with Innodb_plugin-1.0.5/mysql-test directory
      
      Update the README file
      a0fa1945
    • Satya B's avatar
      Applying InnoDB Plugin 1.0.5 snapshot, part 13 · b102db29
      Satya B authored
      1. Undo r6031 btr/btr0btr.c changes
      
      2. apply skipped Plug.in changes and missed revisions
      
      Detailed revision comments:
      
      r5865 | vasil | 2009-09-12 02:26:03 -0500 (Sat, 12 Sep 2009) | 10 lines
      branches/zip:
      
      Simplify the compile time checks by splittig them into 5 independent checks:
      
      * Whether GCC atomics are available
      * Whether pthread_t can be used by GCC atomics
      * Whether Solaris libc atomics are available
      * Whether pthread_t can be used by Solaris libs atomics
      * Checking the size of pthread_t
      
      r5869 | vasil | 2009-09-12 03:33:11 -0500 (Sat, 12 Sep 2009) | 15 lines
      branches/zip:
      
      Include ut0auxconf.h only if none of the macros it would define is defined.
      The check when to include this header was outdated from the time when there
      was only one macro involved.
      
      Move the atomics checks that are in univ.i outside of
      #if windows ... #else ... #endif
      This simplifies the code and removes some duplicates like defining
      HAVE_ATOMIC_BUILTINS if HAVE_WINDOWS_ATOMICS is defined in both branches.
      
      Do not define the same macro HAVE_ATOMIC_PTHREAD_T for different events.
      Instead define HAVE_IB_ATOMIC_PTHREAD_T_GCC and
      HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS.
      
      r5871 | vasil | 2009-09-12 04:25:44 -0500 (Sat, 12 Sep 2009) | 6 lines
      branches/zip:
      
      Rename HAVE_SOLARIS_ATOMICS to HAVE_IB_SOLARIS_ATOMICS and 
      IB_HAVE_PAUSE_INSTRUCTION to HAVE_IB_PAUSE_INSTRUCTION so they
      all follow the same HAVE_IB_* convention.
      
      r5888 | vasil | 2009-09-14 03:38:45 -0500 (Mon, 14 Sep 2009) | 40 lines
      branches/zip:
      
      Back-merge c5880 and c5881 from branches/embedded-1.0:
      
        ------------------------------------------------------------------------
        r5880 | vasil | 2009-09-12 17:28:44 +0300 (Sat, 12 Sep 2009) | 18 lines
        Changed paths:
           M /branches/embedded-1.0/configure.in
           M /branches/embedded-1.0/include/os0sync.h
           M /branches/embedded-1.0/srv/srv0start.c
        
        branches/embedded-1.0:
        
        Clean up and simplify the code that surrounds the atomic ops:
        
        * Simplify the code that prints what atomics are used:
        Instead of repeating the same conditions on which each atomics are used
        use just one printf that prints a variable defined by the code which
        chooses what atomics to use.
        
        * In os0sync.h pick up each atomic variant only if it has been selected
        by autoconf (based on IB_ATOMIC_MODE_* macros). Define the startup message
        to be printed.
        
        * In configure.in: check what user has chosen and if he has chosen
        something that is not available, emit an error. If nothing has been chosen
        explicitly by the user, auto select an option according to the described
        logic in configure.in.
        
        ------------------------------------------------------------------------
        r5881 | vasil | 2009-09-12 20:08:27 +0300 (Sat, 12 Sep 2009) | 4 lines
        Changed paths:
           M /branches/embedded-1.0/configure.in
        
        branches/embedded-1.0:
        
        Fix syntax error in test program.
        
        ------------------------------------------------------------------------
      
      r5889 | vasil | 2009-09-14 04:17:18 -0500 (Mon, 14 Sep 2009) | 5 lines
      branches/zip:
      
      Add missing return statement in the test program that could have
      caused a warning.
      
      r5893 | inaam | 2009-09-14 10:20:48 -0500 (Mon, 14 Sep 2009) | 10 lines
      branches/zip  rb://159
      
      In case of pages that are not made young the counter is incremented
      only when the page in question is 'old'. In case of pages that are
      made young the counter is incremented in case of all pages. For apple
      to apple comparison this patch changes the 'young-making' counter to
      consider only 'old' blocks.
      
      Approved by: Marko
      
      r5537 | vasil | 2009-07-21 04:31:26 -0500 (Tue, 21 Jul 2009) | 5 lines
      branches/zip:
      
      Fixups in ChangeLog: sort filenames alphabetically and wrap to 78 chars per
      line.
      r5870 | vasil | 2009-09-12 04:13:44 -0500 (Sat, 12 Sep 2009) | 7 lines
      branches/zip:
      
      Define HAVE_ATOMIC_BUILTINS and INNODB_RW_LOCKS_USE_ATOMICS in os0sync.h
      instead of in univ.i. The code expects os_*() macros to be present if
      HAVE_ATOMIC_BUILTINS and INNODB_RW_LOCKS_USE_ATOMICS are defined. So define
      them next to defining the os_*() macros.
      
      r5696 | vasil | 2009-08-26 08:15:59 -0500 (Wed, 26 Aug 2009) | 14 lines
      branches/zip:
      
      Merge a change from MySQL:
      
       http://lists.mysql.com/commits/80832
      
       2968 Jonathan Perkin	2009-08-14
            Build fixes for Windows, AIX, HP/UX and Sun Studio11, from Timothy Smith.
            modified:
              CMakeLists.txt
              cmd-line-utils/readline/util.c
              storage/innodb_plugin/handler/i_s.cc
              storage/innodb_plugin/include/univ.i
      
      r5897 | marko | 2009-09-15 03:29:00 -0500 (Tue, 15 Sep 2009) | 8 lines
      branches/zip: Avoid bogus messages about latching order violations when
      UNIV_SYNC_DEBUG is defined.
      
      sync_thread_levels_g(): Add the parameter "warn".  Do not print
      anything unless it is set.
      
      sync_thread_add_level(): Pass warn=TRUE to sync_thread_levels_g()
      when the check is within an assertion; FALSE if it is not.
      
      r5899 | marko | 2009-09-15 06:26:01 -0500 (Tue, 15 Sep 2009) | 4 lines
      branches/zip: ut0ut.h: Do not #include "os0sync.h" #ifdef UNIV_HOTBACKUP.
      Since r5872, the InnoDB Hot Backup build was broken.
      Fix it by not defining any thread synchronization primitives in ut0ut.h.
      InnoDB Hot Backup is a single-threaded program.
      b102db29
    • V Narayanan's avatar
      Bug#46448 trailing spaces are not ignored when user collation maps space != 0x20 · f3ee95e7
      V Narayanan authored
      changing year in copyright header to 2009.
      f3ee95e7
    • V Narayanan's avatar
      Bug#46448 trailing spaces are not ignored when user collation maps space != 0x20 · a7c63bd8
      V Narayanan authored
      Fixing copyright header in test collation file.
      
      mysql-test/std_data/latin1.xml:
        Bug#46448 trailing spaces are not ignored when user collation maps space != 0x20
        
        Fixing copy right header in test collation file.
      a7c63bd8
    • V Narayanan's avatar
      Bug#46448 trailing spaces are not ignored when user collation maps space != 0x20 · f60f3832
      V Narayanan authored
      In MySQL when the mapping for space is changed to something other than
      0x20 by defining a different collation, then space is not ignored when
      comparing two strings.
      
      This was happening because the function that performs the comparison
      of two strings while ignoring ending spaces, was comparing the collation
      value of a space with the ascii value of the ' ' character. This should
      be changed to do comparison between the collated values.
      
      mysql-test/r/ctype_ldml.result:
        Bug#46448 trailing spaces are not ignored when user collation maps space != 0x20
        
        Result file for test case.
      mysql-test/std_data/Index.xml:
        Bug#46448 trailing spaces are not ignored when user collation maps space != 0x20
        
        Added entry for new test collation in the index file.
      mysql-test/std_data/latin1.xml:
        Bug#46448 trailing spaces are not ignored when user collation maps space != 0x20
        
        Added support for new collation for test.
      mysql-test/t/ctype_ldml.test:
        Bug#46448 trailing spaces are not ignored when user collation maps space != 0x20
        
        Added test case to ensure trailing spaces are not ignored.
      strings/ctype-simple.c:
        Bug#46448 trailing spaces are not ignored when user collation maps space != 0x20
        
        change my_strnncollsp_simple to compare collated values when checking
        for trailing spaces. Currently the comparison happens between a collated
        value and the ascii value.
      f60f3832
  6. 09 Oct, 2009 4 commits
    • Joerg Bruehe's avatar
      Fix Bug #47957 · eaa55f45
      Joerg Bruehe authored
        A build "--without-server" fails if using "--with-ssl" (YaSSL)
      
      The problem was the lack of directory "extra" in a build
      which did not include the server.
      
      configure.in:
        1) Ensure "extra" is in the list of client directories.
        2) Always handle the client directories first, as they will
           be contained in every build (we have client-only, but not
           server-only).
      eaa55f45
    • Sergey Vojtovich's avatar
      Merge fix for BUG47073. · 97fbb2f4
      Sergey Vojtovich authored
      97fbb2f4
    • Sergey Vojtovich's avatar
      BUG#47073 - valgrind errs, corruption,failed repair of partition, · 11c2da53
      Sergey Vojtovich authored
                  low myisam_sort_buffer_size
      
      Repair by sort (default) or parallel repair of a MyISAM table
      (doesn't matter partitioned or not) as well as bulk inserts
      and enable indexes some times didn't failover to repair with
      key cache.
      
      The problem was that after unsuccessful attempt, data file was
      closed. Whereas repair with key cache requires open data file.
      Fixed by reopening data file.
      
      Also fixed a valgrind warning, which may appear during repair
      by sort or parallel repair with certain myisam_sort_buffer_size
      number of rows and length of an index entry (very dependent).
      
      mysql-test/r/myisam.result:
        A test case for BUG#47073.
      mysql-test/t/myisam.test:
        A test case for BUG#47073.
      storage/myisam/ha_myisam.cc:
        Reverted fix for BUG25289. Not needed anymore.
      storage/myisam/mi_check.c:
        Reopen data file, when repair by sort or parallel repair
        fails.
        
        When repair by sort is requested to rebuild data file, data file
        gets rebuilt while fixing first index. When rebuild is completed,
        info->dfile is pointing to temporary data file, original data file
        is closed.
        
        It may happen that repair has successfully fixed first index and
        rebuilt data file, but failed to fix second index. E.g.
        myisam_sort_buffer_size was big enough to fix first shorter index,
        but not enough to fix subsequent longer index.
        
        In this case we end up with info->dfile pointing to temporary file,
        which is removed and info->dfile is set to -1.
        
        Though repair by sort failed, the upper layer may still want to
        try repair with key cache. But it needs info->dfile pointing to
        valid data file.
      storage/myisam/sort.c:
        When performing a copy of IO_CACHE structure, current_pos and
        current_end must be updated separatly to point to memory we're
        copying to (not to memory we're copying from).
        
        As t_file2 is always WRITE cache, proper members are write_pos
        and write_end accordingly.
      11c2da53
    • Martin Hansson's avatar
      Merge of bug#42846 · a6f05b0a
      Martin Hansson authored
      a6f05b0a