summaryrefslogtreecommitdiff
path: root/storage
Commit message (Collapse)AuthorAgeFilesLines
* Updated/added copyright headersKent Boortz2011-06-30107-171/+539
|
* Merge mysql-5.1-innodb -> mysql-5.1Vasil Dimov2011-02-0814-175/+269
|\
| * Bug #55284 diagnostics: Introduce UNIV_BLOB_LIGHT_DEBUG, enabled by UNIV_DEBUGMarko Mäkelä2011-02-025-54/+144
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | btr_rec_get_field_ref_offs(), btr_rec_get_field_ref(): New functions. Get the pointer to an externally stored field. btr_cur_set_ownership_of_extern_field(): Assert that the BLOB has not already been disowned. btr_store_big_rec_extern_fields(): Rename to btr_store_big_rec_extern_fields_func() and add the debug parameter update_in_place. All pointers to externally stored columns in the record must either be zero or they must be pointers to inherited columns, owned by this record or an earlier record version. For any BLOB that is stored, the BLOB pointer must previously have been zero. When the function completes, all BLOB pointers must be nonzero and owned by the record. rb://549 approved by Jimmy Yang
| * Non-functional changes (cleanup) made while narrowing down Bug #55284:Marko Mäkelä2011-02-022-58/+19
| | | | | | | | | | | | | | | | row_purge(): Change the return type to void. (The return value always was DB_SUCCESS.) Remove some local variables. row_undo_mod_remove_clust_low(): Remove some local variables. rb://547 approved by Jimmy Yang
| * Bug #55284 diagnostics: When UNIV_DEBUG, do not tolerate garbage inMarko Mäkelä2011-02-021-0/+2
| | | | | | | | | | | | | | Antelope files in btr_check_blob_fil_page_type(). Unfortunately, we must keep the check in production builds, because InnoDB wrote uninitialized garbage to FIL_PAGE_TYPE until fairly recently (5.1.x). rb://546 approved by Jimmy Yang
| * Bug #55284 diagnostics: Enable UNIV_DEBUG_FILE_ACCESSES by UNIV_DEBUGMarko Mäkelä2011-02-025-29/+30
| | | | | | | | | | | | | | It was the enabling of UNIV_DEBUG_FILE_ACCESSES that caught Bug #55284 in the first place. This is a very light piece of of debug code, and there really is no reason why it is not enabled in all debug builds. rb://551 approved by Jimmy Yang
| * Bug#59230 assert 0 row_upd_changes_ord_field_binary() in post-crashMarko Mäkelä2011-01-317-34/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | trx rollback or purge This patch does not relax the failing debug assertion during purge. That will be revisited once we have managed to repeat the assertion failure. row_upd_changes_ord_field_binary_func(): Renamed from row_upd_changes_ord_field_binary(). Add the parameter que_thr_t* in UNIV_DEBUG builds. When the off-page column cannot be retrieved, assert that the current transaction is a recovered one and that it is the one that is currently being rolled back. row_upd_changes_ord_field_binary(): A wrapper macro for row_upd_changes_ord_field_binary_func() that discards the que_thr_t* parameter unless UNIV_DEBUG is defined. row_purge_upd_exist_or_extern_func(): Renamed from row_purge_upd_exist_or_extern(). Add the parameter que_thr_t* in UNIV_DEBUG builds. row_purge_upd_exist_or_extern(): A wrapper macro for row_purge_upd_exist_or_extern_func() that discards the que_thr_t* parameter unless UNIV_DEBUG is defined. Make trx_roll_crash_recv_trx const. If there were a 'do not dereference' attribute, it would be appropriate as well. rb://588 approved by Jimmy Yang
* | Merge from mysql-5.1.55-releasekaren.langford@oracle.com2011-02-089-20/+163
|\ \ | |/ |/|
| * mergeGeorgi Kodinov2011-01-1032-393/+521
| |\
| * \ automergeGeorgi Kodinov2011-01-07105-2793/+989
| |\ \
| * | | Backport Bug #58643 InnoDB: too long table name. Also fix Bug #59312 examineJimmy Yang2011-01-066-17/+40
| | | | | | | | | | | | | | | | | | | | | | | | MAX_FULL_NAME_LEN in InnoDB to address possible insufficient name buffer Bug #59312 Approved by Sunny Bains
| * | | mergeGeorgi Kodinov2010-12-172-2/+12
| |\ \ \
| * | | | Fix Bug# 56228 - Dropping tables from within an active statement crashes serverSunny Bains2010-11-303-3/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | InnoDB AUTOINC code expects the locks to be released in strict reverse order at the end of the statement. However, nested stored proedures and partition tables break this rule. We now allow the locks to be deleted from the trx->autoinc_locks vector in any order but optimise for the common (old) case. rb://441 Approved by Marko Makela
| * | | | Manual-merge from mysql-5.1-bugteam.Ramil Kalimullin2010-11-2229-374/+661
| |\ \ \ \
| * \ \ \ \ Auto-merge from mysql-5.1-bugteam.Ramil Kalimullin2010-11-1834-18140/+3
| |\ \ \ \ \
* | \ \ \ \ \ Merge mysql-5.1-innodb -> mysql-5.1Vasil Dimov2011-01-3050-237/+707
|\ \ \ \ \ \ \ | |_|_|_|_|_|/ |/| | | | | |
| * | | | | | Fix Bug #59465 btr_estimate_number_of_different_key_vals use incorrect offsetJimmy Yang2011-01-283-10/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for external_size rb://581 approved by Marko
| * | | | | | Bug#59440 Race condition in XA ROLLBACK and XA COMMIT after server restartMarko Mäkelä2011-01-275-32/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | trx_get_trx_by_xid(): Invalidate trx->xid after a successful lookup, so that subsequent callers will not find the same transaction. The only callers of trx_get_trx_by_xid() will be invoking innobase_commit_low() or innobase_rollback_trx(), and those code paths should not depend on trx->xid. rb://584 approved by Jimmy Yang
| * | | | | | Bug#59585 Fix 58912 introduces compiler warningMarko Mäkelä2011-01-252-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | due to potentially uninitialized variable row_upd_changes_ord_field_binary(): Initialize dfield_len to suppress the warning. The compiler cannot know that row_ext_lookup() does initialize dfield_len for us, as it is defined in a different module.
| * | | | | | Bug#59486 Incorrect usage of UNIV_UNLIKELY() in mlog_parse_string()Marko Mäkelä2011-01-252-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | mlog_parse_string(): Enclose the comparison in UNIV_UNLIKELY, not the comparand.
| * | | | | | Bug#59464 Race condition in row_vers_build_for_semi_consistent_readMarko Mäkelä2011-01-253-6/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | row_vers_build_for_semi_consistent_read(): Dereference version_trx before releasing kernel_mutex, but not thereafter.
| * | | | | | Bug#59707 Unused compression-related parameters in buffer pool functionsMarko Mäkelä2011-01-2512-70/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | buf_block_alloc(): ulint zip_size is always 0. buf_LRU_get_free_block(): ulint zip_size is always 0. buf_LRU_free_block(): ibool* buf_pool_mutex_released is always NULL. Remove these parameters. buf_LRU_get_free_block(): Simplify the initialization of block->page.zip and release buf_pool_mutex() earlier.
| * | | | | | Bug#59579 rw_lock_debug_print outputs to stderrMarko Mäkelä2011-01-187-24/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | rw_lock_debug_print(): Add parameter FILE* for specifying the output stream. rw_lock_list_print_info(): Invoke rw_lock_debug_print() on file, not stderr.
| * | | | | | Non-functional changes.Marko Mäkelä2011-01-174-16/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove the unused data type dict_cluster_t. Remove a bogus comment about latching order.
| * | | | | | Fix Bug#30423 "InnoDBs treatment of NULL in index stats causes bad Jimmy Yang2011-01-1421-77/+545
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "rows examined" estimates". This change implements "innodb_stats_method" with options of "nulls_equal", "nulls_unequal" and "null_ignored". rb://553 approved by Marko
| * | | | | | Bug#59181 InnoDB compilation failure on the Sun Studio compilerMarko Mäkelä2011-01-101-1/+1
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | Define UNIV_PREFETCH_R(add) as sun_prefetch_read_many((void*) addr), because apparently some versions of the Sun library omit the const qualifier.
* | | | | | Increment InnoDB Plugin version from 1.0.14 to 1.0.15.Vasil Dimov2011-01-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | InnoDB Plugin 1.0.14 has been released with MySQL 5.1.54.
* | | | | | Followup to vasil.dimov@oracle.com-20110107091222-q23qpb5skev0j9gcVasil Dimov2011-01-071-12/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Do not use nested AC_CHECK_FUNC() because they result in: ./configure: line 52688: syntax error: unexpected end of file (which happens only on some platforms and does not happen on others, I have no idea what is the reason for this)
* | | | | | Merge mysql-5.1 -> mysql-5.1-innodbVasil Dimov2011-01-07105-2793/+989
|\ \ \ \ \ \ | | |_|_|_|/ | |/| | | |
| * | | | | MergeKent Boortz2010-12-29105-2793/+989
| | |_|_|/ | |/| | |
* | | | | Fix Bug#59327 Fix autoconf usage for innodb_pluginVasil Dimov2011-01-071-10/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AC_CHECK_FUNCS(f1 f2 f3, ACTION_IF_PRESENT) ACTION_IF_PRESENT is executed if any of f1, f2 or f3 is present. Fix this misusage, we want the action to be executed if all of the functions are present.
* | | | | Fix Bug #55397 cannot select from innodb_trx when trx_query contains blobsJimmy Yang2011-01-064-3/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | that aren't strings rb://560 approved by Sunny Bains
* | | | | (InnoDB Plugin) Fix Bug#59303 Correct URL in crash messageVasil Dimov2011-01-066-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | old URL: http://dev.mysql.com/doc/refman/5.1/en/forcing-recovery.html new URL: http://dev.mysql.com/doc/refman/5.1/en/forcing-innodb-recovery.html Notice that there is a redirect from the old URL to the new URL, so visiting the old URL does not give "page not found" error.
* | | | | (Builtin InnoDB) Fix Bug#59303 Correct URL in crash messageVasil Dimov2011-01-067-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | old URL: http://dev.mysql.com/doc/refman/5.1/en/forcing-recovery.html new URL: http://dev.mysql.com/doc/refman/5.1/en/forcing-innodb-recovery.html Notice that there is a redirect from the old URL to the new URL, so visiting the old URL does not give "page not found" error.
* | | | | Fix Bug #59197 double quote in field comment prevents foreign keyJimmy Yang2011-01-043-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | constraint creation rb://557 Approved by Sunny Bains
* | | | | Fix Bug #59157 valgrind conditional jump warning from dict_load_foreign.Jimmy Yang2011-01-041-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is 5.1 built-in specific as the dict_table_t strcture is allocated with mem_heap_zalloc since 5.1 plugin. Approved by Sunny Bains
* | | | | Fix a build error on Windows, introduced by revision-id:Calvin Sun2010-12-271-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | marko.makela@oracle.com-20101221112722-1yxxzzgqtem8bcm7 The fix was suggested by Jimmy.
* | | | | Bug #55284 Double BLOB free due to lock wait while updating PRIMARY KEYMarko Mäkelä2010-12-216-213/+228
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This bug fix requires that Bug #58912 be fixed as well (bzr revision id marko.makela@oracle.com-20101221093919-mcmmgd4zpse9567d). Otherwise, another double BLOB free could occur when InnoDB would try to perform an update-in-place as delete-and-insert-by-update-in-place. row_upd_clust_rec_by_insert(): Do not disown the externally stored columns from the old record (btr_cur_mark_extern_inherited_fields()) until after checking the foreign key constraints and successfully inserting the updated record. If a lock wait timeout occurs between the delete-marking of the old record and the insertion of the updated record, mark the columns inherited before retrying the insert. Distinguish the state UPD_NODE_INSERT_BLOB from UPD_NODE_INSERT_CLUSTERED. btr_cur_del_mark_set_clust_rec(): Replace the cursor with block,rec,index,offsets so that the offsets need not be recalculated. Assert that rec is on a clustered index leaf page. btr_cur_disown_inherited_fields(): Renamed from btr_cur_mark_extern_inherited_fields(). Use upd_get_field_by_field_no(). Assert that there are externally stored columns. Assert that a mini-transaction is passed. Remove the return status. (The only caller, row_upd_clust_rec_by_insert(), will have determined that some fields have changed ownership.) btr_cur_mark_dtuple_inherited_extern(): Rename to row_upd_clust_rec_by_insert_inherit_func() and declare as static. Add the debug parameters rec, offsets. When rec is given, assert that the off-page columns match those in the inesrt tuple and that the off-page columns are owned by the record. Assert that the non-updated off-page columns in the insert tuple are owned, and mark them inherited. row_upd_clust_rec_by_insert_inherit(): A wrapper macro for row_upd_clust_rec_by_insert_inherit_func(). row_undo_mod_upd_exist_sec(): Adjust a comment about row_upd_clust_rec_by_insert(). rb:508 approved by Jimmy Yang
* | | | | Bug#58912 InnoDB unnecessarily avoids update-in-place on column prefix indexesMarko Mäkelä2010-12-218-40/+110
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | row_upd_changes_ord_field_binary(): Do not return TRUE if the update vector changes a column that is covered by a prefix index, but does not change the column prefix. Add the row_ext_t parameter for determining whether the prefixes of externally stored columns match. dfield_datas_are_binary_equal(): Add the parameter len, for comparing column prefixes when len > 0. innodb.test: Add a test case where the patch of Bug #55284 failed without this fix. rb:537 approved by Jimmy Yang
* | | | | Merge mysql-5.1-bugteam -> mysql-5.1-innodbVasil Dimov2010-12-122-2/+12
|\ \ \ \ \ | |/ / / /
| * | | | Fixed bug#54486 - assert in my_seek, concurrentDmitry Shulga2010-12-101-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DROP/CREATE SCHEMA, CREATE TABLE, REPAIR. The cause of assert was concurrent execution of DROP DATABASE and REPAIR TABLE where first statement deleted table's file .TMD at the same time as REPAIR TABLE tried to read file details from the old file that was just removed. Additionally was fixed trouble when DROP TABLE try delete all files belong to table being dropped at the same time when REPAIR TABLE statement has just deleted .TMD file. No regression test added because this would require adding a sync point to mysys/my_redel.c. Since this bug is not present in 5.5+, adding test coverage was considered unnecessary. The patch has been verified using RQG testing.
| * | | | Fix for bug#48451: my_seek and my_tell ignore MY_WME flagRamil Kalimullin2010-12-091-2/+10
| | | | | | | | | | | | | | | | | | | | my_seek() and my_tell() functions now honour MY_WME flag.
* | | | | Fix Bug #57600 output of I/O sum[%lu] can go negativeJimmy Yang2010-12-092-4/+16
| | | | | | | | | | | | | | | | | | | | rb://532 approved by Sunny Bains
* | | | | Bug#58623: Bogus debug assertion failure in i_s_locks_row_validate()Marko Mäkelä2010-12-011-1/+1
| | | | | | | | | | | | | | | | | | | | This bogus assertion was introduced in the fix of Bug #57802: Empty ASSERTION parameter passed to the HASH_SEARCH macro.
* | | | | RB://518 approved by Jimmy Yang and Sunny bainskevin.lewis@oracle.com2010-11-301-93/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Code cleanup after changes for Bug 56628. The general approach for InnoDB is to make a reference to each enum value whenever it is used in a switch statement. In addition, no default case should be used for switch statements on enum types. This assures that if there is ever any change in the enum values, the switch will need to change to reflect it since a compiler warning will occur. In this case, the enum row_type is declared in handler.h and could be changed for another storage engine. If so, a warning will occur in the InnoDB build. Other changes; * This patch uses 2 macros to help consolidate warning messages that need to occur twice in the single switch for row_format. * Using row_format as the variable name to distinguish it from the enum type. * Function declaration format correction.
* | | | | Merge mysql-5.1-bugteam -> mysql-5.1-innodbVasil Dimov2010-11-293-8/+18
|\ \ \ \ \ | |/ / / /
| * | | | mergeGeorgi Kodinov2010-11-263-8/+18
| |\ \ \ \ | | |/ / / | | | | / | | |_|/ | |/| |
| | * | merge to 5.1-securityGeorgi Kodinov2010-10-2940-355/+936
| | |\ \
| | * | | Fix bug #57700 Latching order violation in row_truncate_table_for_mysql().Jimmy Yang2010-10-242-9/+20
| | | | | | | | | | | | | | | | | | | | Approved by Sunny Bains
| | * | | Fix bug #57616 Sig 11 in dict_load_table() when failed to load indexJimmy Yang2010-10-203-4/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | or foreign key Fix approved by Sunny Bains