Commit graph

56593 commits

Author SHA1 Message Date
Timothy Smith
96d5bac856 Null merge of InnoDB snapshot innodb-5.0-ss4007 into 5.1 2009-03-02 18:32:04 -07:00
Timothy Smith
896aba9630 Applying InnoDB snashot 5.1-ss4007, part 2. Fixes
Bug #42152: Race condition in lock_is_table_exclusive()

Detailed revision comments:

r4005 | marko | 2009-01-20 16:22:36 +0200 (Tue, 20 Jan 2009) | 8 lines
branches/5.1: lock_is_table_exclusive(): Acquire kernel_mutex before
accessing table->locks and release kernel_mutex before returning from
the function.  This fixes a portential race condition in the
"commit every 10,000 rows" in ALTER TABLE, CREATE INDEX, DROP INDEX,
and OPTIMIZE TABLE. (Bug #42152)

rb://80 approved by Heikki Tuuri
2009-03-02 18:10:37 -07:00
Timothy Smith
67b5c9d4d1 Applying InnoDB snashot 5.1-ss4007, part 1. Fixes
Bug #41571: MySQL segfaults after innodb recovery

Detailed revision comments:

r4004 | marko | 2009-01-20 16:19:00 +0200 (Tue, 20 Jan 2009) | 12 lines
branches/5.1: Merge r4003 from branches/5.0:

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
2009-03-02 18:09:35 -07:00
Timothy Smith
7e5f269408 Applying InnoDB snashot 5.1-ss3931, part 2. Fixes
Bug #42075: dict_load_indexes failure in dict_load_table will corrupt the dictionary cache

Detailed revision comments:

r3930 | marko | 2009-01-14 15:51:30 +0200 (Wed, 14 Jan 2009) | 4 lines
branches/5.1: dict_load_table(): If dict_load_indexes() fails,
invoke dict_table_remove_from_cache() instead of dict_mem_table_free(),
so that the data dictionary will not point to freed data.
(Bug #42075, Issue #153, rb://76 approved by Heikki Tuuri)
2009-03-02 18:08:02 -07:00
Timothy Smith
ed0973581b Applying InnoDB snashot 5.1-ss3931, part 1. Fixes
Bug #38187: Error 153 when creating savepoints

Detailed revision comments:

r3911 | sunny | 2009-01-13 14:15:24 +0200 (Tue, 13 Jan 2009) | 13 lines
branches/5.1: Fix Bug#38187 Error 153 when creating savepoints
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
2009-03-02 18:06:44 -07:00
Timothy Smith
6ac6c9ed48 Applying InnoDB snashot 5.0-ss4007, part 3. Fixes
Bug #41571: MySQL segfaults after innodb recovery

This 5.0 fix will not be pushed into 5.1; a separate fix (from
innodb-5.1-ss4007) will be pushed into 5.1+.

Detailed revision comments:

r4003 | marko | 2009-01-20 16:12:50 +0200 (Tue, 20 Jan 2009) | 10 lines
branches/5.0: 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
2009-03-02 18:00:23 -07:00
Timothy Smith
fd5642b67d Applying InnoDB snashot 5.0-ss4007, part 2. Fixes
Bug #18828: If InnoDB runs out of undo slots, it returns misleading 'table is full'

This is a backport of code already in 5.1+.  The error message change referred
to in the detailed revision comments is still pending.

Detailed revision comments:

r3937 | calvin | 2009-01-15 03:11:56 +0200 (Thu, 15 Jan 2009) | 17 lines
branches/5.0:

Backport the fix for Bug#18828. Return DB_TOO_MANY_CONCURRENT_TRXS
when we run out of UNDO slots in the rollback segment. The backport
is requested by MySQL under bug#41529 - Safe handling of InnoDB running
out of undo log slots.

This is a partial fix since the MySQL error code requested to properly
report the error condition back to the client has not yet materialized.
Currently we have #ifdef'd the error code translation in ha_innodb.cc.
This will have to be changed as and when MySQl add the new requested
code or an equivalent code that we can then use.

Given the above, currently we will get the old behavior, not the
"fixed" and intended behavior.

Approved by:	Heikki (on IM)
2009-03-02 17:57:09 -07:00
Timothy Smith
acc83c2ba1 Applying InnoDB snashot 5.0-ss4007, part 1. Fixes
Bug #39939: DROP TABLE/DISCARD TABLESPACE takes long time in buf_LRU_invalidate_tablespace()

This was already fixed in 5.1+; this is a backport to 5.0.

Detailed revision comments:

r2743 | inaam | 2008-10-08 22:18:12 +0300 (Wed, 08 Oct 2008) | 13 lines
branches/5.0:

Backport of r2742 from branches/5.1:

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
2009-03-02 17:24:23 -07:00
Timothy Smith
af7f2cd737 Auto up-merge from 5.0-bugteam to 5.1-bugteam 2009-03-02 17:11:25 -07:00
Bernt M. Johnsen
6ed0ee25be Merged from gca branch (bug 42711) 2009-03-02 14:26:57 +01:00
Bernt M. Johnsen
f7a2fac719 Merged from gca branch (bug 42711) 2009-03-02 14:03:01 +01:00
Bernt M. Johnsen
a37ebaf614 Prepared BUG#42711 for push on 5.1 2009-03-02 11:22:38 +01:00
Bernt M. Johnsen
2944bb3618 Prepared BUG#42711 for push 2009-03-02 11:03:13 +01:00
Staale Smedseng
be853aeced Commit after merge from 5.0-bugteam 2009-02-27 18:07:58 +02:00
Staale Smedseng
3213d510c5 Commit after merge from 5.1-bugteam 2009-02-27 18:03:32 +02:00
Georgi Kodinov
f075494e00 merged the fix for bug 41610 to 5.1-bugteam 2009-02-27 17:07:27 +02:00
Staale Smedseng
0b46a263ab Commit for merge and push 2009-02-27 17:06:23 +02:00
Staale Smedseng
c0fb3df0d0 Recommit for merging and pushing 2009-02-27 16:11:15 +02:00
Georgi Kodinov
4d2f047e95 Bug #41610: key_infix_len can be overwritten causing some group by queries to
return no rows

The algorithm of determining the best key for loose index scan is doing a loop
over the available indexes and selects the one that has the best cost.
It retrieves the parameters of the current index into a set of variables.
If the cost of using the current index is lower than the best cost so far it 
copies these variables into another set of variables that contain the 
information for the best index so far.
After having checked all the indexes it uses these variables (outside of the 
index loop) to create the table read plan object instance.
The was a single omission : the key_infix/key_infix_len variables were used 
outside of the loop without being preserved in the loop for the best index 
so far.
This causes these variables to get overwritten by the next index(es) checked.
Fixed by adding variables to hold the data for the current index, passing 
the new variables to the function that assigns values to them and copying 
the new variables into the existing ones when selecting a new current best 
index.
To avoid further such problems moved the declarations of the variables used 
to keep information about the current index inside the loop's compound 
statement.
2009-02-27 15:25:06 +02:00
Patrick Crews
fb78405625 Bug#41893: Removal of trailing space noise causing Pushbuild failure. 2009-02-27 15:00:49 +02:00
Ingo Struewing
fba3a4143b auto-merge 2009-02-27 12:22:10 +01:00
Ingo Struewing
29ca5d019c Bug#40446 - mysql-test-run --gcov is broken
Some variable values were missing and perl constructs failed.

Initialized the variables and refactored the gcov functions.
2009-02-27 12:20:53 +01:00
Magnus Svensson
8bea4016b2 Merge 2009-02-27 11:26:55 +01:00
Patrick Crews
88b906ac21 merge. 2009-02-27 10:45:19 +02:00
Patrick Crews
0ae2ebd627 merge 2009-02-27 10:43:06 +02:00
Patrick Crews
28e64cc32d Bug#41893: main.variables mysql-test fails in new variable like '%alloc%' is added.
Added ORDER BY clause to I_S query to ensure consistent order.
There were differences between 5.1 and 6.0 output.  Correcting it 5.1.
2009-02-27 10:24:57 +02:00
Georgi Kodinov
32a48f06a2 merged 5.0-bugteam -> 5.1-bugteam.
Fixed a warning in 5.1 caused by missing type cast.
2009-02-27 10:03:47 +02:00
Patrick Crews
2c44ef16a5 Merge 5.0->5.1 2009-02-27 09:47:29 +02:00
Georgi Kodinov
494a764174 addendum to the fix for bug #41354: fixed the error returned by SELECT * 2009-02-27 09:41:39 +02:00
Bernt M. Johnsen
d3380a9285 Merged from gca-branch (bug 42567) 2009-02-26 19:21:51 +01:00
Georgi Kodinov
adf6fc1afc null-merged the fix and kept the test for bug #41354 from 5.0-bugteam 2009-02-26 19:20:50 +02:00
Bernt M. Johnsen
a4002891fb Prepared for push (BUG#42567) 2009-02-26 18:17:06 +01:00
Georgi Kodinov
b337ac28d0 Bug #41354: Access control is bypassed when all columns
of a view are selected by * wildcard

Backported a part of the fix for 36086 to 5.0
2009-02-26 19:00:44 +02:00
Patrick Crews
bc4df2f65d Bug#41893 - main.variables mysql-test fails if new variable like '%alloc%' is added.
Fixed a typo in the bug fix patch.
2009-02-26 18:00:47 +02:00
Magnus Svensson
49166978b1 Bug#43215 6 error codes changed from 5.1 to 6.0 2009-02-26 15:01:57 +01:00
Ramil Kalimullin
3a29b7afaa Auto-merge 2009-02-26 16:14:33 +04:00
Ramil Kalimullin
ce78a8bd50 Auto-merge 2009-02-26 14:11:46 +04:00
Patrick Crews
1062119af5 Bug#41893: main.variables mysql-test fails if new variable like '%alloc%' is added.
Started fix in 5.0 as the same issue is here.
Revising queries used given what appears to be the scope of this test to only select the manipulated variables.
Added tests for values that are / are not multiples of 1024 to test rounding / constraints.
This behavior is not currently documented (docs bug has been opened)
2009-02-26 10:57:33 +02:00
Bernt M. Johnsen
40d4b57785 Merged from gca-branch (bug 43110) 2009-02-26 09:37:15 +01:00
Ramil Kalimullin
c8e908ffcc Fix for bug#19829:make test Failed in mysql_client_test
*with --with-charset=utf8*

Problem: wrong LONG TEXT field length is sent to a client 
when multibyte server character set used.

Fix: always limit field length sent to a client to 2^32,
as we store it in 4 byte slot.

Note: mysql_client_test changed accordingly.
2009-02-26 12:34:15 +04:00
Vladislav Vaintroub
27e0654246 merge from 5.0-bugteam 2009-02-25 17:27:32 +01:00
Vladislav Vaintroub
451637798a merge from 5.1-bugteam 2009-02-25 17:23:36 +01:00
Vladislav Vaintroub
2e78d2292d merge fix for 43082 from 5.0-bugteam 2009-02-25 17:02:34 +01:00
Vladislav Vaintroub
af4988a36f Bug#43082: mysqld 32 bit cannot use big buffers due to 2GB
usermode address space limit.

Fix: use /LARGEADDRESSAWARE link option when linking 32 bit
executables
2009-02-25 16:57:49 +01:00
Bernt M. Johnsen
63c9d97c0d Prepared for push (BUG#43110) 2009-02-25 16:53:49 +01:00
Bernt M. Johnsen
d158d7da8b merged 5.0 to 5.1, no conflicts 2009-02-25 16:03:35 +01:00
Bernt M. Johnsen
f38e402d79 Merged from gca-branch (bug 43111) 2009-02-25 14:52:33 +01:00
Bernt M. Johnsen
1e503ee440 Merged from gca-branch (bug 43111) 2009-02-25 14:49:59 +01:00
Sergey Glukhov
c51b672c33 5.0-bugteam->5.1-bugteam merge 2009-02-25 16:18:24 +04:00
Bernt M. Johnsen
334d1d6e44 Merged from 5.0
bug#43111
2009-02-25 12:47:28 +01:00