Commit graph

69889 commits

Author SHA1 Message Date
Bjorn Munch
afcadf8254 merge 5.5 => 5.5-mtr, redo 2011-11-03 10:50:56 +01:00
Sneha Modi
2fb9894131 BUG#11754168: Reverting back changes as it is making other tests fail. 2011-11-03 12:30:09 +05:30
Sneha MOdi
9ab8418fc0 BUG#11754170: TEST CASE FOR BUG#28211 IS DISABLED IN QUERY_CACHE.TEST as RENAME DATABASE
and query_cache don't play along nicely.

An alternative for RENAME DATABSE using RENAME TABLE has been used to implement this.
2011-11-02 18:42:52 +05:30
Sneha MOdi
e51fcf8f72 BUG#11754168:PARTS OF INDEX_MERGE_INNODB.TEST ARE DISABLED DUE TO EXPLAIN DIFFS
Parts of index_merge_innodb were disabled.These have been enabled with a few changes 
and the test is being made experimental to study it's behaviour.
2011-11-02 16:53:41 +05:30
Tor Didriksen
adb6c903bb NULL merge 5.1 => 5.5 2011-11-01 07:52:04 +01:00
Tor Didriksen
0e2af2cdd3 Bug#12406055 post-push fix: unused variable 'num_chars' in optimized build.
Also fixed possibly uninitialized use of need_copy_table_res.
2011-11-01 07:50:54 +01:00
Tor Didriksen
05e541df23 null merge 5.1 => 5.5 2011-10-31 10:12:20 +01:00
Tor Didriksen
2e7dd62646 Bug#12406055 post-push fix: unused variable 'num_chars' in optimized build. 2011-10-31 10:10:04 +01:00
Andrei Elkin
b3b1e4c785 BUG#11763573
post-push fixes for show_slave_io_error= 1 of wait_for_slave_io_error.inc;
Unix and win format path specifically so few tests have to change show_slave_io_error
to zero.
2011-10-29 00:07:16 +03:00
Andrei Elkin
c4f98591eb merge from 5.5 to local tree. 2011-10-28 16:11:26 +03:00
Andrei Elkin
95fdeb89c2 Bug#11763573 - 56299: MUTEX DEADLOCK WITH COM_BINLOG_DUMP, BINLOG PURGE, AND PROCESSLIST/KILL
The bug case is similar to one fixed earlier bug_49536.
Deadlock involving LOCK_log appears to be possible because the purge running thread
is holding LOCK_log whereas there is no sense of doing that and which fact was
exploited by the earlier bug fixes.

Fixed with small reengineering of rotate_and_purge(), adding two new methods and
setting up a policy to execute those instead of the former
rotate_and_purge(RP_LOCK_LOG_IS_ALREADY_LOCKED).
The policy for using rotate(), purge() is that if the caller acquires LOCK_log itself,
it should call rotate(), release the mutex and run purge().

Side effect of this patch is refining error message of bug@11747416 to print
the whole path.



mysql-test/suite/rpl/r/rpl_cant_read_event_incident.result:
  the file name printing is changed to a relative path instead of just the file name.
mysql-test/suite/rpl/r/rpl_log_pos.result:
  the file name printing is changed to a relative path instead of just the file name.
mysql-test/suite/rpl/r/rpl_manual_change_index_file.result:
  the file name printing is changed to a relative path instead of just the file name.
mysql-test/suite/rpl/r/rpl_packet.result:
  the file name printing is changed to a relative path instead of just the file name.
mysql-test/suite/rpl/r/rpl_rotate_purge_deadlock.result:
  new result file is added.
mysql-test/suite/rpl/t/rpl_cant_read_event_incident.test:
  The test of that bug can't satisfy windows and unix backslash interpretation so windows
  execution is chosen to bypass.
mysql-test/suite/rpl/t/rpl_rotate_purge_deadlock-master.opt:
  new opt file is added.
mysql-test/suite/rpl/t/rpl_rotate_purge_deadlock.test:
  regression test is added as well as verification of a 
  possible side effect of the fixes is tried.
sql/log.cc:
  LOCK_log is never taken during execution of log purging routine.
  The former MYSQL_BIN_LOG::rotate_and_purge is made to necessarily 
  acquiring and releasing LOCK_log. 
  If caller takes the mutex itself it has to use a new rotate(), purge() 
  methods combination and to never let purge() be run with LOCK_log grabbed.
  
  
  
  split apart to allow
  the caller to chose either it
  Simulation of concurrently rotating/purging threads is added.
sql/log.h:
  new rotate(), purge() methods are added to be used instead of
  the former rotate_and_purge(RP_LOCK_LOG_IS_ALREADY_LOCKED).
  rotate_and_purge() signature is changed. Caller should not call rotate_and_purge()
  but rather {rotate(), purge()} if LOCK_log is acquired by it.
sql/rpl_injector.cc:
  changes to reflect the new rotate_and_purge() signature.
sql/sql_class.h:
  unnecessary constants are removed.
sql/sql_parse.cc:
  changes to reflect the new rotate_and_purge() signature.
sql/sql_reload.cc:
  changes to reflect the new rotate_and_purge() signature.
sql/sql_repl.cc:
  followup for bug@11747416: the file name printing is changed to a relative 
  path instead of just the file name.
2011-10-27 17:14:41 +03:00
Marko Mäkelä
bd71cfc4fa Merge mysql-5.1 to mysql-5.5. 2011-10-27 15:23:58 +03:00
Marko Mäkelä
1d9c841c3b Bug #12884631 62146: TABLES ARE LOST FOR DDL
row_rename_table_for_mysql(): Return DB_ERROR instead of DB_SUCCESS
when fil_rename_tablespace() returns an error. This bug was introduced
in the InnoDB Plugin.

Approved by Sunny Bains over IM.
2011-10-27 14:58:12 +03:00
Jimmy Yang
93da33309f Fix Bug #11835889 - INNODB ASSERTS ON BAD FILE READ, INDEX TRANSLATION
TABLE ERROR, RECOVERY
            
rb://792 approved by Sunny Bains
2011-10-27 00:40:53 -07:00
Alexander Nozdrin
1b7276ffef Null-merge from mysql-5.1. 2011-10-27 10:16:36 +04:00
Karen Langford
006f649f4b Increased version number after cloning 5.1.60 2011-10-26 20:48:42 +02:00
Hery Ramilison
8b482e837b cloning 5.5.18 off 2011-10-26 20:44:18 +02:00
Nirbhay Choubey
324f3e6a0f Local merge from mysql-5.1. 2011-10-24 13:48:54 +05:30
Nirbhay Choubey
f66002f8eb WL#5945 - Improve libedit library
Fixed a misplaced parenthesis, injected due to
syncing from libedit CVS head.
2011-10-24 13:35:28 +05:30
Dmitry Lenev
a656ff83c8 Fix for bug #13116518 - "OPEN_TABLES() SHOULD NOT ALLOCATE AND FREE
NEW_FRM_MEM WITHOUT NEEDING TO".

During the process of opening tables for a statement, we allocated
memory which was used only during view loading even in cases when the
statement didn't use any views. Such an unnecessary allocation (and
corresponding freeing) might have caused significant performance
overhead in some workloads. For example, it caused up to 15% slowdown
in a simple stored routine calculating Fibonacci's numbers.

This memory was pre-allocated as part of "new_frm_mem" MEM_ROOT
initialization at the beginning of open_tables(). 

This patch addresses this issue by turning off memory pre-allocation
during initialization for this MEM_ROOT. Now, memory on this root
will be allocated only at the point when the first .FRM for a view is 
opened.

The patch doesn't contain a test case since it is hard to test the
performance improvements or the absence of memory allocation in our
test framework.
2011-10-23 09:37:35 +04:00
Ashish Agarwal
3d24c28a40 bug#11758979 - 51252: ARCHIVE TABLES STILL FAIL UNDER STRESS
TESTS: CRASH, CORRUPTION, 4G MEMOR

Issue: Valgrind errors due to checksum and optimize
       query against archive tables with null columns.
       Table record buffer was not initialized.

Solution: Initialize the record buffer.
2011-10-22 17:04:38 +05:30
Nirbhay Choubey
743d8a4891 Merge of fix for bug#13106585 from mysql-5.1. 2011-10-21 18:14:35 +05:30
Nirbhay Choubey
62a40350b1 Bug#13106585 PUSH FOR "WL#5945 : IMPROVE LIBEDIT LIBRARY"
BREAKS SOURCE RELEASE BUILD

Some of the required files were not getting copied while
performing 'make dist' and hence the build failed for
the created distribution source.

Added the missing files to Makefile.am.
2011-10-21 18:10:12 +05:30
Ashish Agarwal
3e250dc83f bug#11758979 - 51252: ARCHIVE TABLES STILL FAIL UNDER STRESS
TESTS: CRASH, CORRUPTION, 4G MEMOR

Issue: Valgrind errors due to checksum and optimize 
       query angaist archive tables with null columns.
       Table record buffer was not initialized.

Solution: Initialize the record buffer.
2011-10-21 16:19:58 +05:30
Sergey Vojtovich
afdfc6acf9 Merge. 2011-10-21 09:35:07 +04:00
Sergey Vojtovich
e1c4021bde Merge. 2011-10-21 09:30:56 +04:00
Marko Mäkelä
f6064041d2 Merge mysql-5.1 to mysql-5.5. 2011-10-21 06:54:49 +03:00
Marko Mäkelä
8a0be8a541 Bug#13116045 Compilation failure using GCC 4.6.1 in btr/btr0cur.c
btr_record_not_null_field_in_rec(): Remove the parameter rec.
Use rec_offs_nth_sql_null() instead of rec_get_nth_field().

rb:788 approved by Jimmy Yang
2011-10-21 06:32:16 +03:00
Bjorn Munch
901e9b8469 merge 5.5 -> 5.5-mtr 2011-10-20 13:21:12 +02:00
Sergey Vojtovich
de8c70e70b BUG#11757032 - 49030: OPTIMIZE TABLE BREAKS MYISAM TABLE WHEN
USING MYISAM_USE_MMAP ON WINDOWS

When OPTIMIZE/REPAIR TABLE is switching to new data file,
old data file is removed while memory mapping is still
active.

With 5.1 implementation of nt_share_delete() it is not
permitted to remove mmaped file.

This fix disables memory mapping for mi_repair() operations.

mysql-test/r/myisam.result:
  A test case for BUG#11757032.
mysql-test/t/myisam.test:
  A test case for BUG#11757032.
storage/myisam/ha_myisam.cc:
  mi_repair*() functions family use file I/O even if memory
  mapping is available.
  
  Since mixing mmap I/O and file I/O may cause various artifacts,
  memory mapping must be disabled.
storage/myisam/mi_delete_all.c:
  Clean-up: do not attempt to remap file after truncate, since
  there is nothing to map.
2011-10-20 15:03:22 +04:00
Bjorn Munch
bf456a8772 Removing copyright headers from test files 2011-10-19 23:44:17 +02:00
Joerg Bruehe
8082c70b10 Merge the changes of 5.5.17 back into main 5.5 2011-10-19 13:39:43 +02:00
Bjorn Munch
14dff92d58 Remove copyright header from parser_stack.test 2011-10-19 13:36:57 +02:00
unknown
434dd8635e Bug #11754855 46528: NEED A WAY TO PASS A VARIABLE TO MTR COMMANDS
modified function do_get_error in mysqltest.cc to handle multiple variable passed
added test case to mysqltest.test to verify handling to multiple errors passed
2011-10-19 12:53:52 +05:30
Nirbhay Choubey
06f57a7021 Merge of fix for bug#13102538 from mysql-5.1. 2011-10-18 22:53:05 +05:30
Nirbhay Choubey
fd955448c8 Bug#13102538 : COMPILE ERROR ON SOLARIS WHEN COMPILING
WITH LIBEDIT

Libedit won't build on platforms that do not provide
"sys/cdefs.h".

Removed the inclusion of cdefs.h from all files
other that sys.h, which includes this file only
when the header is found while configuring.
2011-10-18 22:47:32 +05:30
unknown
3c869a521a BUG#12968567: mysql_plugin : incorrect return from bootstrap failure
This patch corrects a defect whereby the bootstrap_server() method was
returning 0 instead of the error code generated. The code has been changed to
return the correct value returned from the bootstrap command.
2011-10-17 15:33:54 -04:00
unknown
d1846e3b95 BUG#12968815: mysql_plugin : disable requires plugin name but doesn't use it
This patch corrects a defect in the building of the DELETE commands for
disabling a plugin whereby only the original plugin data was deleted. If there
were other plugins, the delete did not remove the rows. The code has been
changed to remove all rows from the mysql.plugin table that were inserted when
the plugin was loaded. The test has also been changed to correctly identify if
all rows have been deleted.
2011-10-17 15:30:28 -04:00
Alfranio Correia
7b4ebc16c3 Introduced this code to make the gcc 4.6.1 compiler happy. When
warnings are converted to errors, the compiler complains about
the fact that binlog_can_be_corrupted is defined but never used.

We need to check if this is a dead code or if someone removed any
code by mistake.
2011-10-14 14:24:15 +01:00
Nirbhay Choubey
0368a8bd3a Merge of changeset of WL#5945 from mysql-5.1. 2011-10-14 01:17:46 +05:30
Nirbhay Choubey
d96c25a790 WL#5945 : Improve libedit library
Updated libedit library.
2011-10-14 01:03:25 +05:30
Bjorn Munch
c43e207d23 null upmerge 2011-10-12 17:30:51 +02:00
Bjorn Munch
d5b243b740 merge 5.5 => 5.5-mtr 2011-10-12 17:29:19 +02:00
Bjorn Munch
e37fdbb190 merge 5.1 => 5.1-mtr 2011-10-12 17:26:32 +02:00
Sergey Glukhov
8a2286baed automerge 2011-10-12 18:02:05 +04:00
Sergey Glukhov
bd4785a6b7 Bug#11750518 41090: ORDER BY TRUNCATES GROUP_CONCAT RESULT
When temporary tables is used for result sorting
result field for gconcat function is created using
group_concat_max_len size. It leads to result truncation
when character_set_results is multi-byte character set due
to insufficient tmp table field size.
The fix is to increase temporary table field size for
gconcat. Method make_string_field() is overloaded
for Item_func_group_concat class and uses
max_characters * collation.collation->mbmaxlen size for
result field. max_characters is maximum number of characters
what can fit into max_length size.


mysql-test/r/ctype_utf16.result:
  test result
mysql-test/r/ctype_utf32.result:
  test result
mysql-test/r/ctype_utf8.result:
  test result
mysql-test/t/ctype_utf16.test:
  test case
mysql-test/t/ctype_utf32.test:
  test case
mysql-test/t/ctype_utf8.test:
  test case
sql/item.h:
  make Item::make_string_field() virtual
sql/item_sum.cc:
  added Item_func_group_concat::make_string_field(TABLE *table) method
  which uses max_characters * collation.collation->mbmaxlen size for
  result item. max_characters is maximum number of characters what can
  fit into max_length size.
sql/item_sum.h:
  added Item_func_group_concat::make_string_field(TABLE *table) method
2011-10-12 17:41:25 +04:00
Marko Mäkelä
5dc19b9ce1 Merge mysql-5.1 to mysql-5.5. 2011-10-12 09:21:33 +03:00
Marko Mäkelä
6d59064948 Bug#13006367 62487: innodb takes 3 minutes to clean up the adaptive
hash index at shutdown

btr_search_disable(): Just drop the entire adaptive hash index,
without dropping every record separately.

buf_pool_clear_hash_index(): Renamed and simplified from
buf_pool_drop_hash_index(). Set block->index = NULL for every block in
the buffer pool. Do not release the btr_search_latch. The caller will
have to adjust other data structures.

Remove block->is_hashed. It is redundant, should be always equal to
block->index != NULL.

Remove btr_search_fully_disabled, btr_search_enabled_mutex, and
SYNC_SEARCH_SYS_CONF. We drop the AHI in one pass, without releasing
the btr_search_latch in between.

Replace void* with const rec_t* and add assertions on btr_search_latch
and btr_search_enabled to ha0ha.h, ha0ha.ic, ha0ha.c.

page_set_max_trx_id(): Ignore the adaptive hash index. I forgot to
push this in rb:750.

btr0sea.c: Always after acquiring btr_search_latch, check for
block->index==NULL or !btr_search_enabled. We can now set
block->index=NULL while only holding btr_search_latch in exclusive
mode. Always acquire btr_search_latch before reading block->index,
except in shortcuts when testing for block->index == NULL.

ha_clear(), ha_search(): Unused function, remove.

buf_page_peek_if_search_hashed(): Remove. This function may avoid
latching a page at the cost of doing a duplicate buf_pool->page_hash
lookup.

rb:775 approved by Inaam Rana
2011-10-12 09:00:49 +03:00
Vinay Fisrekar
b7a4918fe8 merge 5.1 -> 5.5
adjust/modify tests as they were failing if system time zone is set differently.
2011-10-12 10:19:46 +05:30
Vinay Fisrekar
73db2a1504 bug#11766457 - adjusting/modifying the the tests as tests were failing if system time zone is set differently. 2011-10-12 10:10:52 +05:30