1. 16 Oct, 2009 2 commits
  2. 15 Oct, 2009 7 commits
  3. 14 Oct, 2009 12 commits
    • Jorgen Loland's avatar
      merge · aea42df6
      Jorgen Loland authored
      aea42df6
    • Jorgen Loland's avatar
      Followup patch for BUG#47280 · a91b1826
      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.
      a91b1826
    • Georgi Kodinov's avatar
      merge · a820c732
      Georgi Kodinov authored
      a820c732
    • Georgi Kodinov's avatar
      merge · 88aa7af8
      Georgi Kodinov authored
      88aa7af8
    • Georgi Kodinov's avatar
      version change · 8fc8d661
      Georgi Kodinov authored
      8fc8d661
    • Georgi Kodinov's avatar
      merge · 9449be58
      Georgi Kodinov authored
      9449be58
    • Georgi Kodinov's avatar
      merged main to mysql-5.0-bugteam · b251cbd5
      Georgi Kodinov authored
      b251cbd5
    • Georgi Kodinov's avatar
      merged 5.1-main · 4bc86808
      Georgi Kodinov authored
      4bc86808
    • He Zhenxing's avatar
      Attempt to fix Windows testcase output issue · adab17b9
      He Zhenxing authored
      adab17b9
    • Jorgen Loland's avatar
      Bug#47280 - strange results from count(*) with order by multiple · bf0aa2bd
      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.
      bf0aa2bd
    • sunanda.menon@sun.com's avatar
      85f00a96
    • 's avatar
      Bug#46640: output from mysqlbinlog command in 5.1 breaks replication · 0ece5891
      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'.
      0ece5891
  4. 13 Oct, 2009 7 commits
  5. 12 Oct, 2009 5 commits
    • Satya B's avatar
      Applying Innodb Plugin 1.0.5 snapshot, part 14 · 672c04d6
      Satya B authored
      Sync the storage/innodb_plugin/mysql-test directory
      with Innodb_plugin-1.0.5/mysql-test directory
      
      Update the README file
      672c04d6
    • Satya B's avatar
      Applying InnoDB Plugin 1.0.5 snapshot, part 13 · d0c28265
      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.
      d0c28265
    • V Narayanan's avatar
      Bug#46448 trailing spaces are not ignored when user collation maps space != 0x20 · 7ad93d9b
      V Narayanan authored
      changing year in copyright header to 2009.
      7ad93d9b
    • V Narayanan's avatar
      Bug#46448 trailing spaces are not ignored when user collation maps space != 0x20 · db4e61ac
      V Narayanan authored
      Fixing copyright header in test collation file.
      db4e61ac
    • V Narayanan's avatar
      Bug#46448 trailing spaces are not ignored when user collation maps space != 0x20 · 3b02f76a
      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.
      3b02f76a
  6. 09 Oct, 2009 7 commits
    • Joerg Bruehe's avatar
      Fix Bug #47957 · 0f1547a0
      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.
      0f1547a0
    • Sergey Vojtovich's avatar
      Merge fix for BUG47073. · ff485672
      Sergey Vojtovich authored
      ff485672
    • Sergey Vojtovich's avatar
      BUG#47073 - valgrind errs, corruption,failed repair of partition, · 858713ed
      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).
      858713ed
    • Martin Hansson's avatar
      Merge of bug#42846 · 5e0f9604
      Martin Hansson authored
      5e0f9604
    • Satya B's avatar
      Applying InnoDB Plugin 1.0.5 snapshot ,part 12 · adb93e54
      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
      adb93e54
    • Mattias Jonsson's avatar
      Bug#46922 post push update · fa548cd0
      Mattias Jonsson authored
      Disable the test when it will not hit the open_files_limit
      fa548cd0
    • Satya B's avatar
      Applying InnoDB Plugin 1.0.5 snapshot, part 11 · a1bb24eb
      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.
      a1bb24eb