- 14 Mar, 2012 1 commit
-
-
Mattias Jonsson authored
Updated code comments according to reviewers requests.
-
- 22 Feb, 2012 1 commit
-
-
Mattias Jonsson authored
PARTITION STATISTICS Problem was the fix for bug#11756867; It always used the first partitions, and stopped after it checked 10 [sub]partitions. (or until it found a partition which would contain a match). This results in bad statistics for tables where the first 10 partitions don't represent the majority of the data (like when the first 10 partitions only contained a few rows in total). The solution was to take statisics from the partitions containing the most rows instead: Added an array of partition ids which is sorted by number of records in descending order. this array is used in records_in_range to cover as many records as possible in as few calls as possible. Also changed the limit of how many partitions to use for the statistics from a static max of 10 partitions, into a dynamic model: Maximum number of partitions is now log2(total number of partitions) taken from the ordered array. It will continue calling partitions records_in_range until it has checked: (total rows in matching partitions) * (maximum number of partitions) / (number of used partitions) Also reverted the changes for ha_partition::scan_time() and ha_partition::estimate_rows_upper_bound() to before the fix of bug#11756867. Since they are not as slow as records_in_range.
-
- 10 Feb, 2012 1 commit
-
-
Sunny Bains authored
During FIC error handling the trx->error_state was not being set to DB_SUCCESS after failure, before attempting the next DDL SQL operation. This reset to DB_SUCCESS is somewhat of a requirement though not explicitly stated anywhere. The fix is to reset it to DB_SUCCESS in row0merge.cc if row_merge_rename_indexes or row_merge_drop_index functions fail, also reset to DB_SUCCESS at trx commit. rb://935 Approved by Jimmy Yang.
-
- 06 Feb, 2012 1 commit
-
-
Vasil Dimov authored
GRACEFUL SHUTDOWN During startup mysql picks up .frm files from the tmpdir directory and tries to drop those tables in the storage engine. The problem is that when tmpdir ends in / then ha_innobase::delete_table() is passed a string like "/var/tmp//#sql123", then it wrongly normalizes it to "/#sql123" and calls row_drop_table_for_mysql() which of course fails to delete the table entry from the InnoDB dictionary cache. ha_innobase::delete_table() returns an error but nevertheless mysql wipes away the .frm file and the entry in the InnoDB dictionary cache remains orphaned with no easy way to remove it. The "no easy" way to remove it is to create a similar temporary table again, copy its .frm file to tmpdir under "#sql123.frm" and restart mysqld with tmpdir=/var/tmp (no trailing slash) - this way mysql will pick the .frm file after restart and will try to issue drop table for "/var/tmp/#sql123" (notice do double slash), ha_innobase::delete_table() will normalize it to "tmp/#sql123" and row_drop_table_for_mysql() will successfully remove the table entry from the dictionary cache. The solution is to fix normalize_table_name_low() to normalize things like "/var/tmp//table" correctly to "tmp/table". This patch also adds a test function which invokes normalize_table_name_low() with various inputs to make sure it works correctly and a mtr test that calls this test function. Reviewed by: Marko (http://bur03.no.oracle.com/rb/r/929/)
-
- 03 Feb, 2012 1 commit
-
-
Ashish Agarwal authored
CORRUPTED WHEN RUN CONCURRENTLY WITH ISSUE: Table corruption due to concurrent queries. Different threads running check, repair query along with insert. Locks not properly acquired in repair query. Rows are inserted inbetween repair query. SOLUTION: Mutex lock is acquired before the repair call. Concurrent queries wont effect the call to repair.
-
- 02 Feb, 2012 4 commits
-
-
Alexander Barkov authored
Recording correct test results. modified: mysql-test/suite/engines/funcs/r/db_alter_collate_ascii.result mysql-test/suite/engines/funcs/r/db_alter_collate_utf8.result
-
Marko Mäkelä authored
row_merge_buf_write(): Relax the bogus assertion.
-
Marko Mäkelä authored
-
Ashish Agarwal authored
CASES RESETS DATA POINTER TO SMAL ISSUE: Myisamchk doing sort recover on a table reduces data_file_length. Maximum size of data file decreases, lesser number of rows are stored. SOLUTION: Size of data_file_length is fixed to the original length.
-
- 01 Feb, 2012 1 commit
-
-
Ashish Agarwal authored
CASES RESETS DATA POINTER TO SMAL ISSUE: Myisamchk doing sort recover on a table reduces data_file_length. Maximum size of data file decreases, lesser number of rows are stored. SOLUTION: Size of data_file_length is fixed to the original length.
-
- 31 Jan, 2012 4 commits
-
-
Inaam Rana authored
rb://914 approved by: Marko Makela Poll in fil_rename_tablespace() after setting ::stop_ios flag can result in a hang because the other thread actually dispatching the IO won't wake IO helper threads or flush the tablespace before starting wait in fil_mutex_enter_and_prepare_for_io().
-
sayantan.dutta@oracle.com authored
No commit message
-
sayantan.dutta@oracle.com authored
-
Ramil Kalimullin authored
-
- 30 Jan, 2012 1 commit
-
-
Ramil Kalimullin authored
Fix for #36428/#38364 backported into 5.0.
-
- 26 Jan, 2012 1 commit
-
-
Guilhem Bichot authored
BUG#13519696 - 62940: SELECT RESULTS VARY WITH VERSION AND WITH/WITHOUT INDEX RANGE SCAN BUG#13453382 - REGRESSION SINCE 5.1.39, RANGE OPTIMIZER WRONG RESULTS WITH DECIMAL CONVERSION BUG#13463488 - 63437: CHAR & BETWEEN WITH INDEX RETURNS WRONG RESULT AFTER MYSQL 5.1. Those are all cases where the range optimizer got it wrong with > and >=.
-
- 25 Jan, 2012 1 commit
-
-
Marko Mäkelä authored
and some Valgrind instrumentation.
-
- 24 Jan, 2012 2 commits
-
-
Alexander Barkov authored
-
Alexander Barkov authored
- Reverting the patch for Bug # 12584302 The patch will be reverted in 5.1 and 5.5. The patch will not be reverted in 5.6, the change will be properly documented in 5.6. - Backporting DBUG_ASSERT not to crash on '0000-01-00' (already fixed in mysql-trunk (5.6))
-
- 23 Jan, 2012 1 commit
-
-
Alexander Barkov authored
Introducing new collations: utf8_general_mysql500_ci and ucs2_general_mysql500_ci, to reproduce behaviour of utf8_general_ci and ucs2_general_ci from mysql-5.1.23 (and earlier). The collations are added to simplify upgrade from mysql-5.1.23 and earlier. Note: The patch does not make new server start over old data automatically. Some manual upgrade procedures are assumed. Paul: please get in touch with me to discuss upgrade procedures when documenting this bug. modified: include/m_ctype.h mysql-test/r/ctype_utf8.result mysql-test/t/ctype_utf8.test mysys/charset-def.c strings/ctype-ucs2.c strings/ctype-utf8.c
-
- 17 Jan, 2012 1 commit
-
-
Nirbhay Choubey authored
DUMP ROUTINES Minor post-fix to avoid build failure when built with Werror.
-
- 16 Jan, 2012 4 commits
-
-
Marko Mäkelä authored
Relax a bogus debug assertion. Approved by Jimmy Yang on IM.
-
Nuno Carvalho authored
Test extra/rpl_tests/rpl_extra_col_master.test (used by rpl_extra_col_master_*) ends with the active connection pointing to the slave. Thus, the two last tests never succeed in changing the binlog format of the master away from 'row'. With correct active connection (master) tests fail for binlog 'statement' and 'mixed' formats. Tests rpl_extra_col_master_* only run when binary log format is row. Statement and mix replication do not make sense in this tests since it will try to execute statements on columns that do not exist. This fix is basically a backport from mysql-5.5, see changes done as part of BUG 39934.
-
Marko Mäkelä authored
When mode==BUF_KEEP_OLD, buffered inserts are being merged to the page. It is possible that a read request for a page was pending while the page was freed in DROP INDEX or DROP TABLE. In these cases, it is OK (although useless) to merge the buffered changes to the freed page.
-
Annamalai Gurusami authored
ISSUES WITH COPYING PARTITIONED INNODB TABLES FROM LINUX TO WINDOWS This problem was already fixed in mysql-trunk as part of bug #11755924. I am backporting the fix to mysql-5.1.
-
- 12 Jan, 2012 1 commit
-
-
Georgi Kodinov authored
-
- 11 Jan, 2012 3 commits
-
-
Karen Langford authored
-
Karen Langford authored
-
Bjorn Munch authored
-
- 10 Jan, 2012 2 commits
-
-
Nirbhay Choubey authored
routines. mysqldump in xml mode did not dump routines, events or triggers. This patch fixes this issue by fixing the if conditions that disallowed the dump of above mentioned objects in xml mode, and added the required code to enable dump in xml format.
-
Yasufumi Kinoshita authored
If we meet DB_TOO_MANY_CONCURRENT_TRXS during the execution tab_create_graph from row_create_table_for_mysql(), .ibd file for the table should be created already but was not deleted for the error handling. rb:875 approved by Jimmy Yang
-
- 06 Jan, 2012 2 commits
-
-
Hemant Kumar authored
Fixed it to work with "--repeat" option.
-
Hemant Kumar authored
Fixed the testcase using timestamp logic while doing grep from the error file.
-
- 02 Jan, 2012 1 commit
-
-
Tatjana Azundris Nuernberg authored
If init_command was incorrect, we couldn't let users execute queries, but we couldn't report the issue to the client either as it does not expect error messages before even sending a command. Thus, we simply disconnected them without throwing a clear error. We now go through the proper sequence once (without executing any user statements) so we can report back what the problem is. Only then do we disconnect the user. As always, root remains unaffected by this as init_command is (still) not executed for them.
-
- 28 Dec, 2011 1 commit
-
-
Marko Mäkelä authored
InnoDB: Remove HAVE_purify, UNIV_INIT_MEM_TO_ZERO, UNIV_SET_MEM_TO_ZERO. The compile-time setting HAVE_purify can mask potential bugs. It is being set in PB2 Valgrind runs. We should simply get rid of it, and replace it with UNIV_MEM_INVALID() to declare uninitialized memory as such in Valgrind-instrumented binaries. os_mem_alloc_large(), ut_malloc_low(): Remove the parameter set_to_zero. ut_malloc(): Define as a macro that invokes ut_malloc_low(). buf_pool_init(): Never initialize the buffer pool frames. All pages must be initialized before flushing them to disk. mem_heap_alloc(): Never initialize the allocated memory block. os_mem_alloc_nocache(), ut_test_malloc(): Unused function, remove. rb:813 approved by Jimmy Yang
-
- 23 Dec, 2011 2 commits
-
-
Ramil Kalimullin authored
COMMUNICATION PACKETS, ERROR_CODE: 1160 Addendum: for some queries table->in_use might be NULL - check it.
-
Ramil Kalimullin authored
COMMUNICATION PACKETS, ERROR_CODE: 1160 If idle FEDERATED table is evicted from the table cache when a connection to remote server is lost, query that initiated eviction may fail. If this query is executed by slave SQL thread it may fail as well. An error of close was stored in diagnostics area, which was later attributed to the statement that caused eviction. With this patch FEDERATED clears an error of close.
-
- 22 Dec, 2011 2 commits
-
-
Inaam Rana authored
-
Inaam Rana authored
rb://865 approved by: Jimmy Integer overflow causes division by zero.
-
- 16 Dec, 2011 1 commit
-
-
Joerg Bruehe authored
-