1. 15 Oct, 2009 3 commits
  2. 14 Oct, 2009 12 commits
    • Jorgen Loland's avatar
      merge · 565fef25
      Jorgen Loland authored
      565fef25
    • Jorgen Loland's avatar
      Followup patch for BUG#47280 · bf14598c
      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.
      bf14598c
    • Georgi Kodinov's avatar
      merge · 26b3613b
      Georgi Kodinov authored
      26b3613b
    • Georgi Kodinov's avatar
      merge · c8c0dad8
      Georgi Kodinov authored
      c8c0dad8
    • Georgi Kodinov's avatar
      version change · 903d2128
      Georgi Kodinov authored
      903d2128
    • Georgi Kodinov's avatar
      merge · 67113c2e
      Georgi Kodinov authored
      67113c2e
    • Georgi Kodinov's avatar
      merged main to mysql-5.0-bugteam · 3eb048ab
      Georgi Kodinov authored
      3eb048ab
    • Georgi Kodinov's avatar
      merged 5.1-main · 445454f7
      Georgi Kodinov authored
      445454f7
    • He Zhenxing's avatar
      Attempt to fix Windows testcase output issue · 7048cfde
      He Zhenxing authored
      7048cfde
    • Jorgen Loland's avatar
      Bug#47280 - strange results from count(*) with order by multiple · 6da93b22
      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.
      6da93b22
    • unknown's avatar
      Null-merge from mysql-5.0.84sp1-release · ecb9119b
      unknown authored
      ecb9119b
    • unknown's avatar
      Bug#46640: output from mysqlbinlog command in 5.1 breaks replication · f9c67302
      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).
      f9c67302
  3. 13 Oct, 2009 7 commits
    • unknown's avatar
      Raise version number after cloning 5.0.87 · 7b32690c
      unknown authored
      7b32690c
    • unknown's avatar
      Null-merge from mysql-5.1.37sp1-release · b9a794d1
      unknown authored
      b9a794d1
    • Alexey Kopytov's avatar
      Bug #47123: Endless 100% CPU loop with STRAIGHT_JOIN · bc9f56a6
      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.
      bc9f56a6
    • Satya B's avatar
      merge to mysql-5.1-bugteam · 61021314
      Satya B authored
      61021314
    • Satya B's avatar
      Applying Innodb Plugin 1.0.5 snapshot, part 15 · fd246618
      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
      
      
      fd246618
    • He Zhenxing's avatar
      Auto merge · 6ba22589
      He Zhenxing authored
      6ba22589
    • unknown's avatar
      Bug#45578: Test binlog_tmp_table fails ramdonly on PB2: Unknown table 't2' · 1994d2c1
      unknown authored
      The bug has been closed.
      1994d2c1
  4. 12 Oct, 2009 5 commits
    • Satya B's avatar
      Applying Innodb Plugin 1.0.5 snapshot, part 14 · 95e3b854
      Satya B authored
      Sync the storage/innodb_plugin/mysql-test directory
      with Innodb_plugin-1.0.5/mysql-test directory
      
      Update the README file
      95e3b854
    • Satya B's avatar
      Applying InnoDB Plugin 1.0.5 snapshot, part 13 · ef68a99a
      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.
      ef68a99a
    • V Narayanan's avatar
      Bug#46448 trailing spaces are not ignored when user collation maps space != 0x20 · c2c12c24
      V Narayanan authored
      changing year in copyright header to 2009.
      
      c2c12c24
    • V Narayanan's avatar
      Bug#46448 trailing spaces are not ignored when user collation maps space != 0x20 · 409773e8
      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.
      409773e8
    • V Narayanan's avatar
      Bug#46448 trailing spaces are not ignored when user collation maps space != 0x20 · 64e89a7e
      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.
      64e89a7e
  5. 09 Oct, 2009 13 commits
    • Sergey Vojtovich's avatar
      Merge fix for BUG47073. · f1c2f6e8
      Sergey Vojtovich authored
      f1c2f6e8
    • Sergey Vojtovich's avatar
      BUG#47073 - valgrind errs, corruption,failed repair of partition, · adbd70aa
      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.
      adbd70aa
    • Martin Hansson's avatar
      Merge of bug#42846 · 2ef6c821
      Martin Hansson authored
      2ef6c821
    • Satya B's avatar
      Applying InnoDB Plugin 1.0.5 snapshot ,part 12 · e011c02e
      Satya B authored
      From r5995 to r6043
      
      Detailed revision comments:
      
      r5995 | marko | 2009-09-28 03:52:25 -0500 (Mon, 28 Sep 2009) | 17 lines
      branches/zip: Do not write to PAGE_INDEX_ID after page creation,
      not even when restoring an uncompressed page after a compression failure.
      
      btr_page_reorganize_low(): On compression failure, do not restore
      those page header fields that should not be affected by the
      reorganization.  Instead, compare the fields.
      
      page_zip_decompress(): Add the parameter ibool all, for copying all
      page header fields.  Pass the parameter all=TRUE on block read
      completion, redo log application, and page_zip_validate(); pass
      all=FALSE in all other cases.
      
      page_zip_reorganize(): Do not restore the uncompressed page on
      failure.  It will be restored (to pre-modification state) by the
      caller anyway.
      
      rb://167, Issue #346
      r5996 | marko | 2009-09-28 07:46:02 -0500 (Mon, 28 Sep 2009) | 4 lines
      branches/zip: Address Issue #350 in comments.
      
      lock_rec_queue_validate(), lock_rec_queue_validate(): Note that
      this debug code may violate the latching order and cause deadlocks.
      r5997 | marko | 2009-09-28 08:03:58 -0500 (Mon, 28 Sep 2009) | 12 lines
      branches/zip: Remove an assertion failure when the InnoDB data dictionary
      is inconsistent with the MySQL .frm file.
      
      ha_innobase::index_read(): When the index cannot be found,
      return an error.
      
      ha_innobase::change_active_index(): When prebuilt->index == NULL,
      set also prebuilt->index_usable = FALSE.  This is not needed for
      correctness, because prebuilt->index_usable is only checked by
      row_search_for_mysql(), which requires prebuilt->index != NULL.
      
      This addresses Issue #349.  Approved by Heikki Tuuri over IM.
      r6005 | vasil | 2009-09-29 03:09:52 -0500 (Tue, 29 Sep 2009) | 4 lines
      branches/zip:
      
      ChangeLog: wrap around 78th column, not earlier.
      
      r6006 | vasil | 2009-09-29 05:15:25 -0500 (Tue, 29 Sep 2009) | 4 lines
      branches/zip:
      
      Add ChangeLog entry for the release of 1.0.4.
      
      r6007 | vasil | 2009-09-29 08:19:59 -0500 (Tue, 29 Sep 2009) | 6 lines
      branches/zip:
      
      Fix the year, should be 2009.
      
      Pointed by:	Calvin
      
      r6026 | marko | 2009-09-30 02:18:24 -0500 (Wed, 30 Sep 2009) | 1 line
      branches/zip: Add some debug assertions for checking FSEG_MAGIC_N.
      r6028 | marko | 2009-09-30 08:55:23 -0500 (Wed, 30 Sep 2009) | 3 lines
      branches/zip: recv_no_log_write: New debug flag for tracking down
      Mantis Issue #347.  No modifications should be made to the database
      while recv_apply_hashed_log_recs() is about to complete.
      r6029 | calvin | 2009-09-30 15:32:02 -0500 (Wed, 30 Sep 2009) | 4 lines
      branches/zip: non-functional changes
      
      Fix typo.
      
      r6031 | marko | 2009-10-01 06:24:33 -0500 (Thu, 01 Oct 2009) | 49 lines
      branches/zip: Clean up after a crash during DROP INDEX.
      When InnoDB crashes while dropping an index, ensure that
      the index will be completely dropped during crash recovery.
      
      row_merge_drop_index(): Before dropping an index, rename the index to
      start with TEMP_INDEX_PREFIX_STR and commit the change, so that
      row_merge_drop_temp_indexes() will drop the index after crash
      recovery if the server crashes while dropping the index.
      
      fseg_inode_try_get(): New function, forked from fseg_inode_get().
      Return NULL if the file segment index node is free.
      
      fseg_inode_get(): Assert that the file segment index node is not free.
      
      fseg_free_step(): If the file segment index node is already free,
      print a diagnostic message and return TRUE.
      
      fsp_free_seg_inode(): Write a nonzero number to FSEG_MAGIC_N, so that
      allocated-and-freed file segment index nodes can be better
      distinguished from uninitialized ones.
      
      This is rb://174, addressing Issue #348.
      
      Tested by restarting mysqld upon the completion of the added
      log_write_up_to() invocation below, during DROP INDEX.  The index was
      dropped after crash recovery, and re-issuing the DROP INDEX did not
      crash the server.
      
      Index: btr/btr0btr.c
      ===================================================================
      --- btr/btr0btr.c	(revision 6026)
      +++ btr/btr0btr.c	(working copy)
      @@ -42,6 +42,7 @@ Created 6/2/1994 Heikki Tuuri
       #include "ibuf0ibuf.h"
       #include "trx0trx.h"
      +#include "log0log.h"
       
       /*
       Latching strategy of the InnoDB B-tree
       --------------------------------------
      @@ -873,6 +874,8 @@ leaf_loop:
       
       		goto leaf_loop;
       	}
      +
      +	log_write_up_to(mtr.end_lsn, LOG_WAIT_ALL_GROUPS, TRUE);
       top_loop:
       	mtr_start(&mtr);
       
      r6033 | calvin | 2009-10-01 15:19:46 -0500 (Thu, 01 Oct 2009) | 4 lines
      branches/zip: fix a typo in error message
      
      Reported as bug#47763.
      
      r6043 | inaam | 2009-10-05 09:45:35 -0500 (Mon, 05 Oct 2009) | 12 lines
      branches/zip  rb://176
      
      Do not invalidate buffer pool while an LRU batch is active. Added
      code to buf_pool_invalidate() to wait for the running batches to finish.
      
      This patch also resets the state of buf_pool struct at invalidation. This
      addresses the concern where buf_pool->freed_page_clock becomes non-zero
      because we read in a system tablespace page for file format info at
      startup.
      
      Approved by: Marko
      
      e011c02e
    • Mattias Jonsson's avatar
      Bug#46922 post push update · 38448521
      Mattias Jonsson authored
      Disable the test when it will not hit the open_files_limit
      
      38448521
    • Satya B's avatar
      Applying InnoDB Plugin 1.0.5 snapshot, part 11 · 8709cea1
      Satya B authored
      From revision r5945 to r5994
      r5950 - already applied and so skipped
      
      Detailed revision comments:
      
      r5945 | calvin | 2009-09-21 09:53:22 -0500 (Mon, 21 Sep 2009) | 4 lines
      branches/zip: fix a type in r5935
      
      Should be innodb_open_files, spotted by Michael.
      
      r5951 | calvin | 2009-09-22 10:17:01 -0500 (Tue, 22 Sep 2009) | 4 lines
      branches/zip: adjust CMake file to work with old versions of MySQL
      
      Tested with MySQL 5.1.38 and 5.1.30.
      
      r5956 | calvin | 2009-09-22 18:30:10 -0500 (Tue, 22 Sep 2009) | 4 lines
      branches/zip: remove handler0vars.h from Makefile.am
      
      Left over from r5950.
      
      r5971 | marko | 2009-09-23 08:03:51 -0500 (Wed, 23 Sep 2009) | 2 lines
      branches/zip: os_file_pwrite(): Make the code compile in InnoDB Hot Backup
      when the pwrite system call is not available.
      r5972 | marko | 2009-09-23 14:44:52 -0500 (Wed, 23 Sep 2009) | 5 lines
      branches/zip: fil_node_open_file(): In InnoDB Hot Backup,
      determine the page size of single-file tablespaces before computing
      the file node size.  Otherwise, the space->size of compressed tablespaces
      would be computed with UNIV_PAGE_SIZE instead of key_block_size.
      This should fix Issue #313.
      r5973 | marko | 2009-09-23 14:53:21 -0500 (Wed, 23 Sep 2009) | 2 lines
      branches/zip: recv_add_to_hash_table():
      Simplify obfuscated pointer arithmetics.
      r5978 | marko | 2009-09-24 02:47:56 -0500 (Thu, 24 Sep 2009) | 1 line
      branches/zip: Fix warnings and errors when UNIV_HOTBACKUP is defined.
      r5979 | marko | 2009-09-24 05:16:10 -0500 (Thu, 24 Sep 2009) | 4 lines
      branches/zip: ha_innodb.cc: Define MYSQL_PLUGIN_IMPORT when necessary.
      This preprocessor symbol has been recently introduced in MySQL 5.1.
      The InnoDB Plugin should remain source compatible with MySQL 5.1.24
      and later.
      r5988 | calvin | 2009-09-25 14:14:43 -0500 (Fri, 25 Sep 2009) | 8 lines
      branches/zip: fix bug#47055 unconditional exit(1) on ERROR_WORKING_SET_QUOTA
      1453 (0x5AD) for InnoDB backend
      
      When error ERROR_WORKING_SET_QUOTA or ERROR_NO_SYSTEM_RESOURCES
      occurs, yields for 100ms and retries the operation.
      
      Approved by: Heikki (on IM)
      
      r5992 | vasil | 2009-09-28 02:10:29 -0500 (Mon, 28 Sep 2009) | 4 lines
      branches/zip:
      
      Add ChangeLog entry for c5988.
      
      r5994 | marko | 2009-09-28 03:33:59 -0500 (Mon, 28 Sep 2009) | 17 lines
      branches/zip: Try to prevent the reuse of tablespace identifiers after
      InnoDB has crashed during table creation.  Also, refuse to start if
      files with duplicate tablespace identifiers are encountered.
      
      fil_node_create(): Update fil_system->max_assigned_id.  This should
      prevent the reuse of a space->id when InnoDB does a full crash
      recovery and invokes fil_load_single_table_tablespaces().  Normally,
      fil_system->max_assigned_id is initialized from
      SELECT MAX(ID) FROM SYS_TABLES.
      
      fil_open_single_table_tablespace(): Return FALSE when
      fil_space_create() fails.
      
      fil_load_single_table_tablespace(): Exit if fil_space_create() fails
      and innodb_force_recovery=0.
      
      rb://173 approved by Heikki Tuuri.  This addresses Issue #335.
      8709cea1
    • Satya B's avatar
      Applying InnoDB Plugin 1.0.5 snapshot, part 10 · 2ad81fd7
      Satya B authored
      From r5917 to r5940
      
      Detailed revision comments:
      
      r5917 | marko | 2009-09-16 04:56:23 -0500 (Wed, 16 Sep 2009) | 1 line
      branches/zip: innobase_get_cset_width(): Cache the value of current_thd.
      r5919 | vasil | 2009-09-16 13:37:13 -0500 (Wed, 16 Sep 2009) | 4 lines
      branches/zip:
      
      Whitespace cleanup in the ChangeLog.
      
      r5920 | vasil | 2009-09-16 13:47:22 -0500 (Wed, 16 Sep 2009) | 4 lines
      branches/zip:
      
      Add ChangeLog entries for r5916.
      
      r5922 | marko | 2009-09-17 01:32:08 -0500 (Thu, 17 Sep 2009) | 4 lines
      branches/zip: innodb-zip.test: Make the test work with zlib 1.2.3.3.
      Apparently, the definition of compressBound() has slightly changed.
      
      This has been filed as Mantis Issue #345.
      r5924 | vasil | 2009-09-17 23:59:30 -0500 (Thu, 17 Sep 2009) | 4 lines
      branches/zip:
      
      White space and formatting cleanup in the ChangeLog
      
      r5934 | vasil | 2009-09-18 12:06:46 -0500 (Fri, 18 Sep 2009) | 4 lines
      branches/zip:
      
      Fix typo.
      
      r5935 | calvin | 2009-09-18 16:08:02 -0500 (Fri, 18 Sep 2009) | 6 lines
      branches/zip: fix bug#44338; minor non-functional changes
      
      Bug#44338 innodb has message about non-existing option 
      innodb_max_files_open. Change the option to innodb_open_files.
      The fix was committed into 6.0 branch.
      
      r5938 | calvin | 2009-09-19 02:14:25 -0500 (Sat, 19 Sep 2009) | 41 lines
      branches/zip: Merge revisions 2584:2956 from branches/6.0,
      except c2932.
      
      Bug#37232 and bug#31183 were fixed in the 6.0 branch only.
      They should be fixed in the plugin too, specially MySQL 6.0
      is discontinued at this point.
      
          ------------------------------------------------------------------------
          r2604 | inaam | 2008-08-21 09:37:06 -0500 (Thu, 21 Aug 2008) | 8 lines
      
          branches/6.0     bug#37232
      
          Relax locking behaviour for REPLACE INTO t SELECT ... FROM t1.
          Now SELECT on t1 is performed as a consistent read when the isolation
          level is set to READ COMMITTED.
      
          Reviewed by: Heikki
          ------------------------------------------------------------------------
          r2605 | inaam | 2008-08-21 09:59:33 -0500 (Thu, 21 Aug 2008) | 7 lines
      
          branches/6.0
      
          Added a comment to clarify why distinct calls to read MySQL binary
          log file name and log position do not entail any race condition.
      
          Suggested by: Heikki
          ------------------------------------------------------------------------
          r2956 | inaam | 2008-11-04 04:47:30 -0600 (Tue, 04 Nov 2008) | 11 lines
      
          branches/6.0  bug#31183
      
          If the system tablespace runs out of space because 'autoextend' is
          not specified with innodb_data_file_path there was no error message
          printed to the error log. The client would get 'table full' error.
          This patch prints an appropriate error message to the error log.
      
          rb://43
      
          Approved by: Marko
          ------------------------------------------------------------------------
      
      r5940 | vasil | 2009-09-21 00:26:04 -0500 (Mon, 21 Sep 2009) | 4 lines
      branches/zip:
      
      Add ChangeLog entries for c5938.
      2ad81fd7
    • Satya B's avatar
      Applying InnoDB Plugin 1.0.5 snapshot , part 9 · ef6fcca5
      Satya B authored
      r5888 - plug.in related changes skipped
      r5889 - skipped(plug.in related changes)
      r5916 - innodb_bug4600.test and innodb_bug44369.test
              already exists in main suite
      
      Detailed revision comments:
      
      r5875 | vasil | 2009-09-12 07:11:25 -0500 (Sat, 12 Sep 2009) | 4 lines
      branches/zip:
      
      Remove unnecessary macro.
      
      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.
      r5910 | marko | 2009-09-16 03:07:21 -0500 (Wed, 16 Sep 2009) | 9 lines
      branches/zip: Introduce UNIV_LOG_LSN_DEBUG and MLOG_LSN for redo log
      diagnostics.  This was written in order to better track down
      Issue #313 in InnoDB Hot Backup.
      
      MLOG_LSN: A new redo log entry type, for recording the current log
      sequence number (LSN).  This will be checked in an assertion in
      recv_parse_log_rec().
      
      rb://161, discussed with Sunny and Vasil.
      r5916 | marko | 2009-09-16 04:54:43 -0500 (Wed, 16 Sep 2009) | 128 lines
      branches/zip: Merge revisions 5622:5912 from branches/5.1, except r5700
      (changes to CMakeLists.txt)
      
        ------------------------------------------------------------------------
        r5622 | vasil | 2009-08-03 15:27:00 +0300 (Mon, 03 Aug 2009) | 20 lines
        Changed paths:
           M /branches/5.1/Makefile.am
      
        branches/5.1:
      
        Merge a change from MySQL:
      
          ------------------------------------------------------------
          revno: 2988
          committer: Satya B <satya.bn@sun.com>
          branch nick: mysql-5.1-bugteam
          timestamp: Wed 2009-07-01 11:06:05 +0530
          message:
            Fix build failure after applying Innodb snapshot 5.1-ss5282
      
            After applying Innodb snapshot 5.1-ss5282, build was broken
            because of missing header file.
      
            Adding the header file to Makefile.am after informing the
            innodb developers.
          modified:
            storage/innobase/Makefile.am
        ------------------------------------------------------------------------
        r5740 | jyang | 2009-09-03 06:33:47 +0300 (Thu, 03 Sep 2009) | 5 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
           M /branches/5.1/include/db0err.h
           A /branches/5.1/mysql-test/innodb_bug46000.result
           A /branches/5.1/mysql-test/innodb_bug46000.test
      
        branches/5.1: Disallow creating index with the name of
        "GEN_CLUST_INDEX" which is reserved for the default system
        primary index. (Bug #46000) rb://149 approved by Sunny Bains.
        ------------------------------------------------------------------------
        r5741 | jyang | 2009-09-03 07:16:01 +0300 (Thu, 03 Sep 2009) | 5 lines
        Changed paths:
           M /branches/5.1/dict/dict0dict.c
           M /branches/5.1/handler/ha_innodb.cc
           A /branches/5.1/mysql-test/innodb_bug44369.result
           A /branches/5.1/mysql-test/innodb_bug44369.test
           M /branches/5.1/row/row0mysql.c
      
        branches/5.1: Block creating table with column name conflicting
        with Innodb reserved key words. (Bug #44369) rb://151 approved
        by Sunny Bains.
        ------------------------------------------------------------------------
        r5757 | jyang | 2009-09-04 04:26:13 +0300 (Fri, 04 Sep 2009) | 3 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
           M /branches/5.1/include/db0err.h
           D /branches/5.1/mysql-test/innodb_bug46000.result
           D /branches/5.1/mysql-test/innodb_bug46000.test
      
        branches/5.1: Revert change in 5740. Making the fix in a subsequent
        check in.
        ------------------------------------------------------------------------
        r5760 | jyang | 2009-09-04 07:07:34 +0300 (Fri, 04 Sep 2009) | 3 lines
        Changed paths:
           M /branches/5.1/dict/dict0dict.c
           M /branches/5.1/handler/ha_innodb.cc
           D /branches/5.1/mysql-test/innodb_bug44369.result
           D /branches/5.1/mysql-test/innodb_bug44369.test
           M /branches/5.1/row/row0mysql.c
      
        branches/5.1: This is to revert change 5741. A return status for
        create_table_def() needs to be fixed.
        ------------------------------------------------------------------------
        r5797 | calvin | 2009-09-09 18:26:29 +0300 (Wed, 09 Sep 2009) | 3 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
      
        branches/5.1: merge change from 5.1.38
      
        HA_ERR_TOO_MANY_CONCURRENT_TRXS is added in 5.1.38.
        ------------------------------------------------------------------------
        r5799 | calvin | 2009-09-09 20:47:31 +0300 (Wed, 09 Sep 2009) | 10 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
      
        branches/5.1: fix bug#46256
      
        Allow tables to be dropped even if the collation is not found,
        but issue a warning.
      
        Could not find an easy way to add mysql-test since it requires
        changes to charsets and restarting the server. Tests were
        executed manually.
      
        Approved by: Heikki (on IM)
        ------------------------------------------------------------------------
        r5805 | vasil | 2009-09-10 08:41:48 +0300 (Thu, 10 Sep 2009) | 7 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
      
        branches/5.1:
      
        Fix a compilation warning caused by c5799:
      
        handler/ha_innodb.cc: In function 'void innobase_get_cset_width(ulint, ulint*, ulint*)':
        handler/ha_innodb.cc:830: warning: format '%d' expects type 'int', but argument 2 has type 'ulint'
        ------------------------------------------------------------------------
        r5834 | jyang | 2009-09-11 00:43:05 +0300 (Fri, 11 Sep 2009) | 5 lines
        Changed paths:
           M /branches/5.1/dict/dict0dict.c
           M /branches/5.1/handler/ha_innodb.cc
           A /branches/5.1/mysql-test/innodb_bug44369.result
           A /branches/5.1/mysql-test/innodb_bug44369.test
           M /branches/5.1/row/row0mysql.c
      
        branches/5.1: Block creating table with column name conflicting
        with Innodb reserved key words. (Bug #44369) rb://151 approved
        by Sunny Bains.
        ------------------------------------------------------------------------
        r5895 | jyang | 2009-09-15 03:39:21 +0300 (Tue, 15 Sep 2009) | 5 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
           A /branches/5.1/mysql-test/innodb_bug46000.result
           A /branches/5.1/mysql-test/innodb_bug46000.test
      
        branches/5.1: Disallow creating index with the name of
        "GEN_CLUST_INDEX" which is reserved for the default system
        primary index. (Bug #46000) rb://149 approved by Marko Makela.
        ------------------------------------------------------------------------
      ef6fcca5
    • Satya B's avatar
      Applying InnoDB Plugin 1.0.5 snapshot , part 8 · 2dcca64b
      Satya B authored
      Note : r5865 is skipped
             r5869 plug.in related changes are aslo skipped
      
      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
      
      r5866 | vasil | 2009-09-12 02:30:08 -0500 (Sat, 12 Sep 2009) | 5 lines
      branches/zip:
      
      Add the check for GCC atomics to ut0auxconf* (copied from plug.in) because
      we no longer rely on MySQL's HAVE_GCC_ATOMIC_BUILTINS.
      
      r5867 | vasil | 2009-09-12 02:43:45 -0500 (Sat, 12 Sep 2009) | 4 lines
      branches/zip:
      
      Update comment to reflect reality.
      
      r5868 | vasil | 2009-09-12 03:01:17 -0500 (Sat, 12 Sep 2009) | 6 lines
      branches/zip:
      
      Move the check whether to include ut0auxconf.h before everything because
      we are now even checking for GCC atomics, we relied on MySQL to define
      this macro before.
      
      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.
      
      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.
      
      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.
      
      r5872 | vasil | 2009-09-12 04:35:17 -0500 (Sat, 12 Sep 2009) | 5 lines
      branches/zip:
      
      Explicitly include os0sync.h to the places where HAVE_ATOMIC_BUILTINS and
      INNODB_RW_LOCKS_USE_ATOMICS are used to avoid potential problems.
      
      2dcca64b
    • Martin Hansson's avatar
      Bug#42846: wrong result returned for range scan when using · 5ef9ec9d
      Martin Hansson authored
      covering index
            
      When two range predicates were combined under an OR
      predicate, the algorithm tried to merge overlapping ranges
      into one. But the case when a range overlapped several other
      ranges was not handled. This lead to
      
      1) ranges overlapping, which gave repeated results and 
      2) a range that overlapped several other ranges was cut off.  
      
      Fixed by 
      
      1) Making sure that a range got an upper bound equal to the
      next range with a greater minimum.
      2) Removing a continue statement
      
      
      mysql-test/r/group_min_max.result:
        Bug#42846: Changed query plans
      mysql-test/r/range.result:
        Bug#42846: Test result.
      mysql-test/t/range.test:
        Bug#42846: Test case.
      sql/opt_range.cc:
        Bug#42846: The fix. 
        
        Part1: Previously, both endpoints from key2 were copied,
        which is not safe. Since ranges are processed in ascending
        order of minimum endpoints, it is safe to copy the minimum
        endpoint from key2 but not the maximum. The maximum may only
        be copied if there is no other range or the other range's
        minimum is greater than key2's maximum.
      5ef9ec9d
    • He Zhenxing's avatar
      Bug#47323 : mysqlbinlog --verbose displays bad output when events contain subset of columns · fa4006bc
      He Zhenxing authored
      Commit the non-NDB specific part (originated by frazer) to 5.1 mainline.
      fa4006bc
    • Mattias Jonsson's avatar
      6e4039ce
    • Mattias Jonsson's avatar
      merge into mysql-5.1-bugteam · ef31b39d
      Mattias Jonsson authored
      ef31b39d