Commit graph

59364 commits

Author SHA1 Message Date
Joerg Bruehe
fc4d400a3e Use a new version of "COPYING", the GPL text.
This is *no* change in contents, the differences are formatting only
and an address update of the FSF. It continues to be Version 2, June 1991.
2010-03-04 14:26:27 +01:00
Tatiana A. Nurnberg
b1e6ccca56 auto-merge 2010-03-04 12:47:58 +00:00
Tatiana A. Nurnberg
3bf394b415 auto-merge 2010-03-04 12:39:29 +00:00
Tatiana A. Nurnberg
ef7f79eea9 auto-merge 2010-03-04 12:23:05 +00:00
Mattias Jonsson
6e7539de29 Bug#50104: Partitioned table with just 1 partion works with fk
There was no check for foreign keys when altering partitioned
tables.

Added check for FK when altering partitioned tables.
2010-03-04 12:29:22 +01:00
Mattias Jonsson
2d5c6b5bfe Bug#48229: group by performance issue of partitioned table
Problem was block_size on partitioned tables was not set,
resulting in keys_per_block was not correct which affects
the cost calculation for read time of indexes (including
cost for group min/max).Which resulted in a bad optimizer
decision.

Fixed by setting stats.block_size correctly.
2010-03-04 12:09:09 +01:00
Luis Soares
e831e729db BUG#51055: Replication failure on duplicate key + traditional SQL
mode

When the master was executing in sql_mode='traditional' (which
implies that really_abort_on_warning returns TRUE - because of
MODE_STRICT_ALL_TABLES), the error code (ER_DUP_ENTRY in the
reported case) was not being set in the
Query_log_event. Therefore, even if a failure was to be expected
when replaying the statement on the slave, a failure would occur,
because the Query_log_event was not transporting the expected
error code, but 0 instead.

This was because when the master was getting the error code to
set it in the Query_log_event, the executing thread would be
assumed to have been killed:
THD::killed==THD::KILL_BAD_DATA. This would make the error code
fetch routine not to check thd->main_da.sql_errno(), but instead
the thd->killed value. What's more, is that the server would
thd->killed value if thd->killed == THD::KILL_BAD_DATA and return
0 instead. So this is a double inconsistency, as the we should
not even check thd->killed but rather thd->main_da.sql_errno().

We fix this by extending the condition used to choose whether to
check the thd->main_da.sql_errno() or thd->killed, so that it
takes into consideration the case when:
thd->killed==THD::KILL_BAD_DATA.
2010-03-04 10:18:06 +00:00
Luis Soares
24f7afe7bc BUG#51226: mysqlbinlog replay: ERROR 1146 when using temp tables
+ failing statements

Implicit DROP event for temporary table is not getting
LOG_EVENT_THREAD_SPECIFIC_F flag, because, in the previous
executed statement in the same thread, which might even be a
failed statement, the thread_specific_used flag is set to
FALSE (in mysql_reset_thd_for_next_command) and not set to TRUE
before connection is shutdown. This means that implicit DROP
event will take the FALSE value from thread_specific_used and
will not set LOG_EVENT_THREAD_SPECIFIC_F in the event header. As
a consequence, mysqlbinlog will not print the pseudo_thread_id
from the DROP event, because one of the requirements for the
printout is that this flag is set to TRUE.

We fix this by setting thread_specific_used whenever we are
binlogging a DROP in close_temporary_tables, and resetting it to
its previous value afterward.
2010-03-03 12:16:18 +00:00
Sergey Vojtovich
1a9c3717f1 BUG#48265 - MRG_MYISAM problem (works in 5.0.85, does't
work in 5.1.40)

MERGE engine fails to open child table from a different
database if child table/database name contains characters
that are subject for table name to filename encoding
(WL1324).

Another problem is that MERGE engine didn't properly open
child table from the same database if child table name
contains characters like '/', '#'.

The problem was that table name to file name encoding was
applied inconsistently:
* On CREATE: encode table name + database name if child
  table is in different database; do not encode table
  name if child table is in the same database;
* No decoding on open.

With this fix child table/database names are always
encoded on CREATE and decoded on open. Compatibility
with older tables preserved.

Along with this patch comes fix for SHOW CREATE TABLE,
which used to show child table/database path instead
of child table/database names.
2010-03-03 14:49:03 +04:00
Tatiana A. Nurnberg
64cce948b8 auto-merge 2010-03-02 20:59:50 +00:00
Tatiana A. Nurnberg
fd7a531373 auto-merge 2010-03-02 20:40:11 +00:00
Tatiana A. Nurnberg
b4faea2aa0 manual merge 2010-03-02 18:13:43 +00:00
Tatiana A. Nurnberg
87b4d36e5c Bug#48295: explain extended crash with subquery and ONLY_FULL_GROUP_BY sql
If an outer query is broken, a subquery might not even get set up.
EXPLAIN EXTENDED did not expect this and merrily tried to de-ref all
of the half-setup info.

We now catch this case and print as much as we have, as it doesn't cost us
anything (doesn't make regular execution slower).

backport from 5.1
2010-03-02 18:00:53 +00:00
Tatiana A. Nurnberg
ff7f4bb9fa auto-merge 2010-03-02 16:18:16 +00:00
Georgi Kodinov
2e9045c8fd Moved the ndb related tests out of the per-push pb2 run to the daily pb2 run. 2010-03-02 14:43:21 +02:00
Sergey Vojtovich
1613b3e1dd BUG#51307 - widespread corruption with partitions and
insert...select

Queries following bulk insert into an empty MyISAM table
may break it. This was pure MyISAM problem.

When bulk insert into an empty table is complete, MyISAM
may want to enable indexes via repair by sort. If repair
by sort fails (e.g. insufficient buffer), MyISAM failover
to repair with key cache, requesting repair of data file.

Repair of data file performs data file substitution. This
means that current table instance will point to new data
file. Other cached table instances are still pointing to
an old, deleted data file.

This is fixed by not requesting repair of data file
during enable indexes.

Explicit REPAIR is not affected, since it flushes all
table instances.
2010-03-02 13:45:50 +04:00
Staale Smedseng
42a80636ee Bug#49417 some complaints about mysqld --help --verbose output
This patch fixes some typos and poorly formulated sentences in
the output from mysqld --help --verbose.

Some of the problems described in the bug report are already
handled by the patch for Bug#49447, and are therefore not
included in this patch.
2010-03-01 14:49:51 +01:00
Andrei Elkin
1f6874f154 Bug #51600 rpl_slave_skip waits for slave to stop incorrectly
START SLAVE UNTIL MASTER ... specifies only SQL thread to stop.
rpl_slave_skip erronously deployed waiting for stop of both threads.

Corrected with deploying the correct macro.
Notice, earlier a similar bug@47749 was fixed in mysql-trunk.
2010-03-01 14:33:15 +02:00
hery.ramilison@sun.com
0bba3928b0 Raise version number after cloning 5.1.45 2010-03-01 11:58:26 +01:00
Joerg Bruehe
158e89792a Spec file for RPMs:
Now that Oracle has legally acquired Sun, change the copyright owner
and the vendor.
2010-03-01 11:42:44 +01:00
Georgi Kodinov
85faefd1ab merge 2010-03-01 10:44:34 +02:00
Georgi Kodinov
966e4ae9b0 tree name change 2010-03-01 10:43:24 +02:00
Georgi Kodinov
2e906736eb merge 2010-03-01 10:38:27 +02:00
Georgi Kodinov
f6f5cb4865 merge 2010-03-01 10:37:38 +02:00
Georgi Kodinov
17cb596bb0 tree version change 2010-03-01 10:35:14 +02:00
Ramil Kalimullin
c1de4070ca Fix for bug#51304: checksum table gives different results
for same data when using bit fields

Problem: checksum for BIT fields may be computed incorrectly 
in some cases due to its storage peculiarity.

Fix: convert a BIT field to a string then calculate its checksum.
2010-02-28 21:29:19 +04:00
Andrei Elkin
51d54a7eca Bug #51574 rpl_row_create_table fails in ps-protocol at CREATE TABLE IF NOT EXISTS bug48506
disabling the test to not run on PB
2010-02-27 17:08:53 +02:00
Davi Arnaut
b2637610db Force execution now that another test case might run mysql_upgrade first. 2010-02-26 23:19:59 -03:00
Davi Arnaut
9e045298a5 Workaround the pthread_once_t static initialization. Per the
POSIX standard, reinitialization of a pthread_once is a gray
area, but it is needed to support subsequent initializations
of the client library.
2010-02-26 23:09:36 -03:00
Andrei Elkin
8764cf69f9 merging from 5.1 rep to a local branch 2010-02-26 22:00:03 +02:00
Andrei Elkin
97e2ec4097 merging from 5.1 rep to a local branch 2010-02-26 21:07:26 +02:00
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