- 02 Jan, 2009 1 commit
-
-
marko authored
source tree will work both under 5.1 and 6.0. Do not add the test case innodb_ctype_ldml.test, because it would not work under MySQL 5.1. Refuse to create tables whose columns contain collation IDs above 255. This removes an assertion failure that was introduced in WL#4164 (Two-byte collation IDs). create_table_def(): Do not fail an assertion if a column contains a charset-collation ID greater than 256. Instead, issue an error and refuse to create the table. The original change (branches/6.0 r2998) was rb://51 approved by Calvin Sun.
-
- 30 Dec, 2008 2 commits
-
-
marko authored
from or to 0, compress the page at the same time. This is necessary, because the column information stored on the compressed page will differ between leaf and non-leaf pages. Leaf pages are identified by PAGE_LEVEL=0. This bug was reported as Issue #150. Document the similarity between btr_page_create() and btr_page_empty(). Make the function signature of btr_page_empty() identical with btr_page_create(). (This will add the parameter "level".) btr_root_raise_and_insert(): Replace some code with a call to btr_page_empty(). btr_attach_half_pages(): Assert that the page level has already been set on both block and new_block. Do not set it again. btr_discard_only_page_on_level(): Document that this function is probably never called. Make it work on any height tree. (Tested on 2-high tree by disabling btr_lift_page_up().) rb://68
-
marko authored
Use the InnoDB hash table for keeping track of INNOBASE_SHARE objects. struct st_innobase_share: Make table_name const uchar*. Add the member table_name_hash. innobase_open_tables: Change the type from HASH to hash_table_t*. innobase_get_key(): Remove. innobase_fold_name(): New function, for computing the fold value for the InnoDB hash table. get_share(), free_share(): Use the InnoDB hash functions. innobase_end(): Free innobase_open_tables before shutting down InnoDB. Shutting down InnoDB will invalidate all memory allocated via InnoDB. rb://65 approved by Heikki Tuuri. This addresses Issue #104.
-
- 22 Dec, 2008 3 commits
-
-
marko authored
------------------------------------------------------------------------ r3588 | inaam | 2008-12-18 14:26:54 +0200 (Thu, 18 Dec 2008) | 8 lines branches/5.1 It is a bug in unused code. If we don't calculate the hash value when calculating the mutex number then two pages which map to same hash value can get two different mutex numbers. Approved by: Marko ------------------------------------------------------------------------ r3590 | marko | 2008-12-18 15:33:36 +0200 (Thu, 18 Dec 2008) | 11 lines branches/5.1: When converting a record to MySQL format, copy the default column values for columns that are SQL NULL. This addresses failures in row-based replication (Bug #39648). row_prebuilt_t: Add default_rec, for the default values of the columns in MySQL format. row_sel_store_mysql_rec(): Use prebuilt->default_rec instead of padding columns. rb://64 approved by Heikki Tuuri ------------------------------------------------------------------------ r3598 | marko | 2008-12-22 15:28:03 +0200 (Mon, 22 Dec 2008) | 6 lines branches/5.1: ibuf_delete_rec(): When the record cannot be found and the tablespace has been dropped, commit the mini-transaction, so that InnoDB will not hold the insert buffer tree latch in exclusive mode, causing a potential deadlock. This bug was introduced in the fix of Bug #27276 in r2924. ------------------------------------------------------------------------
-
marko authored
row_mysql_lock_data_dictionary(), row_mysql_freeze_data_dictionary(), to better track down locking issues that involve dict_operation_lock.
- 19 Dec, 2008 1 commit
-
-
marko authored
so that the macros will expand to valid C++. Unlike C++, C allows implicit type conversions from void* to other pointer types.
-
- 18 Dec, 2008 1 commit
-
-
marko authored
-
- 17 Dec, 2008 5 commits
-
-
marko authored
debug assertions that should have been adjusted in r3575.
-
vasil authored
Remove 2 entries from the ChangeLog about changes not big enough. Discussed with: Marko
-
marko authored
interpreter. It was only used for updating the InnoDB internal data dictionary when renaming or dropping tables. It could have caused deadlocks after acquiring latches on insert buffer bitmap pages. This and r3544 should fix Issue #135. Furthermore, the update-in-place-in-select does not account for compression failure. That was not a problem yet, since the InnoDB SQL interpreter has so far assumed ROW_FORMAT=REDUNDANT. rb://63 approved by Heikki Tuuri
-
marko authored
InnoDB Plugin 1.0.2, except changes to source code comments.
-
marko authored
index without enabling UNIV_DEBUG.
-
- 16 Dec, 2008 4 commits
-
-
marko authored
when inserting or deleting from the insert buffer B-tree. Assert that records in the insert buffer B-tree are never updated. This could cure Issue #135. btr_cur_optimistic_insert(): Do not update the insert buffer bitmap when inserting to the insert buffer tree. btr_cur_optimistic_delete(): Do not update the insert buffer bitmap when deleting from the insert buffer tree. This could be the cause of the assertion failure that was reported in Issue #135. btr_cur_update_alloc_zip(): Assert that the index is not the insert buffer. The insert buffer will never be stored in compressed format. btr_cur_update_in_place(), btr_cur_optimistic_update(), btr_cur_pessimistic_update(): Assert that these functions are never invoked on the insert buffer tree. The insert buffer only supports the insertion and deletion of records.
-
marko authored
must be latched before calling mtr_commit(mtr) if the function returns TRUE.
-
marko authored
-
marko authored
assertion about SYNC_BUF_POOL and SYNC_BUF_BLOCK.
-
- 12 Dec, 2008 3 commits
-
-
marko authored
Originally, there were provisions in InnoDB for multiple insert buffer B-trees, apparently one for each tablespace. When Heikki implemented innodb_file_per_table (multiple InnoDB tablespaces) in MySQL 4.1, he made the insert buffer live only in the system tablespace (space 0) but left the provisions in the code. When Osku Salerma implemented delete buffering, he also cleaned up the insert buffer subsystem so that only one insert buffer B-tree exists. This patch applies the clean-up to the InnoDB Plugin. Having a separate patch of the insert buffer clean-up should help us better compare the essential changes of the InnoDB Plugin and InnoDB+ and to track down bugs that are specific to InnoDB+. IBUF_SPACE_ID: New constant, defined as 0. ibuf_data_t: Remove. ibuf_t: Add the applicable fields from ibuf_data_t. There is only one insert buffer tree from now on. ibuf_page_low(), ibuf_page(): Merge to a single function ibuf_page(). fil_space_t: Remove ibuf_data. fil_space_get_ibuf_data(): Remove. There is only one ibuf_data, for space IBUF_SPACE_ID. fil_ibuf_init_at_db_start(): Remove. ibuf_init_at_db_start(): Fuse with ibuf_data_init_for_space(). ibuf_validate_low(): Remove. There is only one ibuf tree. ibuf_free_excess_pages(), ibuf_header_page_get(), ibuf_free_excess_pages(): Remove the parameter space, which was always 0. ibuf_tree_root_get(): Remove the parameters space and data. There is only one ibuf tree, for space IBUF_SPACE_ID. ibuf_data_sizes_update(): Rename to ibuf_size_update(), and remove the parameter data. There is only one ibuf data struct. ibuf_build_entry_pre_4_1_x(): New function, refactored from ibuf_build_entry_from_ibuf_rec(). ibuf_data_enough_free_for_insert(), ibuf_data_too_much_free(): Remove the parameter data. There is only one insert buffer tree. ibuf_add_free_page(), ibuf_remove_free_page(): Remove the parameters space and data. There is only one insert buffer tree. ibuf_get_merge_page_nos(): Add parenthesis, to reduce diffs to branches/innodb+. ibuf_contract_ext(): Do not pick an insert buffer tree at random. There is only one. ibuf_print(): Print the single insert buffer tree. rb://19 approved by Heikki on IM
-
marko authored
Make the variables rw_latch and buf_mode local in the for loop. Initialize them at the beginning of each for loop round to reduce register spilling on register-starved platforms such as the x86. Move the assignment of rw_latch and buf_mode from the end of the loop to the beginning of the loop. These parameters will only be needed in the buf_page_get_gen() call at the start of the loop. Remove the second (redundant) call to ibuf_should_try(). ibuf_should_try(): Now that the successful calls to this function will be halved, halve the magic constant that ibuf_flush_count will be compared to, accordingly. rb://61 approved by Heikki over IM.
-
marko authored
for (rw_latch != RW_NO_LATCH) around debug code.
-
- 11 Dec, 2008 1 commit
-
-
marko authored
redundant checks for ibuf_fixed_addr_page() || fsp_descr_page() that were removed in r3432, and add a comment explaining why. Thanks to Michael for reporting this bug.
-
- 10 Dec, 2008 3 commits
-
-
calvin authored
innodb_buffer_pool_size >= 4096M on x64 Windows All three srv_buf_pool related variables are defined as ulong, which is 32-bit on 64-bit Windows. They are changed to 64-bit ulint. Also system_info.dwPageSize appears to be 32-bit only. Casting to 64-bit is required. Approved by: Marko (on IM)
-
calvin authored
The patch utility takes LF style diff, and mysql-test-run also only takes LF style, even on Windows.
-
calvin authored
------------------------------------------------------------------------ r3479 | calvin | 2008-12-10 15:30:05 -0600 (Wed, 10 Dec 2008) | 4 lines branches/5.1: change .result file eol-style to LF mysql-test-run only takes LF style even on Windows. ------------------------------------------------------------------------
-
- 09 Dec, 2008 2 commits
-
-
vasil authored
Merge 2929:3458 from branches/5.1 (resolving conflict in c3257, note also that r3363 reverted r2933 so there are not changes in mysql-test/innodb-autoinc.result with the current merge): ------------------------------------------------------------------------ r2933 | calvin | 2008-10-30 02:57:31 +0200 (Thu, 30 Oct 2008) | 10 lines Changed paths: M /branches/5.1/mysql-test/innodb-autoinc.result branches/5.1: correct the result file innodb-autoinc.result Change the followings: auto_increment_increment auto_increment_offset to auto-increment-increment auto-increment-offset ------------------------------------------------------------------------ r2981 | marko | 2008-11-07 14:54:10 +0200 (Fri, 07 Nov 2008) | 5 lines Changed paths: M /branches/5.1/row/row0mysql.c branches/5.0: row_mysql_store_col_in_innobase_format(): Correct a misleading comment. In the UTF-8 encoding, ASCII takes 1 byte per character, while the "latin1" character set (normally ISO-8859-1, but in MySQL it actually refers to the Windows Code Page 1252 a.k.a. CP1252, WinLatin1) takes 1 to 3 bytes (1 to 2 bytes for the ISO-8859-1 subset). ------------------------------------------------------------------------ r3114 | calvin | 2008-11-14 20:31:48 +0200 (Fri, 14 Nov 2008) | 8 lines Changed paths: M /branches/5.1/handler/ha_innodb.cc branches/5.1: fix bug#40386: Not flushing query cache after truncate ha_statistics.records can not be 0 unless the table is empty, set to 1 instead. The original problem of bug#29507 is fixed in the server. Additional test was done with the fix of bug#29507 in the server. Approved by: Heikki (on IM) ------------------------------------------------------------------------ r3257 | inaam | 2008-11-24 22:06:50 +0200 (Mon, 24 Nov 2008) | 13 lines Changed paths: M /branches/5.1/handler/ha_innodb.cc M /branches/5.1/srv/srv0srv.c M /branches/5.1/trx/trx0trx.c branches/5.1 bug#40760 The config param innodb_thread_concurrency is dynamically set and is read when a thread enters/exits innodb. If the value is changed between the enter and exit time the behaviour becomes erratic. The fix is not to use srv_thread_concurrency when exiting, instead use the flag trx->declared_to_be_inside_innodb. rb://57 Approved by: Marko ------------------------------------------------------------------------ r3363 | calvin | 2008-12-04 19:00:20 +0200 (Thu, 04 Dec 2008) | 13 lines Changed paths: M /branches/5.1/mysql-test/innodb-autoinc.result branches/5.1: revert the changes in r2933 The changes in r2933 causes test failure on Linux. More investigation is needed for Windows. Change the followings in innodb-autoinc.result: auto-increment-increment auto-increment-offset back to: auto_increment_increment auto_increment_offset ------------------------------------------------------------------------ r3412 | vasil | 2008-12-05 10:46:18 +0200 (Fri, 05 Dec 2008) | 7 lines Changed paths: M /branches/5.1/trx/trx0undo.c branches/5.1: Add the traditional 2 spaces after the timestamp so the message does not look like: 070223 13:26:01InnoDB: Warning: canno.... ------------------------------------------------------------------------ r3458 | vasil | 2008-12-09 11:21:08 +0200 (Tue, 09 Dec 2008) | 51 lines Changed paths: M /branches/5.1/mysql-test/innodb_bug34300.test branches/5.1: Merge a change from MySQL to fix the failing innodb_bug34300 mysql-test: main.innodb_bug34300 [ fail ] mysqltest: At line 11: query 'SET @@max_allowed_packet=16777216' failed: 1621: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value Aborting: main.innodb_bug34300 failed in default mode. The changeset is this: ------------------------------------------------------------ revno: 2709.1.10 committer: Staale Smedseng <staale.smedseng@sun.com> branch nick: b22891-51-bugteam timestamp: Thu 2008-11-20 08:51:48 +0100 message: A fix for Bug#22891 "session level max_allowed_packet can be set but is ignored". This patch makes @@session.max_allowed_packed and @@session.net_buffer_length read-only as suggested in the bug report. The user will have to use SET GLOBAL (and reconnect) to alter the session values of these variables. The error string ER_VARIABLE_IS_READONLY is introduced. Tests are modified accordingly. modified: mysql-test/r/func_compress.result mysql-test/r/max_allowed_packet_basic.result mysql-test/r/max_allowed_packet_func.result mysql-test/r/net_buffer_length_basic.result mysql-test/r/packet.result mysql-test/r/union.result mysql-test/r/variables.result mysql-test/t/func_compress.test mysql-test/t/innodb_bug34300.test mysql-test/t/max_allowed_packet_basic.test mysql-test/t/max_allowed_packet_func.test mysql-test/t/net_buffer_length_basic.test mysql-test/t/packet.test mysql-test/t/union.test mysql-test/t/variables.test sql/set_var.cc sql/set_var.h sql/share/errmsg.txt ------------------------------------------------------------ ------------------------------------------------------------------------
-
marko authored
from the stack, not with mem_alloc().
-
- 08 Dec, 2008 1 commit
-
-
marko authored
checks for ibuf_fixed_addr_page() || fsp_descr_page(). The one at the beginning of the function is enough.
-
- 05 Dec, 2008 1 commit
-
-
marko authored
complain if the record is not found. Explain that this is possible when a deadlock occurs during an update. Heikki investigated this in Issue #134.
-
- 04 Dec, 2008 2 commits
-
-
vasil authored
Revert our temporary fix for Bug#40360 Binlog related errors with binlog off This bug was fixed in MySQL code. Our fix went into r2944 and r2947, but this patch does not entirely revert those revisions because we want to leave the test case that was introduced and also r2944 itself reverted r2935 and r2936. So if we completely revert r2944 and r2947 then we would loose the test and will restore r2935 and r2936. This resolves Issue#108 We should remove ib_bin_log_is_engaged() once mysql add an equivallent, see Bug#40360
-
vasil authored
Fix Mantis issue#103 mysql_addons.c depends on THD internals - please remove it Use MySQL's thd_get_thread_id() instead of our own ib_thd_get_thread_id() since MySQL implemented the former, see http://bugs.mysql.com/30930. Approved by: Marko (https://svn.innodb.com/rb/r/40, rb://40)
-
- 02 Dec, 2008 5 commits
-
-
vasil authored
Resurrect a ChangeLog entry that I removed in c3331 with a fake date so it does not appear that it has been included in 1.0.2.
-
vasil authored
Now that 1.0.2 is out, the current tree is version 1.0.3.
-
vasil authored
Remove an entry from the ChnageLog for a change that was made before the release of 1.0.2 but was not included in that release.
-
vasil authored
Add entry in the ChangeLog for the release of 1.0.2.
-
- 28 Nov, 2008 1 commit
-
-
marko authored
the secondary index entry cannot be found, and this is not an incomplete transaction that is being rolled back in crash recovery. The source code comments were suggested by Heikki.
-
- 27 Nov, 2008 3 commits
-
-
vasil authored
Non-functional change in win-plugin/win-plugin.diff: fix the file name before the diff, this is irrelevant but it is nice to be the same as the file name on the following line.
-
vasil authored
* Remove a change from win-plugin/win-plugin.diff about time_t because MySQL has used VS2005 for building 5.1.30. * Adjust the line numbers so the patch applies cleanly without fuzz and offset messages. Submitted by: Calvin
-
- 26 Nov, 2008 1 commit
-
-
marko authored
WHILE 1=1 in the SQL procedure, so that the loop will actually be entered and temporary indexes be dropped during crash recovery. Thanks to Sunny Bains for pointing this out. Tested as follows: Set a breakpoint in row_merge_rename_indexes. CREATE TABLE t(a INT)ENGINE=InnoDB; CREATE INDEX a ON t(a); -- The breakpoint will be reached. Kill and restart mysqld. SHOW CREATE TABLE t; -- This shows the MySQL .frm file, without and index. CREATE TABLE innodb_table_monitor(a INT)ENGINE=InnoDB; -- This will dump the InnoDB dictionary to the error log, without the index.
-