Commit graph

58771 commits

Author SHA1 Message Date
Alexey Kopytov
5db734a896 Bug #47123: Endless 100% CPU loop with STRAIGHT_JOIN
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.
2009-10-13 19:49:32 +04:00
Satya B
12a4c67b22 NULL Merge Innodb snapshot 5.1-ss5921 to mysql-trunk-merge 2009-10-13 16:11:08 +05:30
Alexander Nozdrin
0f51423532 Merge from mysql-5.1. 2009-10-13 13:42:38 +04:00
Satya B
1685375812 merge to mysql-5.1-bugteam 2009-10-13 12:48:29 +05:30
Satya B
2bcb511072 Applying Innodb Plugin 1.0.5 snapshot, part 15
- Fix a typo and adjust the CMakeLists.txt
- Remove the README file as it doesn't exist in 
  Innodb plugin 1.0.5
2009-10-13 12:41:42 +05:30
Ramil Kalimullin
5a23617a80 Fix for bug#47963: Wrong results when index is used
Problem: using null microsecond part (e.g. "YYYY-MM-DD HH:MM:SS.0000") 
in a WHERE condition may lead to wrong results due to improper
DATETIMEs comparison in some cases.

Fix: as we compare DATETIMEs as strings we must trim trailing 0's
in such cases.
2009-10-13 09:43:27 +05:00
He Zhenxing
eb1b89a9ef Auto merge 2009-10-13 12:24:59 +08:00
814a3cc246 Bug#45578: Test binlog_tmp_table fails ramdonly on PB2: Unknown table 't2'
The bug has been closed.
2009-10-13 10:26:15 +08:00
Satya B
672c04d657 Applying Innodb Plugin 1.0.5 snapshot, part 14
Sync the storage/innodb_plugin/mysql-test directory
with Innodb_plugin-1.0.5/mysql-test directory

Update the README file
2009-10-12 18:26:02 +05:30
Kristofer Pettersson
1574e9cd3f Bug#46944 Internal prepared XA transction XIDs are not
removed if server_id changes

When MySQL crashes (or a snapshot is taken which simulates
a crash), then it is possible that internal XA
transactions (used to sync the binary log and InnoDB)
can be left in a PREPARED state, whereas they should be
rolled back.  This is done when the server_id changes
before the restart occurs.  

This patch releases he restriction that the server_id
should be consistent if the XID is to be considerred
valid. The rollback phase should then be able to
clean up all pending XA transactions.
2009-10-12 14:46:00 +02:00
Satya B
d0c28265ae Applying InnoDB Plugin 1.0.5 snapshot, part 13
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.
2009-10-12 17:30:56 +05:30
V Narayanan
7ad93d9b2c Bug#46448 trailing spaces are not ignored when user collation maps space != 0x20
changing year in copyright header to 2009.
2009-10-12 15:25:59 +05:30
V Narayanan
db4e61acd4 Bug#46448 trailing spaces are not ignored when user collation maps space != 0x20
Fixing copyright header in test collation file.
2009-10-12 15:05:40 +05:30
V Narayanan
3b02f76aaf Bug#46448 trailing spaces are not ignored when user collation maps space != 0x20
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.
2009-10-12 13:13:15 +05:30
Joerg Bruehe
0f1547a0ab Fix Bug #47957
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.
2009-10-09 21:31:37 +02:00
Sergey Vojtovich
ff4856723e Merge fix for BUG47073. 2009-10-09 21:21:21 +05:00
Sergey Vojtovich
858713edd3 BUG#47073 - valgrind errs, corruption,failed repair of partition,
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).
2009-10-09 21:16:29 +05:00
Alexander Nozdrin
b16e88b292 Merge from mysql-trunk. 2009-10-09 20:03:03 +04:00
Alexander Nozdrin
3dcbeb36b4 Update version in default.conf. 2009-10-09 19:54:56 +04:00
Martin Hansson
5e0f960495 Merge of bug#42846 2009-10-09 17:35:04 +02:00
Satya B
adb93e54e8 Applying InnoDB Plugin 1.0.5 snapshot ,part 12
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
2009-10-09 19:43:15 +05:30
Mattias Jonsson
fa548cd0ff Bug#46922 post push update
Disable the test when it will not hit the open_files_limit
2009-10-09 16:12:01 +02:00
Satya B
a1bb24eb2b Applying InnoDB Plugin 1.0.5 snapshot, part 11
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.
2009-10-09 19:32:18 +05:30
Satya B
8fffb92862 Applying InnoDB Plugin 1.0.5 snapshot, part 10
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.
2009-10-09 19:07:47 +05:30
Joerg Bruehe
7a69adf492 Upmerge (automerge) into 5.1 2009-10-09 15:21:45 +02:00
Bjorn Munch
de54fa30a6 avoid regexp warning after 46625 2009-10-09 15:18:43 +02:00
Bjorn Munch
1cfe27ba58 avoid regexp warning after 46625 2009-10-09 15:16:36 +02:00
Satya B
15fd02cb02 Applying InnoDB Plugin 1.0.5 snapshot , part 9
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.
  ------------------------------------------------------------------------
2009-10-09 18:22:18 +05:30
Satya B
913f8903d0 Applying InnoDB Plugin 1.0.5 snapshot , part 8
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.
2009-10-09 17:49:13 +05:30
Martin Hansson
eded60737d Bug#42846: wrong result returned for range scan when using
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
2009-10-09 11:30:40 +02:00
Alexander Nozdrin
51eff4b320 Pull from mysql-trunk. 2009-10-09 13:26:26 +04:00
Alexander Nozdrin
f1c6580b49 Change the version tag (to 5.5.0). 2009-10-09 13:22:26 +04:00
Alexander Nozdrin
56d12419a2 Merge from mysql-trunk. 2009-10-09 12:59:48 +04:00
He Zhenxing
090985ffe6 Bug#47323 : mysqlbinlog --verbose displays bad output when events contain subset of columns
Commit the non-NDB specific part (originated by frazer) to 5.1 mainline.
2009-10-09 16:54:48 +08:00
Alexander Nozdrin
0ca1292d3b Fix default.cof. 2009-10-09 12:48:08 +04:00
Mattias Jonsson
bf711a743e updated to latest mysql-5.1-bugteam before push 2009-10-09 10:12:50 +02:00
Mattias Jonsson
cd73187378 merge into mysql-5.1-bugteam 2009-10-09 09:56:07 +02:00
Mattias Jonsson
5105fd1cc2 merge into mysql-5.1-bugteam 2009-10-09 09:54:48 +02:00
Magnus Blåudd
e94ae02cbc BUG#47850: too many files built in regex/
- Don't build split.c or debug.c since they are not part of the actual regex library
2009-10-09 09:53:29 +02:00
Kent Boortz
60132409f8 "MySQL Network" => "MySQL Enterprise" 2009-10-08 22:55:28 +02:00
Joerg Bruehe
5184530308 Fix bug#47923 New "mf_keycache.c" requires thread support
The bug is a compilation issue:
Function "find_key_block()" had thread operations
which were not guarded by "#if THREAD", add that now.
2009-10-08 21:58:17 +02:00
Alexander Nozdrin
3f76ffd433 Mark main.log_tables experimental (Bug 47924). 2009-10-08 23:13:33 +04:00
Frazer Clement
5f8cfacf6c Merge 5.0-bugteam-> 5.1-bugteam 2009-10-08 16:36:36 +01:00
Frazer Clement
844eb557e6 Fix compile break from bug#39663 fix 2009-10-08 16:23:15 +01:00
Mattias Jonsson
27b80f9db8 Bug#44059: Incorrect cardinality of indexes on a partitioned table
backport for bug#44059 from mysql-pe to mysql-5.1-bugteam

Using the partition with most rows instead of first partition
to estimate the cardinality of indexes.
2009-10-08 15:58:17 +02:00
Mattias Jonsson
87a4644db8 Bug#46922: crash when adding partitions and open_files_limit
is reached

Problem was bad error handling, leaving some new temporary
partitions locked and initialized and some not yet initialized
and locked, leading to a crash when trying to unlock the not
yet initialized and locked partitions

Solution was to unlock the already locked partitions, and not
include any of the new temporary partitions in later unlocks
2009-10-08 15:36:43 +02:00
Georgi Kodinov
d9ce9f215d automerge 2009-10-08 16:24:58 +03:00
Georgi Kodinov
03904aee4e Addendum to the fix for bug 43029 2009-10-08 16:21:07 +03:00
Magnus Blåudd
b92892dc9c Bug #47795 CMake, storage engine name different from directory name
- Read plug.in to fid the name of the engine to link with, does not have
   to be same as engine dir
 - Use engine dir when figuring out which libraries to build limbysqld with
2009-10-08 15:19:24 +02:00
Satya B
bf3b0747af Applying InnoDB Plugin 1.0.5 snapshot, part 7
From revisions r5792 to r5864

Detailed revision comments:

r5792 | vasil | 2009-09-09 08:35:58 -0500 (Wed, 09 Sep 2009) | 32 lines
branches/zip:

Fix a bug in manipulating the variable innodb_old_blocks_pct:

for any value assigned it got that value -1, except for 75. When
assigned 75, it got 75.

  mysql> set global innodb_old_blocks_pct=15;
  Query OK, 0 rows affected (0.00 sec)
  
  mysql> show variables like 'innodb_old_blocks_pct';
  +-----------------------+-------+
  | Variable_name         | Value |
  +-----------------------+-------+
  | innodb_old_blocks_pct | 14    | 
  +-----------------------+-------+
  1 row in set (0.00 sec)
  
  mysql> set global innodb_old_blocks_pct=75;
  Query OK, 0 rows affected (0.00 sec)
  
  mysql> show variables like 'innodb_old_blocks_pct';
  +-----------------------+-------+
  | Variable_name         | Value |
  +-----------------------+-------+
  | innodb_old_blocks_pct | 75    | 
  +-----------------------+-------+

After the fix it gets exactly what was assigned.

Approved by:	Marko (via IM)

r5798 | calvin | 2009-09-09 10:28:10 -0500 (Wed, 09 Sep 2009) | 5 lines
branches/zip:

HA_ERR_TOO_MANY_CONCURRENT_TRXS is added in 5.1.38.
But the plugin should still work with previous versions
of MySQL.
r5804 | marko | 2009-09-10 00:29:31 -0500 (Thu, 10 Sep 2009) | 1 line
branches/zip: trx_cleanup_at_db_startup(): Fix a typo in comment.
r5822 | marko | 2009-09-10 05:10:20 -0500 (Thu, 10 Sep 2009) | 1 line
branches/zip: buf_page_release(): De-stutter the function comment.
r5825 | marko | 2009-09-10 05:47:09 -0500 (Thu, 10 Sep 2009) | 20 lines
branches/zip: Reduce mutex contention that was introduced when
addressing Bug #45015 (Issue #316), in r5703.

buf_page_set_accessed_make_young(): New auxiliary function, called by
buf_page_get_zip(), buf_page_get_gen(),
buf_page_optimistic_get_func(). Call ut_time_ms() outside of
buf_pool_mutex. Use cached access_time.

buf_page_set_accessed(): Add the parameter time_ms, so that
ut_time_ms() need not be called while holding buf_pool_mutex.

buf_page_optimistic_get_func(), buf_page_get_known_nowait(): Read
buf_page_t::access_time without holding buf_pool_mutex. This should be
OK, because the field is only used for heuristic purposes.

buf_page_peek_if_too_old(): If buf_pool->freed_page_clock == 0, return
FALSE, so that we will not waste time moving blocks in the LRU list in
the warm-up phase or when the workload fits in the buffer pool.

rb://156 approved by Sunny Bains
r5826 | marko | 2009-09-10 06:29:46 -0500 (Thu, 10 Sep 2009) | 12 lines
branches/zip: Roll back recovered dictionary transactions before
dropping incomplete indexes (Issue #337).

trx_rollback_or_clean_recovered(ibool all): New function, split from
trx_rollback_or_clean_all_recovered().  all==FALSE will only roll back
dictionary transactions.

recv_recovery_from_checkpoint_finish(): Call
trx_rollback_or_clean_recovered(FALSE) before
row_merge_drop_temp_indexes().

rb://158 approved by Sunny Bains
r5858 | vasil | 2009-09-11 12:46:47 -0500 (Fri, 11 Sep 2009) | 4 lines
branches/zip:

Fix the indentation of the closing bracket.

r5863 | vasil | 2009-09-12 02:07:08 -0500 (Sat, 12 Sep 2009) | 10 lines
branches/zip:

Check that pthread_t can indeed be passed to Solaris atomic functions, instead
of assuming that it can be passed if 0 can be assigned to it. It could be that:
* 0 can be assigned, but pthread_t cannot be passed and
* 0 cannot be assigned but pthread_t can be passed

Better to check what we are interested in, not something else and make
assumptions.

r5864 | vasil | 2009-09-12 02:22:55 -0500 (Sat, 12 Sep 2009) | 4 lines
branches/zip:

Include string.h which is needed for memset().
2009-10-08 18:35:59 +05:30