Commit graph

59433 commits

Author SHA1 Message Date
Staale Smedseng
04f1434781 Bug #45058 init_available_charsets uses double checked locking
A client doing multiple mysql_library_init() and
mysql_library_end() calls over the lifetime of the process may
experience lost character set data, potentially even a
SIGSEGV.

This patch reinstates the reloading of character set data when
a mysql_library_init() is done after a mysql_library_end().
2010-02-26 15:30:14 +01:00
Sergey Glukhov
5d9a74f22d Bug#47669 Query showed by EXPLAIN EXTENDED gives different result from original query
Item_field::print method does not take into
account fields whose values may be null.
The fix is to print 'NULL' if field value is null.
2010-02-26 17:40:01 +04:00
Georgi Kodinov
5853210e38 merge 5.0-bugteam -> 5.1-bugteam 2010-02-26 15:16:46 +02:00
Andrei Elkin
57d6b44400 merging from 5.1-bt rep to local branch 2010-02-26 15:14:34 +02:00
Georgi Kodinov
a7f6326631 merge 2010-02-26 15:10:25 +02:00
Luis Soares
ae7d5721cf BUG#51251: Wrong binlogging in case of TRUNCATE <temporary InnoDB table>
Incremental commit based on previous patch.
Addresses reviewer comments to move reseting of 
thd->current_stmt_binlog_row_based to after binlog_query
takes place.
2010-02-26 12:58:33 +00:00
Georgi Kodinov
6f51e9e4f8 Bug #51468: mysqld_multi is broken in 5.1.44
Fixed a syntax error in mysqld_multi.sh
2010-02-26 14:49:13 +02:00
Sergey Vojtovich
3fcb25d806 Merge innodb-5.1-ss6765 to 5.1-bugteam. 2010-02-26 16:34:13 +04:00
Davi Arnaut
5dd3b617d4 Bug#49823: mysql_upgrade fatal error due to general_log / slow_low CSV NULL
The problem was that the CSV storage engine does not support NULL
fields, yet in some early 5.1 version the log tables (general_log
and slow_log) were created with null fields. On top of this, when
altering a CSV table column, all fields of the table must be NOT
NULL otherwise the alteration fails.

The solution is to ensure that during upgrade all columns of the
log tables are NOT NULL.
2010-02-26 09:22:48 -03:00
Andrei Elkin
41eda14f7d merging fixes of bug@45576 to 5.1-bt 2010-02-26 14:19:49 +02:00
Sergey Glukhov
1bb6ea1727 automerge 2010-02-26 16:19:05 +04:00
Andrei Elkin
8bd18cdb68 Bug #45576 rpl_row_create_table fails on PB2
The test failed due to Bug #29790.
However, logics of the failing part does not need I_S selecting.

Fixing to remove the non-deterministic I_S selecting as redundant
from a part of the test dealing with BUG@22864.
2010-02-26 14:18:13 +02:00
Andrei Elkin
05d24d94c8 merging fixes of bug@51089 to 5.1-bt 2010-02-26 14:10:08 +02:00
Andrei Elkin
83adbfeb79 merging fixes of bug@51089 to 5.1-bt 2010-02-26 14:09:47 +02:00
Andrei Elkin
bb78b05581 bug#51089
correcting c&p typos in the results
2010-02-26 14:09:26 +02:00
Andrei Elkin
a5430f454c bug#51089
correcting c&p typos in the test
2010-02-26 14:07:47 +02:00
Andrei Elkin
d111483456 merging fixes of bug@51089 to 5.1-bt 2010-02-26 14:02:16 +02:00
Sergey Glukhov
fe94dec679 Bug#50995 Having clause on subquery result produces incorrect results.
The problem is that cond->fix_fields(thd, 0) breaks
condition(cuts off 'having'). The reason of that is
that NULL valued Item pointer is present in the
middle of Item list and it breaks the Item processing
loop.
2010-02-26 15:39:25 +04:00
Evgeny Potemkin
a0723c0665 Auto-merged fox for the bug#50843. 2010-02-26 14:19:44 +03:00
Evgeny Potemkin
cc01fc3f5f Bug#50843: Filesort used instead of clustered index led to
performance degradation.

Filesort + join cache combination is preferred to full index scan because it
is usually faster. But it's not the case when the index is clustered one.

Now test_if_skip_sort_order function prefers filesort only if index isn't
clustered.
2010-02-26 14:17:00 +03:00
Sergey Vojtovich
42d5617950 Applying InnoDB snapshot, fixes BUG#50691
Detailed revision comments:

r6669 | jyang | 2010-02-11 12:24:19 +0200 (Thu, 11 Feb 2010) | 7 lines
branches/5.1: Fix bug #50691, AIX implementation of readdir_r
causes InnoDB errors. readdir_r() returns an non-NULL value
in the case of reaching the end of a directory. It should
not be treated as an error return.

rb://238 approved by Marko
2010-02-26 13:04:24 +04:00
Sergey Vojtovich
757a1ff33a Applying InnoDB snapshot, fixes BUG#38901
Detailed revision comments:

r6613 | inaam | 2010-02-09 20:23:09 +0200 (Tue, 09 Feb 2010) | 11 lines
branches/5.1: Fix Bug #38901
InnoDB logs error repeatedly when trying to load page into buffer pool

In buf_page_get_gen() if we are unable to read a page (because of
corruption or some other reason) we keep on retrying. This fills up
error log with millions of entries in no time and we'd eventually run
out of disk space. This patch limits the number of attempts that we
make (currently set to 100) and after that we abort with a message.

rb://241 Approved by: Heikki
2010-02-26 13:03:58 +04:00
Sergey Vojtovich
167888c6c3 Applying InnoDB snapshot, fixes BUG#49001
Detailed revision comments:

r6545 | jyang | 2010-02-03 03:57:32 +0200 (Wed, 03 Feb 2010) | 8 lines
branches/5.1: Fix bug #49001, "SHOW INNODB STATUS deadlock info
incorrect when deadlock detection aborts". Print the correct
lock owner when recursive function lock_deadlock_recursive()
exceeds its maximum depth LOCK_MAX_DEPTH_IN_DEADLOCK_CHECK.

rb://217, approved by Marko.
2010-02-26 13:03:23 +04:00
Sergey Vojtovich
6d4e34cabb Applying InnoDB snapshot
Detailed revision comments:

r6538 | sunny | 2010-01-30 00:43:06 +0200 (Sat, 30 Jan 2010) | 6 lines
branches/5.1: Check *first_value every time against the column max
value and  set *first_value to next autoinc if it's > col max value.
ie.  not rely on what is passed in from MySQL.

[49497] Error 1467 (ER_AUTOINC_READ_FAILED) on inserting a negative value
rb://236
2010-02-26 13:02:57 +04:00
Sergey Vojtovich
ac68d90faa Applying InnoDB snapshot
Detailed revision comments:

r6537 | sunny | 2010-01-30 00:35:00 +0200 (Sat, 30 Jan 2010) | 2 lines
branches/5.1: Undo r6536.
2010-02-26 13:02:26 +04:00
Sergey Vojtovich
91c42548c8 Applying InnoDB snapshot
Detailed revision comments:

r6536 | sunny | 2010-01-30 00:13:42 +0200 (Sat, 30 Jan 2010) | 6 lines
branches/5.1: Check *first_value everytime against the column max
value and  set *first_value to next autoinc if it's > col max value.
ie.  not rely on what is passed in from MySQL.

[49497] Error 1467 (ER_AUTOINC_READ_FAILED) on inserting a negative value
rb://236
2010-02-26 13:02:05 +04:00
Sergey Vojtovich
ffad156254 Applying InnoDB snapshot
Detailed revision comments:

r6535 | sunny | 2010-01-30 00:08:40 +0200 (Sat, 30 Jan 2010) | 11 lines
branches/5.1: Undo the change from r6424. We need to return DB_SUCCESS even
if we were unable to initialize the tabe autoinc value. This is required for
the open to succeed. The only condition we currently treat as a hard error
is if the autoinc field instance passed in by MySQL is NULL.

Previously if the table autoinc value was 0 and the next value was requested
we had an assertion that would fail. Change that assertion and treat a value
of 0 to mean that the autoinc system is unavailable. Generation of next
value will now return failure.

rb://237
2010-02-26 13:01:31 +04:00
Gleb Shchepa
79d8de67a9 Bug #45360: wrong results
Propagation of a large unsigned numeric constant
in the WHERE expression led to wrong result.

For example,
"WHERE a = CAST(0xFFFFFFFFFFFFFFFF AS USIGNED) AND FOO(a)",
where a is an UNSIGNED BIGINT, and FOO() accepts strings,
was transformed to "... AND FOO('-1')".

That has been fixed.

Also EXPLAIN EXTENDED printed incorrect numeric constants in
transformed WHERE expressions like above. That has been
fixed too.
2010-02-25 23:13:11 +04:00
Alexey Kopytov
3dc164664a Automerge. 2010-02-25 19:26:30 +03:00
Christopher Powers
48c861fb9f Bug #48739 MySQL crashes on specific INTERVAL in select query
Fixed crash caused by x64 int/long incompatibility introduced
in Bug #29125.
2010-02-25 09:49:09 -06:00
Alexey Kopytov
735de9ea7e Bug #50335: Assertion `!(order->used & map)' in eq_ref_table
The problem was in an incorrect debug assertion. The expression 
used in the failing assertion states that when finding 
references matching ORDER BY expressions, there can be only one 
reference to a single table. But that does not make any sense, 
all test cases for this bug are valid examples with multiple 
identical WHERE expressions referencing the same table which
are also present in the ORDER BY list. 
 
Fixed by removing the failing assertion. We also have to take 
care of the 'found' counter so that we count multiple 
references only once. We rely on this fact later in 
eq_ref_table().
2010-02-25 18:48:53 +03:00
Georgi Kodinov
6f3770ca3e merge 2010-02-25 17:12:15 +02:00
Georgi Kodinov
b5ae1327f7 Backport of the fix for bug #49552 to 5.0-bugteam 2010-02-25 16:57:15 +02:00
Andrei Elkin
c23aee47b1 Bug #51089 SHOW STATUS LIKE 'Slave_running' is not compatible with `SHOW SLAVE STATUS'
backporting of bug@30703 to 5.1.
The fixes are backed up with a regression test.
2010-02-25 12:39:43 +02:00
Luis Soares
1fe647a4ba BUG#51251: Wrong binlogging in case of TRUNCATE <temporary InnoDB table>
For temporary tables that are created with an engine that does
not provide the HTON_CAN_RECREATE, the truncate operation is
performed resorting to the optimized handler::ha_delete_all_rows
method. However, this means that the truncate will share
execution path, from mysql_delete, with truncate on regular
tables and other delete operations. As a consequence the truncate
operation, for the temporary table is logged, even if in row mode
because there is no distinction between this and the other delete
operations at binlogging time.

We fix this by checking if: (i) the binlog format, when the
truncate operation was issued, is ROW; (ii) if the operation is a
truncate; and (iii) if the table is a temporary table; before
writing to the binary log. If all three conditions are met, we
skip writing to the binlog. A side effect of this fix is that we
limit the scope of setting and resetting the
current_stmt_binlog_row_based. Now we just set and reset it
inside mysql_delete in the boundaries of the
handler::ha_write_row loop. This way we have access to
thd->current_stmt_binlog_row_based real value inside
mysql_delete.
2010-02-24 19:01:53 +00:00
Magne Mahre
a341ec7400 Clean-up in the sys_vars test suite after
WL#5154 and WL5182

Two result files in the sys_vars suite wasn't 
properly updated after the change in
deprecation text
2010-02-23 12:33:20 +01:00
Magne Mahre
0d41207c59 Revert of a change introduced by Bug#47974
"TYPE=storage_engine" is deprecated, and will be removed
in the Celosia release of MySQL.  Since the option is
present in the Betony release and the version number of
Celosia is still not decided, we need to bump the
deprecation version number back up to "6.0".
2010-02-23 12:17:20 +01:00
Timothy Smith
302f50c3e3 auto-merge 2010-02-22 16:34:47 -07:00
Timothy Smith
581423d83b auto-merge 2010-02-22 16:34:04 -07:00
Timothy Smith
dfac5af2b3 auto-merge 2010-02-22 16:31:51 -07:00
Tatiana A. Nurnberg
f91a5fe5c6 auto-merge 2010-02-22 17:57:19 +00:00
Tatiana A. Nurnberg
51e47e1317 revert 48525 2010-02-22 16:58:56 +00:00
Bjorn Munch
38e811b839 merge from 5.1-mtr 2010-02-22 14:52:11 +01:00
Staale Smedseng
5181551dee Bug #43414 Parenthesis (and other) warnings compiling
MySQL with gcc 4.3.2
      
This is the final patch in the context of this bug.
2010-02-22 14:23:47 +01:00
Tatiana A. Nurnberg
0a992ff561 auto-merge 2010-02-22 12:31:50 +00:00
sunanda.menon@sun.com
7ecb6199ca Null-merge from mysql-5.0.87sp1-release 2010-02-20 18:08:35 +01:00
Tatiana A. Nurnberg
ab6feabb6f auto-merge 2010-02-20 16:30:10 +00:00
Alexander Nozdrin
c4de42d6f9 Auto-merge from mysql-5.1. 2010-02-20 12:08:40 +03:00
Tatiana A. Nurnberg
ecf4ba96ff manual merge 2010-02-19 19:06:47 +00:00
Tatiana A. Nurnberg
3678457d3c Bug#49487: crash with explain extended and group_concat in a derived table
When EXPLAIN EXTENDED tries to print column names, it checks whether the
referenced table is CONST (in which case, the column's value rather than
its name will be printed). If no proper table is reference (i.e. because
a derived table was used that has since gone out of scope), this will fail
spectacularly.

This ports an equivalent of the fix for Bug 43354.
2010-02-19 15:16:43 +00:00