- 03 Nov, 2010 5 commits
-
-
Sunny Bains authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Improve the diagnostics of buffer pool accesses for B-trees, so that the file names and line numbers of the real calls are shown instead of the line of the buf_page_get() call in btr_block_get(). btr_page_get(): Replaced with a macro. btr_block_get_func(): Renamed from btr_block_get(). Add file, line. btr_block_get(): A macro that passes the __FILE__, __LINE__ to btr_block_get_func(). dict_truncate_index_tree(): Replace a btr_page_get() call with btr_block_get(), since we are only latching the page, not accessing it.
-
Marko Mäkelä authored
and make some function comments more accurate.
-
Sunny Bains authored
This patch doesn't get rid of the need to acquire the dict_sys->mutex but reduces the need to keep the mutex locked for the duration of the query to fsp_get_available_space_in_free_extents() from ha_innobase::info(). This is a port of revno:3548 from the builtin to the plugin. rb://501 Approved by Jimmy Yang and Marko Makela.
-
- 02 Nov, 2010 4 commits
-
-
kevin.lewis@oracle.com authored
removed and replaced by the comprehensive innodb-create-options.test. It uses the rules listed in the comments at the top of that test. This patch introduces these differences from previous behavior; 1) KEY_BLOCK_SIZE=0 is allowed by Innodb in both strict and non-strict mode with no errors or warnings. It was previously used by the server to set KEY_BLOCK_SIZE to undefined. (Bug#56628) 2) An explicit valid non-DEFAULT ROW_FORMAT always takes priority over a valid KEY_BLOCK_SIZE. (bug#56632) 3) Automatic use of COMPRESSED row format is only done if the ROW_FORMAT is DEFAULT or unspecified. 4) ROW_FORMAT=FIXED is prevented in strict mode. This patch also includes various formatting changes for consistency with InnoDB coding standards. Related Bugs Bug#54679: ALTER TABLE causes compressed row_format to revert to compact Bug#56628: ALTER TABLE .. KEY_BLOCK_SIZE=0 produces untrue warning or unnecessary error Bug#56632: ALTER TABLE implicitly changes ROW_FORMAT to COMPRESSED
-
Vasil Dimov authored
InnoDB Plugin 1.0.13 has been released with MySQL 5.1.52.
-
Marko Mäkelä authored
columns again This is follow-up to Bug #54358. Not all occurrences of the bug were fixed. We need to check all calls to btr_copy_externally_stored_field_prefix_low() and do the right thing when the pointer to the off-page column is null (full of zero bytes). It turns out that only the call to btr_copy_externally_stored_field_prefix() in row_sel_sec_rec_is_for_blob() needs to be changed. For fetching complete off-page columns rather than prefixes, the function btr_rec_copy_externally_stored_field() already checks if the pointer is null (all-zero). Two of its callers (row_merge_copy_blobs() and row_sel_fetch_columns()) are never executed as READ COMMITTED and can rightfully assert that the fetch succeeded. The third caller, row_sel_store_mysql_rec(), already does the right thing. The calls in row_upd_ext_fetch() and trx_undo_page_fetch_ext() must expect that the off-page column exists. Update and rollback are locking operations, never READ UNCOMMITTED.
-
Marko Mäkelä authored
-
- 28 Oct, 2010 2 commits
-
-
Calvin Sun authored
On Windows, the parameter for number of bytes passed into WriteFile() and ReadFile() is DWORD. Casting is needed to silence the warning on 64-bit Windows. Also, adding several asserts to ensure the variable for number of bytes is no more than 32 bits, even on 64-bit Windows. This is for InnoDB Plugin. rb://415 Approved by: Inaam
-
Calvin Sun authored
On Windows, the parameter for number of bytes passed into WriteFile() and ReadFile() is DWORD. Casting is needed to silence the warning on 64-bit Windows. Also, adding several asserts to ensure the variable for number of bytes is no more than 32 bits, even on 64-bit Windows. This is for built-in InnoDB. rb://415 Approved by: Inaam
-
- 27 Oct, 2010 2 commits
-
-
Vasil Dimov authored
-
Anitha Gopi authored
-
- 26 Oct, 2010 1 commit
-
-
Inaam Rana authored
rb://498 Fix handling of update_undo_logs at trx commit. Previously, when rseg->update_undo_list grows beyond 500 the update_undo_logs were marked with state TRX_UNDO_TO_FREE which should have been TRX_UNDO_TO_PURGE. Approved by: Sunny Bains
-
- 25 Oct, 2010 2 commits
-
-
Bjorn Munch authored
-
Jimmy Yang authored
Approved by Sunny Bains
-
- 23 Oct, 2010 1 commit
-
-
"Grantor" columns' data is lost when replicating mysql.tables_priv. Slave SQL thread used its default user ''@'' as the grantor of GRANT|REVOKE statements executing on it. In this patch, current user is put in query log event for all GRANT and REVOKE statement, SQL thread uses the user in query log event as grantor.
-
- 21 Oct, 2010 3 commits
-
-
Bjorn Munch authored
Simplified cases where a select was used to compare variable against ''
-
Rows events were applied wrongly on the temporary table with the same name. But rows events are generated only for base tables. As temporary table's data never be binlogged on row mode. Normally, base table of the same name cannot be updated if a temporary table has the same name. But there are two cases which can generate rows events on the base table of same name. Case1: 'CREATE TABLE ... SELECT' statement. In mixed format, it will generate rows events if it is unsafe. Case2: Drop a transactional temporary table in a transaction (happens only on 5.5+). BEGIN; DROP TEMPORARY TABLE t1; # t1 is a InnoDB table INSERT INTO t1 VALUES(rand()); # t1 is a MyISAM table COMMIT; 'DROP TEMPORARY TABLE' will be put in the transaction cache and binlogged after the rows events generated by the 'INSERT' statement. After this patch, slave opens only base table when applying a rows event.
-
Jimmy Yang authored
index or foreign key Approved by Sunny Bains
-
- 20 Oct, 2010 6 commits
-
-
Davi Arnaut authored
Fix assorted warnings that are generated in optimized builds. Most of it is silencing variables that are set but unused. This patch also introduces the MY_ASSERT_UNREACHABLE macro which helps the compiler to deduce that a certain piece of code is unreachable.
-
Davi Arnaut authored
Fix assorted compiler warnings.
-
Bjorn Munch authored
-
Bjorn Munch authored
-
Bjorn Munch authored
-
Bjorn Munch authored
Limited to actual bug fix, fixing a while condition Again confirmed on Linux PPC and on AIX 5.3
-
- 19 Oct, 2010 14 commits
-
-
Davi Arnaut authored
Tag or remove unused arguments and variables.
-
Davi Arnaut authored
Ensure that fdatasync is properly declared as on Mac OS X, the function is available but there is no prototype. Also, port a fix for a warning from the InnoDB plugin over to the builtin.
-
Vasil Dimov authored
Just check for all the functions that we are going to use, not a subset of them. Reviewed by: Davi (via IRC)
-
Davi Arnaut authored
Tag unused arguments. Approved by: Marko (via IRC)
-
Davi Arnaut authored
Tag unused arguments. Approved by: Marko (via IRC)
-
Davi Arnaut authored
Fix assorted compiler warnings on Mac OS X.
-
Bjorn Munch authored
Added some more info in a number of fail cases (re-commit for administrative reasons)
-
Bjorn Munch authored
main.mysqltest skipped on Windows because a perl intentionally does exit(1) Use exit(2), as exit(1) on Windows is indistinguishable from failing to execute perl.
-
Bjorn Munch authored
-
Magne Mahre authored
data dictionary confusion On file systems with case insensitive file names, and lower_case_table_names set to '2', the server could crash due to a table definition cache inconsistency. This is the default setting on MacOSX, but may also be set and used on MS Windows. The bug is caused by using two different strategies for creating the hash key for the table definition cache, resulting in failure to look up an entry which is present in the cache, or failure to delete an existing entry. One strategy was to use the real table name (with case preserved), and the other to use a normalized table name (i.e a lower case version). This is manifested in two cases. One is during 'DROP DATABASE', where all known files are removed. The removal from the table definition cache is done via a generated list of TABLE_LIST with keys (wrongly) created using the case preserved name. The other is during CREATE TABLE, where the cache lookup is also (wrongly) based on the case preserved name. The fix was to use only the normalized table name when creating hash keys.
-
Jon Olav Hauglid authored
(variables_debug fails) The problem was that "SET GLOBAL debug" could cause a crash on Solaris. The crash happened if the server failed to open the trace file given in the "SET GLOBAL debug" statement. This caused an error message to be printed to stderr containing the process name. However, printing to stderr crashed the server since the pointer to the process name had not been initialized. This patch fixes the problem by initializing the process name properly when doing "SET GLOBAL debug". No test case added as this bug was repeatable with existing test coverage in variables_debug.test.
-
Tor Didriksen authored
-
Marko Mäkelä authored
row_search_for_mysql(): When a secondary index record might not be visible in the current transaction's read view and we consult the clustered index and optionally some undo log records, return the relevant columns of the clustered index record to MySQL instead of the secondary index record. ibuf_insert_to_index_page_low(): New function, refactored from ibuf_insert_to_index_page(). ibuf_insert_to_index_page(): When we are inserting a record in place of a delete-marked record and some fields of the record differ, update that record just like row_ins_sec_index_entry_by_modify() would do. btr_cur_update_alloc_zip(): Make the function public. mysql_row_templ_t: Add clust_rec_field_no. row_sel_store_mysql_rec(), row_sel_push_cache_row_for_mysql(): Add the flag rec_clust, for returning data at clust_rec_field_no instead of rec_field_no. Resurrect the debug assertion that the record not be marked for deletion. (Bug #55626) [UNIV_DEBUG || UNIV_IBUF_DEBUG] ibuf_debug, buf_page_get_gen(), buf_flush_page_try(): Implement innodb_change_buffering_debug=1 for evicting pages from the buffer pool, so that change buffering will be attempted more frequently.
-
Marko Mäkelä authored
row_search_for_mysql(): When a secondary index record might not be visible in the current transaction's read view and we consult the clustered index and optionally some undo log records, return the relevant columns of the clustered index record to MySQL instead of the secondary index record. REC_INFO_DELETED_FLAG: Move the definition from rem0rec.ic to rem0rec.h. ibuf_insert_to_index_page_low(): New function, refactored from ibuf_insert_to_index_page(). ibuf_insert_to_index_page(): When we are inserting a record in place of a delete-marked record and some fields of the record differ, update that record just like row_ins_sec_index_entry_by_modify() would do. mysql_row_templ_t: Add clust_rec_field_no. row_sel_store_mysql_rec(), row_sel_push_cache_row_for_mysql(): Add the flag rec_clust, for returning data at clust_rec_field_no instead of rec_field_no. Resurrect the debug assertion that the record not be marked for deletion. (Bug #55626) buf_LRU_free_block(): Refactored from buf_LRU_search_and_free_block(). This is needed for the innodb_change_buffering_debug diagnostics. [UNIV_DEBUG || UNIV_IBUF_DEBUG] ibuf_debug, buf_page_get_gen(), buf_flush_page_try(): Implement innodb_change_buffering_debug=1 for evicting pages from the buffer pool, so that change buffering will be attempted more frequently.
-