Commit graph

68982 commits

Author SHA1 Message Date
kevin.lewis@oracle.com
6593ca560b Bug#60309 - Bug#12356829: MYSQL 5.5.9 FOR MAC OSX HAS BUG WITH FOREIGN KEY CONSTRAINTS
The innoDB global variable srv_lower_case_table_names is set to the value of lower_case_table_names declared in mysqld.h server in ha_innodb.cc.  Since this variable can change at runtime, it is reset for each handler call to ::create, ::open, ::rename_table & ::delete_table.

But it is possible for tables to be implicitly opened before an explicit handler call is made when an engine is first started or restarted.  I was able to reproduce that with the testcase in this patch on a version of InnoDB from 2 weeks ago.  It seemed like the change buffer entries for the secondary key was getting put into pages after the restart.  (But I am not sure, I did not write down the call stack while it was reproducing.)  In the current code, the implicit open, which is actually a call to dict_load_foreigns(), does not occur with this testcase.

The change is to replace srv_lower_case_table_names by an interface function in innodb.cc that retrieves the server global variable when it is needed.
2011-04-26 12:55:52 -05:00
Vasil Dimov
d54cc990ce Merge mysql-5.1-innodb -> mysql-5.5-innodb (empty) 2011-04-21 11:09:09 +03:00
Vasil Dimov
b4a98699be Merge mysql-5.1 -> mysql-5.1-innodb 2011-04-21 11:08:05 +03:00
Vasil Dimov
4923b866b8 Backport a fix for innodb_bug59641 from mysql-trunk-innodb 2011-04-21 10:48:30 +03:00
Vasil Dimov
d861323dfb Merge mysql-5.5 -> mysql-5.5-innodb 2011-04-21 08:39:32 +03:00
Vasil Dimov
208b98d548 Merge mysql-5.5-innodb -> mysql-5.5 2011-04-21 08:34:21 +03:00
Jon Olav Hauglid
2f972fef46 Null merge from mysql-5.1 to mysql-5.5 2011-04-20 12:36:30 +02:00
Jon Olav Hauglid
73ecffdb2f BUG#12377872 ASSERTION FAILED: !_ENTERED WHEN GETHOSTBYADDR_R
FAILS ON SOLARIS

This assertion was triggered if gethostbyaddr_r cannot do a
reverse lookup on an ip address. The reason was a missing
DBUG_RETURN macro. The problem affected only debug versions of
the server.

This patch fixes the problem by replacing return with DBUG_RETURN.
No test case added.
2011-04-20 11:32:28 +02:00
Marko Mäkelä
dcb5aa6627 Clarify a comment. 2011-04-20 11:29:10 +03:00
Sergey Glukhov
ebca704c3b 5.1 -> 5.5 merge 2011-04-20 11:52:40 +04:00
Sergey Glukhov
71bb332aa3 Bug#11765923 58937: MANY VALGRIND ERRORS AFTER GROUPING BY RESULT OF DECIMAL COLUMN FUNCTION
Bug#11764671  57533: UNINITIALISED VALUES IN COPY_AND_CONVERT (SQL_STRING.CC) WITH CERTAIN CHA
When ROUND evaluates decimal result it uses Item::decimal
value as fraction value for the result. In some cases
Item::decimal is greater than real result fraction value
and uninitialised memory of result(decimal) buffer can be
used in further calculations. Issue is introduced by
Bug33143 fix. The fix is to remove erroneous assignment.
2011-04-20 11:39:20 +04:00
Marko Mäkelä
3af2c9a30f Remove a debug printout that is no longer needed. 2011-04-20 10:10:54 +03:00
Serge Kozlov
f8a3dcc42e autocommit 5.1 -> 5.5 2011-04-19 00:08:25 +04:00
Serge Kozlov
410ee93cde BUG#12371924
Update test case
2011-04-18 23:59:15 +04:00
Sven Sandberg
4520d79af4 null merge 2011-04-18 14:48:15 +02:00
Sven Sandberg
5038060b3b test fails on more platforms, removed @freebsd from default.experimental. 2011-04-18 14:42:14 +02:00
Martin Hansson
430f81803c Merge of test case for bug#11758558 - 50774 2011-04-18 10:46:17 +02:00
Martin Hansson
7b4cafe9b9 Bug 11758558 - 50774: WRONG RESULTSET WHEN TIMESTAMP VALUES ARE APPENDED WITH
.0

The bug was fixed by the patch for bug number BUG 11763109 - 55779: SELECT
DOES NOT WORK PROPERLY IN MYSQL SERVER VERSION "5.1.42 SUSE MYSQL (Exact same
fix as was proposed for this bug.) Since the motivation for the two bug
reports was completely different, however, it still makes sense to push the
test case.

This patch contains only the test case.
2011-04-18 10:44:41 +02:00
Bjorn Munch
72ebc937d1 null upmerge 2011-04-16 17:43:20 +02:00
Bjorn Munch
b7fe6f951d merge from 5.5-mtr 2011-04-16 17:14:29 +02:00
Bjorn Munch
786ccb331f merge from 5.1-mtr 2011-04-16 16:46:51 +02:00
Bjorn Munch
ae145b6db8 null upmerge 2011-04-15 16:23:31 +02:00
Bjorn Munch
f3203f5a79 merge from 5.5 main 2011-04-15 15:55:08 +02:00
Bjorn Munch
19add93d3a merge from 5.1 main 2011-04-15 15:51:31 +02:00
Alexander Nozdrin
506ff594c8 A patch for Bug#11763166 (55847: SHOW WARNINGS returns empty
result set when SQLEXCEPTION is active.

The problem was in a hackish THD::no_warnings_for_error attribute.
When it was set, an error was not written to Warning_info -- only
Diagnostics_area state was changed. That means, Diagnostics_area
might contain error state, which is not present in Warning_info.

The user-visible problem was that in some cases SHOW WARNINGS
returned empty result set (i.e. there were no warnings) while
the previous SQL statement failed. According to the MySQL
protocol errors must be presented in warning list.

The main idea of this patch is to remove THD::no_warnings_for_error.
There were few places where it was used:
  - sql_admin.cc, handling of REPAIR TABLE USE_FRM.
  - sql_show.cc, when calling fill_schema_table_from_frm().
  - sql_show.cc, when calling fill_table().
The fix is to either use internal-error-handlers, or to use
temporary Warning_info storing warnings, which might be ignored.

This patch is needed to fix Bug 11763162 (55843).
2011-04-15 16:02:22 +04:00
Sergey Glukhov
df28a9d804 5.1 -> 5.5 merge 2011-04-15 12:55:21 +04:00
Sergey Glukhov
12a6e0d90e Bug#11765139 58069: LOAD DATA INFILE: VALGRIND REPORTS INVALID MEMORY READS AND WRITES WITH U
Some multibyte sequences could be considered by my_mbcharlen() functions
as multibyte character but more exact my_ismbchar() does not think so.
In such a case this multibyte sequences is pushed into 'stack' buffer which
is too small to accommodate the sequence.
The fix is to allocate stack buffer in
compliance with max character length.
2011-04-15 12:51:34 +04:00
Bjorn Munch
af6a02c7ca upmerge 12351213,12360195 2011-04-15 10:37:20 +02:00
Bjorn Munch
331058bc91 Bug #12360195 MTR DOES NOT IGNORE TABS IN EXPERIMENTAL FILE
Instead of just filtering space, filter white space (\s)
I left the default.experimental file as is, with tabs.
2011-04-15 10:30:52 +02:00
Tor Didriksen
73c8173f44 Merge fix for Bug#11765713 from 5.1 2011-04-15 08:54:05 +02:00
Tor Didriksen
2af655c2e5 Bug#11765713 58705: OPTIMIZER LET ENGINE DEPEND ON UNINITIALIZED VALUES CREATED BY OPT_SUM_QU
Valgrind warnings were caused by comparing index values to an un-initialized field.
2011-04-14 16:35:24 +02:00
Bjorn Munch
a23276c5c1 Bug #12351213 MTR --VS-CONFIG DOES NOT WORK LIKE MTR_VS_CONFIG
Fix for --vs-config applied
Find.pm incorrectly tested an unitialized local variable instead
  of the global, corrected.
Find.pm is also wrong in 5.5: uses a non-existent global variable. Fix when
  merging up.
2011-04-14 16:17:58 +02:00
Bjorn Munch
404504bbbd Bug #12360501 MTR --GCOV DOES NOT WORK WITH CMAKE BUILDS
Changed to use $bindir instead of $basedir
Simplified search for files: find all *.gcno
Also, .msg and .err files had been mixed up
2011-04-14 14:25:15 +02:00
Serge Kozlov
2705490f68 autocommit 5.1 -> 5.5 2011-04-14 15:54:48 +04:00
Serge Kozlov
c65d5b7610 WL#5867, postfix for binlog_bug23533 2011-04-14 15:24:11 +04:00
Sergey Glukhov
8ded325f42 automerge 2011-04-14 13:34:53 +04:00
Sergey Glukhov
625d0c6c0b 5.1 -> 5.5 merge 2011-04-14 13:10:11 +04:00
Jon Olav Hauglid
889a52d585 Bug#12352846 - TRANS_XA_START(THD*):
ASSERTION THD->TRANSACTION.XID_STATE.XID.IS_NULL()
               FAILED

The triggered assert checks that the previous XA transaction has
done proper cleanup before a new XA transaction is started.
The bug that caused it to be triggered was that XA COMMIT did not
clean up error state if XA COMMIT discovered that the current XA
transaction had to be rolled back.

This patch fixes the problem by resetting the XA error state
before XA COMMIT calls ha_rollback_trans(). This allows following
XA transactions to be started without triggering the assert.

Test case added to xa.test.
2011-04-14 10:13:28 +02:00
Sergey Glukhov
3f3318c34e Bug#11756242 48137: PROCEDURE ANALYSE() LEAKS MEMORY WHEN RETURNING NULL
There are two problems with ANALYSE():

1. Memory leak 
   it happens because do_select() can overwrite
   JOIN::procedure field(with zero value in our case) and
   JOIN destructor don't free the memory allocated for
   JOIN::procedure. The fix is to save original JOIN::procedure
   before do_select() call and restore it after do_select
   execution.

2. Wrong result
   If ANALYSE() procedure is used for the statement with LIMIT clause
   it could retrun empty result set. It happens because of missing 
   analyse::end_of_records() call. First end_send() function call
   returns NESTED_LOOP_QUERY_LIMIT and second call of end_send() with
   end_of_records flag enabled does not happen. The fix is to return
   NESTED_LOOP_OK from end_send() if procedure is active.
2011-04-14 12:11:57 +04:00
Magne Mahre
da08d69b70 Bug#11766320 MYSQL SYMBOLIC LINKS NOT WORKING
When MySQL converted from autotools to CMake, the
preprocessor symbol USE_SYMDIR was omitted by mistake.

Without this symbol, the code for checking .sym files
is not built.

This patch defines USE_SYMDIR when built on MS Windows.
2011-04-14 10:08:12 +02:00
Serge Kozlov
6b3c702f61 autocommit 5.1->5.5 2011-04-14 00:48:09 +04:00
Serge Kozlov
58cb12c9b2 WL#5867, reorganize test cases of bugs suite 2011-04-14 00:18:08 +04:00
Davi Arnaut
9e3699ca4f Remove some leftovers from the removal of the gethostbyname wrappers. 2011-04-13 16:05:26 -03:00
Davi Arnaut
475c4f7bed Increment the I_P_List counter whenever a element is inserted into
the list. Previously, the counter would only be incremented if the
insertion method push_front() was used, in which case the counter
wouldn't be incremented if a element was inserted using the push_back()
and/or insert_after() methods.

Currently this does not affect the code base because there isn't any
code that uses a counted list with the push_back() or insert_after()
methods.
2011-04-13 08:23:10 -03:00
Anitha Gopi
dd17a7e0ae Bug#11762246 : Test is not failing in PB2. Remove from experimental group 2011-04-13 16:42:13 +05:30
Dmitry Lenev
be65ee15fb Bug#11938039 "RE-EXECUTION OF FRM-ONLY ALTER TABLE WITH RENAME
CLAUSE FAILS OR ABORTS SERVER".
 
Attempt to re-execute prepared ALTER TABLE statement which 
involves .FRM-only changes and also have RENAME clause led
to unwarranted 'Table doesn't exist' error in production
builds and assertion failure for debug builds.
 
This problem stemmed from the fact that for such ALTER TABLE
mysql_alter_table() code changed table list element for table 
to be altered when it tried to re-open table under new name. 
Since this change was not reverted back before next 
re-execution, it made this statement re-execution unsafe.
 
This fix addresses this problem by avoiding changing table list
element from the main table list in such a situation. Instead 
temporary TABLE_LIST object is used.
2011-04-13 10:16:40 +04:00
Sven Sandberg
288d71b95e null merge 2011-04-12 13:17:25 +02:00
Sven Sandberg
d08c710457 marked rpl_stop_slave experimental due to BUG#12345981 2011-04-12 13:14:49 +02:00
Jon Olav Hauglid
ba82398dab Bug#12348348 - ASSERTION IN ROW0SEL.C LINE 3698:
TRX->CONC_STATE == 0 || TRX->CONC_STATE == 1

This bug was a different manifestation of Bug#11766752,
which was previously only fixed on mysql-trunk.

This patch backports the fix for Bug#11766752 to mysql-5.5,
which fixes the problem. The patch also adds some extra test
coverage.
2011-04-12 12:57:02 +02:00
Sergey Glukhov
4e8e373fb1 automerge 2011-04-12 14:34:12 +04:00