- 20 Jan, 2009 2 commits
-
-
marko authored
rec_set_nth_field(): When the field already is SQL null, do nothing when it is being changed to SQL null. (Bug #41571) Normally, MySQL does not pass "do-nothing" updates to the storage engine. When it does and a column of an InnoDB table that is in ROW_FORMAT=COMPACT is being updated from NULL to NULL, the InnoDB buffer pool will be corrupted without this fix. rb://81 approved by Heikki Tuuri
- 14 Jan, 2009 1 commit
-
- 13 Jan, 2009 1 commit
-
-
sunny authored
InnoDB previously treated savepoints as a stack e.g., SAVEPOINT a; SAVEPOINT b; SAVEPOINT c; SAVEPOINT b; <- This would delete b and c. This fix changes the behavior to: SAVEPOINT a; SAVEPOINT b; SAVEPOINT c; SAVEPOINT b; <- Does not delete savepoint c
-
- 22 Dec, 2008 2 commits
-
-
marko authored
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED a true replacement of SET GLOBAL INNODB_LOCKS_UNSAFE_FOR_BINLOG=1. This fixes an error that was introduced in r370, causing semi-consistent read not to not unlock rows in READ COMMITTED mode. (Bug #41671, Issue #146) rb://67 approved by Heikki Tuuri
-
marko authored
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.
-
- 18 Dec, 2008 2 commits
-
-
marko authored
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
-
inaam authored
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
-
- 10 Dec, 2008 1 commit
-
-
calvin authored
mysql-test-run only takes LF style even on Windows.
-
- 09 Dec, 2008 1 commit
-
-
vasil authored
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 ------------------------------------------------------------
-
- 05 Dec, 2008 1 commit
-
-
vasil authored
Add the traditional 2 spaces after the timestamp so the message does not look like: 070223 13:26:01InnoDB: Warning: canno....
-
- 04 Dec, 2008 1 commit
-
-
calvin authored
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
-
- 24 Nov, 2008 1 commit
-
-
inaam authored
Fix Bug#40760 "set global innodb_thread_concurrency = 0;" is not safe 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
-
- 14 Nov, 2008 1 commit
-
-
calvin authored
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)
-
- 07 Nov, 2008 1 commit
-
-
marko authored
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).
-
- 30 Oct, 2008 1 commit
-
-
calvin authored
Change the followings: auto_increment_increment auto_increment_offset to auto-increment-increment auto-increment-offset
-
- 29 Oct, 2008 2 commits
-
-
marko authored
size of a SQL NULL column. (Bug #40369) When MySQL Bug #20877 was fixed in r834, this function was accidentally modified to return 0 or 1. Apparently, the only impact of this bug is that fixed-length columns cannot be updated in-place from or to SQL NULL, even in ROW_FORMAT=REDUNDANT. After this fix, fixed-length columns in ROW_FORMAT=REDUNDANT will have a constant storage size as they should, no matter if NULL or non-NULL. The bug caused fixed-length NULL columns to occupy 1 byte. rb://37 approved by Heikki over IM.
-
- 28 Oct, 2008 1 commit
-
-
vasil authored
Fix Bug#38189 innodb_stats_on_metadata missing Make the variable innodb_stats_on_metadata visible to the users and also settable at runtime. Previously it was only "visible" as a command line startup option to mysqld. Approved by: Marko (https://svn.innodb.com/rb/r/36)
-
- 27 Oct, 2008 1 commit
-
-
calvin authored
overrun of the buffer being freed with 64-bit Microsoft Visual C++. The changed file: CMakeLists.txt: Removing Win64 compiler optimizations for all innodb/mem/* files.
-
- 23 Oct, 2008 1 commit
-
-
sunny authored
Simplify the autoinc initialization code. This removes the non-determinism related to reading the table's autoinc value for the first time. This change has also reduced the sizeof dict_table_t by sizeof(ibool) bytes because we don't need the dict_table_t::autoinc_inited field anymore. Bug#39830 Table autoinc value not updated on first insert. Bug#35498 Cannot get table test/table1 auto-inccounter value in ::info Bug#36411 Failed to read auto-increment value from storage engine" in 5.1.24 auto-inc rb://16
-
- 22 Oct, 2008 2 commits
-
-
sunny authored
Check column value against the col max value before updating the table's global autoinc counter value. This is part of simplifying the AUTOINC sub-system. We extract the type info from MySQL data structures at runtime. This fixes Bug#37788 InnoDB Plugin: AUTO_INCREMENT wrong for compressed tables
-
- 21 Oct, 2008 2 commits
-
-
vasil authored
Merge a change from MySQL (this fixes the failing innodb and innodb-semi-consistent tests): revno: 2757 committer: Georgi Kodinov <kgeorge@mysql.com> branch nick: B39812-5.1-5.1.29-rc timestamp: Fri 2008-10-03 15:24:19 +0300 message: Bug #39812: Make statement replication default for 5.1 (to match 5.0) Make STMT replication default for 5.1. Add a default of MIXED into the config files Fix the tests that needed MIXED replication mode. modified: mysql-test/include/mix1.inc mysql-test/r/innodb-semi-consistent.result mysql-test/r/innodb.result mysql-test/r/innodb_mysql.result mysql-test/r/tx_isolation_func.result mysql-test/t/innodb-semi-consistent.test mysql-test/t/innodb.test mysql-test/t/tx_isolation_func.test sql/mysqld.cc support-files/my-huge.cnf.sh support-files/my-innodb-heavy-4G.cnf.sh support-files/my-large.cnf.sh support-files/my-medium.cnf.sh support-files/my-small.cnf.sh
-
vasil authored
In ha_innobase::info(): Replace sql_print_warning() which prints to mysqld error log with push_warning_printf() which sends the error message to the client. Suggested by: Marko, Sunny, Michael Objected by: Inaam
-
- 20 Oct, 2008 1 commit
-
-
vasil authored
Non-functional change: use a single tab instead of 12 spaces between variable type and variable name.
-
- 13 Oct, 2008 1 commit
-
-
marko authored
row_drop_database_for_mysql(): Postpone mem_free(table_name), so that an error printout will not dereference freed memory.
-
- 09 Oct, 2008 1 commit
-
-
marko authored
<http://forums.innodb.com/read.php?4,215,215> why DELETE FROM t is not mapped to TRUNCATE TABLE t as it is in MyISAM, note in a comment that DELETE is transactional while TRUNCATE is not.
-
- 08 Oct, 2008 1 commit
-
-
inaam authored
Fix Bug#39939 DROP TABLE/DISCARD TABLESPACE takes long time in buf_LRU_invalidate_tablespace() Improve implementation of buf_LRU_invalidate_tablespace by attempting hash index drop in batches instead of doing it one by one. Reviewed by: Heikki, Sunny, Marko Approved by: Heikki
-
- 03 Oct, 2008 4 commits
-
-
sunny authored
fix for bug# 38839 triggered this bug. When the offset and increment are > 1 we need to calculate the next value taking into consideration the two variables. Previously we simply assumed they were 1 particularly offset was never used. MySQL does its own calculation and that's probably why it seemed to work in the past. We would return what we thought was the correct next value and then MySQL would recalculate the actual value from that and return it to the caller (e.g., handler::write_row()). Several new tests have been added that try and catch some edge cases. The tests exposed a wrap around error in MySQL next value calculation which was filed as bug#39828. The tests will need to be updated once MySQL fix that bug. One good side effect of this fix is that dict_table_t size has been reduced by 8 bytes because we have moved the autoinc_increment field to the row_prebuilt_t structure. See review-board for a detailed discussion. rb://3
-
vasil authored
Print a warning if an attempt is made to get the free space for a table whose .ibd file is missing or the tablespace has been discarded. This is a followup to r2719. Suggested by: Inaam
-
vasil authored
Fix Bug#39438 Testcase for Bug#39436 crashes on 5.1 in fil_space_get_latch In ha_innobase::info() - do not try to get the free space for a tablespace which has been discarded with ALTER TABLE ... DISCARD TABLESPACE or if the .ibd file is missing for some other reason. ibd_file_missing and tablespace_discarded are manipulated only in row_discard_tablespace_for_mysql() and in row_import_tablespace_for_mysql() and the manipulation is protected/surrounded by row_mysql_lock_data_dictionary()/row_mysql_unlock_data_dictionary() thus we do the same in ha_innobase::info() when checking the values of those members to avoid race conditions. I have tested the code-path with UNIV_DEBUG and UNIV_SYNC_DEBUG. Looks like it is not possible to avoid mysqld printing warnings in the mysql-test case and thus this test innodb_bug39438 must be added to the list of exceptional test cases that are allowed to print warnings. For this, the following patch must be applied to the mysql source tree: --- cut --- === modified file 'mysql-test/lib/mtr_report.pl' --- mysql-test/lib/mtr_report.pl 2008-08-12 10:26:23 +0000 +++ mysql-test/lib/mtr_report.pl 2008-10-01 11:57:41 +0000 @@ -412,7 +412,10 @@ # When trying to set lower_case_table_names = 2 # on a case sensitive file system. Bug#37402. - /lower_case_table_names was set to 2, even though your the file system '.*' is case sensitive. Now setting lower_case_table_names to 0 to avoid future problems./ + /lower_case_table_names was set to 2, even though your the file system '.*' is case sensitive. Now setting lower_case_table_names to 0 to avoid future problems./ or + + # this test is expected to print warnings + ($testname eq 'main.innodb_bug39438') ) { next; # Skip these lines --- cut --- The mysql-test is currently somewhat disabled (see inside innodb_bug39438.test), after the above patch has been applied to the mysql source tree, the test can be enabled. rb://20 Reviewed by: Inaam, Calvin Approved by: Heikki
-
- 01 Oct, 2008 2 commits
-
-
vasil authored
Silence a compilation warning in UNIV_DEBUG. Approved by: Marko (via IM)
-
- 30 Sep, 2008 1 commit
-
-
sunny authored
to return the cause of failure we have to inform MySQL using the sql_print_warning() function to return the cause for autoinc failure. Previously we simply printed the error code, this patch prints the text string representing the following two error codes: DB_LOCK_WAIT_TIMEOUT DB_DEADLOCK. Bug#35498 Cannot get table test/table1 auto-inccounter value in ::info Approved by Marko.
-
- 18 Sep, 2008 1 commit
-
-
vasil authored
Instead of doing "svn log" for every revision between $START_REV and $END_REV, lookup the revisions which actually contain changes to this branch and do "svn log" and "svn diff" only for them. This makes the script many times faster. I have checked that both old and new variant create identical snapshots.
-
- 16 Sep, 2008 1 commit
-
-
inaam authored
of order ::open() call by MySQL Forward port of r2629 Under some conditions MySQL calls ::open with search_latch leading to a deadlock as we try to acquire dict_sys->mutex inside ::open breaking the latching order. The fix is to release search_latch. Reviewed by: Heikki
-
- 09 Sep, 2008 1 commit
-
-
vasil authored
Merge a change from MySQL (fix the failing innodb test): ------------------------------------------------------------ revno: 2646.12.1 committer: Mattias Jonsson <mattiasj@mysql.com> branch nick: wl4176_2-51-bugteam timestamp: Mon 2008-08-11 20:02:03 +0200 message: Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that partition is corrupt The main problem was that ALTER TABLE t ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION took another code path (over mysql_alter_table instead of mysql_admin_table) which differs in two ways: 1) alter table opens the tables in a different way than admin tables do resulting in returning with error before it tried the command 2) alter table does not start to send any diagnostic rows to the client which the lower admin functions continue to use -> resulting in assertion crash The fix: Remapped ALTER TABLE t ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION to use the same code path as ANALYZE/CHECK/OPTIMIZE/REPAIR TABLE t. Adding check in mysql_admin_table to setup the partition list for which partitions that should be used. Partitioned tables will still not work with REPAIR TABLE/PARTITION USE_FRM, since that requires moving partitions to tables, REPAIR TABLE t USE_FRM, and check that the data still fulfills the partitioning function and then move the table back to being a partition. NOTE: I have removed the following functions from the handler interface: analyze_partitions, check_partitions, optimize_partitions, repair_partitions Since they are not longer needed. THIS ALTERS THE STORAGE ENGINE API I have verified that OPTIMIZE TABLE actually rebuilds the table and calls ANALYZE. Approved by: Heikki
-
- 23 Aug, 2008 1 commit
-
-
sunny authored
value field in prebuilt. This field tracks the last value in an autoincrement interval. We use this value to check whether we need to update a table's AUTOINC counter, if the value written to a table is less than this value then we avoid updating the table's AUTOINC value in order to reduce mutex contention. If it's not reset (e.g., after a DELETE statement) then there is the possibility of missing updates to the table's AUTOINC counter resulting in a subsequent duplicate row error message under certain conditions (see the test case for details). Bug #38839 - auto increment does not work properly with InnoDB after update
-