Commit graph

24185 commits

Author SHA1 Message Date
Davi Arnaut
368b99a206 Bug#21704: Renaming column does not update FK definition
Remove commented-out test case. It has been moved to innodb_bug21704.test
2009-07-10 09:19:19 -03:00
Satya B
f5bec50697 Applying InnoDB snapshot 5.1-ss5488,part 4. Fixes BUG#21704
1. BUG#21704 - Renaming column does not update FK definition

2. Changes in mysql-test/include/mtr_warnings.sql so that the testcase
   for BUG#21704 doesn't fail because of the warnings generated.

Detailed revision comments:

r5488 | vasil | 2009-07-09 19:16:44 +0300 (Thu, 09 Jul 2009) | 13 lines
branches/5.1:

Fix Bug#21704 Renaming column does not update FK definition

by checking whether a column that participates in a FK definition is being
renamed and denying the ALTER in this case.

The patch was originally developed by Davi Arnaut <Davi.Arnaut@Sun.COM>:
http://lists.mysql.com/commits/77714
and was later adjusted to conform to InnoDB coding style by me (Vasil),
I also added some more comments and moved the bug specific mysql-test to
a separate file to make it more manageable and flexible.
2009-07-10 17:05:53 +05:30
Satya B
1a40d4cd5e Applying InnoDB snapshot 5.1-ss5488,part 2. Fixes BUG#45749
BUG#45749 - Race condition in SET GLOBAL innodb_commit_concurrency=DEFAULT

Detailed revision comments:

r5419 | marko | 2009-06-25 16:11:57 +0300 (Thu, 25 Jun 2009) | 18 lines
branches/5.1: Merge r5418 from branches/zip:

  ------------------------------------------------------------------------
  r5418 | marko | 2009-06-25 15:55:52 +0300 (Thu, 25 Jun 2009) | 5 lines
  Changed paths:
     M /branches/zip/ChangeLog
     M /branches/zip/handler/ha_innodb.cc
     M /branches/zip/mysql-test/innodb_bug42101-nonzero.result
     M /branches/zip/mysql-test/innodb_bug42101-nonzero.test
     M /branches/zip/mysql-test/innodb_bug42101.result
     M /branches/zip/mysql-test/innodb_bug42101.test
  
  branches/zip: Fix a race condition caused by
  SET GLOBAL innodb_commit_concurrency=DEFAULT. (Bug #45749)
  When innodb_commit_concurrency is initially set nonzero,
  DEFAULT would change it back to 0, triggering Bug #42101.
  rb://139 approved by Heikki Tuuri.
  ------------------------------------------------------------------------
2009-07-10 16:06:07 +05:30
Georgi Kodinov
d9e82ba86c Bug #36259 (Optimizing with ORDER BY) and bug#45828 (Optimizer won't
use partial primary key if another index can prevent filesort

The fix for bug #28404 causes the covering ordering indexes to be 
preferred unconditionally over non-covering and ref indexes.

Fixed by comparing the cost of using a covering index to the cost of
using a ref index even for covering ordering indexes.
Added an assertion to clarify the condition the local variables should
be in.
2009-07-07 15:52:34 +03:00
V Narayanan
e86b2278a8 merging with mysql-5.1-bugteam 2009-07-09 12:22:56 +05:30
Satya B
0ec804e5eb merge to mysql-5.1-bugteam branch 2009-07-09 12:14:47 +05:30
Davi Arnaut
915d1c4d32 Fix warnings generated by SunStudio and GCC.
Based upon patch contributed by Stewart Smith
2009-07-08 09:31:22 -03:00
Satya B
77f7311673 Bug#35111 - Truncate a MyISAM partitioned table does not reset
the auto_increment value
      
This is an alternative patch that instead of allowing RECREATE TABLE
on TRUNCATE TABLE it implements reset_auto_increment that is called
after delete_all_rows.

Note: this bug was fixed by Mattias Jonsson:
Pusing this patch: http://lists.mysql.com/commits/70370
2009-07-08 17:41:34 +05:30
V Narayanan
e346434449 Bug#45983 ibmdb2i_create_index_option=1 not working for primary key
With ibmdb2i_create_index_option set to 1, creating an IBMDB2I table
with a primary key should produce an additional index that uses EBCDIC
hexadecimal sorting. However, this does not work. Adding indexes that
are not primary keys does work. The ibmdb2i_create_index_option should
be honoured when creating a table with a primary key.

This patch adds code to the create() function to check for the value
of the ibmdb2i_create_index_option variable and, when appropriate, to 
generate a *HEX-based shadow index in DB2 for the primary key. Previously 
this behavior was limited to secondary indexes.

Additionally, this patch restricts the creation of shadow indexes to
cases in which a non-*HEX sort sequence is used, as the documentation
for ibmdb2i_create_index_option describes. Previously, the shadow index
would in some cases be created even when the MySQL-specific index used
*HEX sorting, leading to redundant indexes.

Finally, the code used to generate the list of fields for indexes 
and the code used to generate the SQL statement for the shadow
indexes has been refactored into individual functions.
2009-07-08 14:40:01 +05:30
Georgi Kodinov
cc636ed211 Bug#38998, Bug#46029, Bug#45243, Bug#46030 making tests experimental 2009-07-08 10:31:49 +03:00
Georgi Kodinov
70f6351ba9 automerge 2009-07-07 17:44:19 +03:00
Georgi Kodinov
15d63fe0a1 Bug #40796 : adding the tests to the experimental pb2 set. 2009-07-07 17:41:34 +03:00
Patrick Crews
9a6437652c merge 2009-07-07 10:27:42 -04:00
Patrick Crews
88d3a44b8f Bug#37746: Arithmetic range ("int") is smaller than expected
Added code to the .test file to skip this test on Win64 for PB2 stability.
Please remove this code when the bug is fixed.
2009-07-07 10:19:38 -04:00
Georgi Kodinov
bb90779c41 revert of hiding of the error exposed by this suite. 2009-07-07 17:18:44 +03:00
Georgi Kodinov
2203af93f3 merge of making bug 45578, 46010 and 45576 experimental in pb2. 2009-07-07 17:15:53 +03:00
Georgi Kodinov
25ff2d5c42 atuomerge 2009-07-07 17:14:21 +03:00
Georgi Kodinov
e52358fa66 fixed a failing test ctype_gbk_binlog : Table 't2' already exists 2009-07-07 16:09:06 +03:00
V Narayanan
b22fc3f7cd merging with mysql-5.1-bugteam. 2009-07-07 12:06:35 +05:30
Patrick Crews
6cd71817bd Bug#44920: MTR2 is not processing master.opt input properly on Windows.
Had attempted to disable this test on Windows only, but the nature of this bug
does not allow for this.  The master.opt file is processed before anything in 
in the actual test.  As a result, we must use disabled.def files to ensure
these tests are skipped on the problematic platforms.

Removed Windows-only code and updated the proper disabled.def files accordingly.
2009-07-06 18:20:17 -04:00
Georgi Kodinov
9b5afbd551 Bug #45974: disable test case in 5.1-bugteam 2009-07-06 18:17:39 +03:00
V Narayanan
148141fa70 Bug#45803 Inaccurate estimates for partial key values with IBMDB2I
Some collations were causing IBMDB2I to report
inaccurate key range estimations to the optimizer
for LIKE clauses that select substrings. This can
be seen by running EXPLAIN. This problem primarily
affects multi-byte and unicode character sets.

This patch involves substantial changes to several
modules. There are a number of problems with the
character set and collation handling. These problems
have been or are being fixed,  and a comprehensive
test has been included which should provide much
better coverage than there was before. This test
is enabled only for IBM i 6.1, because that version
has support for the greatest number of collations.
2009-07-06 14:19:32 +05:30
Alfranio Correia
743fc577b5 auto-merge mysql-5.1-bugteam (local) --> mysql-5.1-bugteam 2009-07-06 09:19:36 +01:00
Alfranio Correia
508fe9dd15 BUG#44581 Slave stops when transaction with non-transactional table gets lock wait
timeout
            
In STMT and MIXED modes, a statement that changes both non-transactional and
transactional tables must be written to the binary log whenever there are
changes to non-transactional tables. This means that the statement gets into the
binary log even when the changes to the transactional tables fail. In particular
, in the presence of a failure such statement is annotated with the error number
and wrapped in a begin/rollback. On the slave, while applying the statement, it
is expected the same failure and the rollback prevents the transactional changes
to be persisted.
            
Unfortunately, statements that fail due to concurrency issues (e.g. deadlocks,
timeouts) are logged in the same way causing the slave to stop as the statements
are applied sequentially by the SQL Thread. To fix this bug, we automatically
ignore concurrency failures on the slave. Specifically, the following failures
are ignored: ER_LOCK_WAIT_TIMEOUT, ER_LOCK_DEADLOCK and ER_XA_RBDEADLOCK.
2009-07-06 09:02:14 +01:00
Ramil Kalimullin
381da0c9d8 Fix for bug#42364 reverted. 2009-07-06 11:55:53 +05:00
Alexey Kopytov
0c5207f52f Automerge. 2009-07-03 14:43:54 +04:00
Alexey Kopytov
c936b6444a Manual merge. 2009-07-03 14:36:04 +04:00
Sergey Glukhov
c2ed9d36eb 5.0-bugteam->5.1-bugteam merge 2009-07-03 13:39:22 +05:00
Sergey Glukhov
1a539f170d Bug#45806 crash when replacing into a view with a join!
The crash happend because for views which are joins
we have table_list->table == 0 and 
table_list->table->'any method' call leads to crash.
The fix is to perform table_list->table->file->extra()
method for all tables belonging to view.
2009-07-03 13:35:00 +05:00
Bernt M. Johnsen
7e4cb19a8c Prepare for push 2009-07-03 10:36:10 +02:00
Sergey Glukhov
5072f4da36 Bug#42364 SHOW ERRORS returns empty resultset after dropping non existent table
enabled message storing into error message list
for 'drop table' command
2009-07-03 13:22:06 +05:00
Bernt M. Johnsen
5f1d2aaee7 automerge 2009-07-03 10:33:34 +02:00
Bernt M. Johnsen
ff002a8ca3 Bug#15866 Prepared for push on 5.1 2009-07-03 10:23:16 +02:00
Bernt M. Johnsen
8b5986d77f Bug#15866 Prepared for push on 5.0 2009-07-03 10:19:32 +02:00
Alexey Kopytov
4692566f9e Bug #45262: Bad effects with CREATE TABLE and DECIMAL
Using DECIMAL constants with more than 65 digits in CREATE 
TABLE ... SELECT led to bogus errors in release builds or 
assertion failures in debug builds. 
 
The problem was in inconsistency in how DECIMAL constants and 
fields are handled internally. We allow arbitrarily long 
DECIMAL constants, whereas DECIMAL(M,D) columns are limited to 
M<=65 and D<=30. my_decimal_precision_to_length() was used in 
both Item and Field code and truncated precision to 
DECIMAL_MAX_PRECISION when calculating value length without 
adjusting precision and decimals. As a result, a DECIMAL 
constant with more than 65 digits ended up having length less 
than precision or decimals which led to assertion failures. 
 
Fixed by modifying my_decimal_precision_to_length() so that 
precision is truncated to DECIMAL_MAX_PRECISION only for Field 
object which is indicated by the new 'truncate' parameter. 
 
Another inconsistency fixed by this patch is how DECIMAL 
constants and expressions are handled for CREATE ... SELECT. 
create_tmp_field_from_item() (which is used for constants) was 
changed as a part of the bugfix for bug #24907 to handle long 
DECIMAL constants gracefully. Item_func::tmp_table_field() 
(which is used for expressions) on the other hand was still 
using a simplistic approach when creating a Field_new_decimal 
from a DECIMAL expression.
2009-07-03 11:41:19 +04:00
Georgi Kodinov
5572f8e7de Bug #45807: crash accessing partitioned table and sql_mode
contains ONLY_FULL_GROUP_BY

The partitioning code needs to issue a Item::fix_fields()
on the partitioning expression in order to prepare 
it for being evaluated.
It does this by creating a special table and a table list 
for the scope of the partitioning expression.
But when checking ONLY_FULL_GROUP_BY the 
Item_field::fix_fields() was relying that there always be
cached_table set and was trying to use it to get the 
select_lex of the SELECT the field's table is in.
But the cached_table was not set by the partitioning code
that creates the artificial TABLE_LIST used to resolve the
partitioning expression and this resulted in a crash.
 
Fixed by rectifying the following errors :
1. Item_field::fix_fields() : the code that check for 
ONLY_FULL_GROUP_BY relies on having tables with 
cacheable_table set. This is mostly true, the only 
two exceptions being the partitioning context table
and the trigger context table.
Fixed by taking the current parsing context if no pointer
to the TABLE_LIST instance is present in the cached_table.

2. fix_fields_part_func() : 

2a. The code that adds the table being created to the 
scope for the partitioning expression is mostly a copy 
of the add_table_to_list and friends with one exception :
it was not marking the table as cacheable (something that
normal add_table_to_list is doing). This caused the 
problem in the check for ONLY_FULL_GROUP_BY in 
Item_field::fix_fields() to appear.
Fixed by setting the correct members to make the table
cacheable.
The ideal structural fix for this is to use a unified 
interface for adding a table to a table list 
(add_table_to_list?) : noted in a TODO comment

2b. The Item::fix_fields() was called with a NULL destination
pointer. This causes uninitalized memory reads in the 
overloaded ::fix_fields() function (namely 
Item_field::fix_fields()) as it expects a non-zero pointer 
there. Fixed by passing the source pointer similarly to how 
it's done in JOIN::prepare().
2009-07-02 17:42:00 +03:00
Matthias Leich
7029f8bbe8 Merge 5.0 -> 5.1 of fix for bug 45902 2009-07-02 15:40:27 +02:00
Matthias Leich
90c97d7ccc Fix for Bug#45902 rpl_sp fails sporadically in check testcases
Details:
- Add "sync_slave_with_master" at test end
- Restore the initial value of log_bin_trust_function_creators
2009-07-02 13:22:12 +02:00
V Narayanan
c2141faf1a Bug#45793 macce charset causes error with IBMDB2I
Creating an IBMDB2I table with the macce character set
is successful, but any attempt to insert data into the
table was failing.

This was happening because the character set name "macce"
is not a valid iconv descriptor for IBM i PASE. This patch
adds an override to convertTextDesc to use the equivalent
valid iconv descriptor "IBM-1282" instead.
2009-07-02 13:34:23 +05:30
Luis Soares
d553a7fce5 merge: 5.1-bt bug branch --> 5.1-bt latest 2009-06-30 19:40:38 +01:00
Satya B
3766e560f0 merge to mysql-5.1-bugteam 2009-06-29 18:33:11 +05:30
Luis Soares
af9d23433e merge: 5.1-bt bug branch --> 5.1-bt latest 2009-06-29 12:00:58 +01:00
V Narayanan
ccb1183887 Bug#45196 Some collations do not sort correctly with IBMDB2I
Some collations--including cp1250_czech_cs,latin2_czech_cs,
ucs2/utf8_czech_ci, ucs2/utf8_danish_ci--are not being
sorted correctly by the IBMDB2I storage engine. This
was being caused because the sort order used by DB2 is
incompatible with the order expected by MySQL.

This patch removes support for the cp1250_czech_cs and
latin2_czech_cs collations because it has been determined
that the sort order used by DB2 is incompatible with the
order expected by MySQL. Users needing a czech collation
with IBMDB2I are encouraged to use a Unicode-based collation 
instead of these single-byte collations. This patch also
modifies the DB2 sort sequence used for ucs2/utf8_czech_ci
and ucs2/utf8_danish_ci collations to better match the
sorting expected by MySQL. This will only affect indexes
or tables that are newly created through the IBMDB2I storage
engine. Existing IBMDB2I tables will retain the old sort
sequence until recreated.
2009-06-29 07:32:17 +05:30
Luis Soares
92536e4213 BUG#42851: Spurious "Statement is not safe to log in statement
format." warnings
      
Despite the fact that a statement would be filtered out from binlog, a
warning would still be thrown if it was issued with the LIMIT.
      
This patch addresses this issue by checking the filtering rules before
printing out the warning.
2009-06-27 14:18:47 +01:00
Evgeny Potemkin
05a2329fe9 Merged bug#45266. 2009-06-26 19:59:41 +00:00
Evgeny Potemkin
0e64988a5e Bug#45266: Uninitialized variable lead to an empty result.
The TABLE::reginfo.impossible_range is used by the optimizer to indicate
that the condition applied to the table is impossible. It wasn't initialized
at table opening and this might lead to an empty result on complex queries:
a query might set the impossible_range flag on a table and when the query finishes,
all tables are returned back to the table cache. The next query that uses the table
with the impossible_range flag set and an index over the table will see the flag
and thus return an empty result.

The open_table function now initializes the TABLE::reginfo.impossible_range
variable.
2009-06-26 19:57:42 +00:00
Luis Soares
26c4e642ef local merge: 5.1-bt bug branch --> 5.1-bt latest 2009-06-26 00:20:14 +01:00
Davi Arnaut
4c1333e6ed Bug#45548: XA transaction without access to InnoDB tables crashes the server
The problem is that the one phase commit function failed to
properly end a empty transaction. The solution is to ensure
that the transaction cleanup procedure is invoked even for
empty transactions.
2009-06-25 12:25:23 -03:00
Luis Soares
b537158335 BUG#44270: Post-push fix
The test case added failed sporadically on PB. This is due to the
fact that the user thread in some cases is waiting for slave IO
to stop and then check the error number. Thence, sometimes the
user thread would race for the error number with IO thread.

This post push fix addresses this by replacing the wait for slave
io to stop with a wait for slave io error (as it seems it was
added in 6.0 also after patch on which this is based was
pushed). This implied backporting wait_for_slave_io_error.inc
from 6.0 also.
2009-06-26 12:05:56 +01:00
Sergey Glukhov
3393fdf80a Bug#45412 SHOW CREATE TRIGGER does not require privileges to disclose trigger data
Added privilege checking to SHOW CREATE TRIGGER code.
2009-06-25 15:52:50 +05:00