Commit graph

63295 commits

Author SHA1 Message Date
Sergey Vojtovich
8428d2116e BUG#58079 - Remove the IBM DB2 storage engine 2010-11-11 13:03:17 +03:00
Dmitry Shulga
0fc49ccf9a Fixed bug#54375 - Error in stored procedure leaves connection
in different default schema.

In strict mode, when data truncation or conversion happens,
THD::killed is set to THD::KILL_BAD_DATA.

This is abuse of KILL mechanism to guarantee that execution
of statement is aborted.

The stored procedures execution, on the other hand,
upon detection that a connection was killed, would
terminate immediately, without trying to restore the caller's
context, in particular, restore the caller's current schema.

The fix is, when terminating a stored procedure execution,
to only bypass cleanup if the entire connection was killed,
not in case of other forms of KILL.
2010-11-11 10:52:51 +06:00
Dmitry Shulga
ce3a7f4b01 Fixed bug#56619 - Assertion failed during
ALTER TABLE RENAME, DISABLE KEYS.

The code of ALTER TABLE RENAME, DISABLE KEYS could
issue a commit while holding LOCK_open mutex.
This is a regression introduced by the fix for
Bug 54453.
This failed an assert guarding us against a potential
deadlock with connections trying to execute
FLUSH TABLES WITH READ LOCK.

The fix is to move acquisition of LOCK_open outside
the section that issues ha_autocommit_or_rollback().
LOCK_open is taken to protect against concurrent
operations with .frms and the table definition
cache, and doesn't need to cover the call to commit.

A test case added to innodb_mysql.test.

The patch is to be null-merged to 5.5, which
already has 54453 null-merged to it.
2010-11-10 14:32:42 +06:00
Dmitry Shulga
5b3e668af8 Fixed Bug#57386 - main.execution_constants segfault on MIPS64EL. 2010-11-10 11:49:37 +06:00
Davi Arnaut
b963c7b14d Bug#57210: remove pstack
Quoting from the bug report:

The pstack library has been included in MySQL since version
4.0.0. It's useless and should be removed.

Details: According to its own documentation, pstack only works
on Linux on x86 in 32 bit mode and requires LinuxThreads and a
statically linked binary. It doesn't really support any Linux
from 2003 or later and doesn't work on any other OS.

The --enable-pstack option is thus deprecated and has no effect.
2010-11-09 12:45:13 -02:00
Bjorn Munch
b21d06f680 merge from 5.1-mtr 2010-11-09 11:20:50 +01:00
Horst.Hunger
83923103b5 due to merge. 2010-11-08 16:35:46 +01:00
Horst.Hunger
7dba832159 Fix for bug#52501 consisting of changes of some sys_vars tests including review results. 2010-11-08 16:30:26 +01:00
Jon Olav Hauglid
15d7d7b632 Bug #45288 pb2 returns a lot of compilation warnings
GCOV builds were broken after the patch for Bug#57933
which added add -Wdeclaration-after-statement to gcc builds.

This patch fixes:
stacktrace.c:328: warning: ISO C90 forbids mixed
declarations and code

No test case added.
2010-11-08 12:51:48 +01:00
Anitha Gopi
2340c15f2c Bug#58041 : Moved rpl_binlog_row to daily. Run just main suite for ps_row and embedded per push. Other suites run daily 2010-11-08 14:57:05 +05:30
Dmitry Shulga
9c45600dac A fix and a test case for Bug#47924 -main.log_tables times out
sporadically.

The cause of the sporadic time out was a leaking protection
against the global read lock, taken by the RENAME statement,
and not released in case of an error occurred during RENAME.
The leaking protection counter would lead to the value of
protect_against_global_read never dropping to 0.
Consequently FLUSH TABLES in all connections, including the
one that leaked the protection, could not proceed.
 
The fix is to ensure that all branchesin RENAME code properly
release GRL protection.
2010-11-07 23:42:54 +06:00
Bjorn Munch
0527d492cc Bug #57840 MTR: parallel execution breaks with smart ordering of test cases
There were actually more problems in this area:
  Slaves (if any) were unconditionally restarted, this appears unnecessary.
  Sort criteria were suboptimal, included the test name.
Added logic to "reserve" a sequence of tests with same config for one thread
Got rid of sort_criteria hash, put it into the test case itself
Adds little sanity check that expected worker picks up test
Fixed some tests that may fail if starting on running server
Some of these fail only if *same* test is repeated.
Finally, special sorting of tests that do --force-restart
2010-11-05 15:26:38 +01:00
Guilhem Bichot
fb2b0a48bc BUG#57933 "add -Wdeclaration-after-statement to gcc builds";
first part, for autotools build.
2010-11-05 14:17:47 +01:00
Georgi Kodinov
7e2fa49edf merge 2010-11-03 16:09:17 +02:00
Georgi Kodinov
17e509b284 bumped up the version 2010-11-03 16:03:40 +02:00
Georgi Kodinov
f9948a3edc added windows cmake binaries 2010-11-03 15:31:42 +02:00
Georgi Kodinov
4e78acd35c Bug #51208: Extra string allocation from thd->mem_root
in sql_show.cc, find_files()

Removed the extra allocation.
2010-11-02 15:20:02 +02:00
karen.langford@oracle.com
27020c6834 Merge from mysql-5.1.52-release 2010-11-01 19:44:43 +01:00
Gleb Shchepa
0389c6aac0 Bug #52160: crash and inconsistent results when grouping
by a function and column

The bugreport reveals two different bugs about grouping
on a function:

1) grouping by the TIME_TO_SEC function result caused
   a server crash or wrong results and
2) grouping by the function returning a blob caused
   an unexpected "Duplicate entry" error and wrong
   result.

Details for the 1st bug:

TIME_TO_SEC() returns NULL if its argument is invalid (empty
string for example). Thus its nullability depends not only
on the nullability of its arguments but also on their values.
Fixed by (overoptimistically) setting TIME_TO_SEC() to be
nullable despite the nullability of its arguments.

Details for the 2nd bug:

The server is unable to create indices on blobs without
explicit blob key part length. However, this fact was
ignored for blob function result fields of GROUP BY
intermediate tables.
Fixed by disabling GROUP BY index creation for blob
function result fields like regular blob fields.
2010-10-31 19:04:38 +03:00
Vasil Dimov
9cff440d60 Merge mysql-5.1-innodb -> mysql-5.1-bugteam 2010-10-29 10:45:11 +03:00
Calvin Sun
bc921dd74f Bug#52062: Compiler warning in os0file.c on windows 64-bit
On Windows, the parameter for number of bytes passed into WriteFile()
and ReadFile() is DWORD. Casting is needed to silence the warning on
64-bit Windows.

Also, adding several asserts to ensure the variable for number of bytes
is no more than 32 bits, even on 64-bit Windows.

This is for InnoDB Plugin.

rb://415
Approved by: Inaam
2010-10-28 00:10:28 -05:00
Calvin Sun
6cc24b9a3e Bug#52062: Compiler warning in os0file.c on windows 64-bit
On Windows, the parameter for number of bytes passed into WriteFile()
and ReadFile() is DWORD. Casting is needed to silence the warning on
64-bit Windows.

Also, adding several asserts to ensure the variable for number of bytes
is no more than 32 bits, even on 64-bit Windows.

This is for built-in InnoDB.

rb://415
Approved by: Inaam
2010-10-27 23:18:59 -05:00
Vasil Dimov
497613c057 Merge mysql-5.1-bugteam -> mysql-5.1-innodb 2010-10-27 16:39:22 +03:00
Anitha Gopi
0f00988327 Fixed bug numbers in disabled.def files 2010-10-27 09:54:04 +05:30
Inaam Rana
cb64e66003 Bug #57611 ibdata file and continuous growing undo logs
rb://498

Fix handling of update_undo_logs at trx commit. Previously, when
rseg->update_undo_list grows beyond 500 the update_undo_logs were
marked with state TRX_UNDO_TO_FREE which should have been
TRX_UNDO_TO_PURGE.

Approved by: Sunny Bains
2010-10-26 16:54:18 -04:00
Bjorn Munch
16a55614cc merge from 5.1-mtr 2010-10-25 15:48:41 +02:00
Jimmy Yang
1b5b5cbe65 Fix bug #57700 Latching order violation in row_truncate_table_for_mysql().
Approved by Sunny Bains
2010-10-24 22:51:21 -07:00
180e74bd49 Bug#27606 GRANT statement should be replicated with DEFINER information
"Grantor" columns' data is lost when replicating mysql.tables_priv.
Slave SQL thread used its default user ''@'' as the grantor of GRANT|REVOKE
statements executing on it.

In this patch, current user is put in query log event for all GRANT and REVOKE
statement, SQL thread uses the user in query log event as grantor.
2010-10-23 20:55:44 +08:00
Bjorn Munch
bad7fa7c90 Follow-up to Bug #55582 which allows checking strings in if
Simplified cases where a select was used to compare variable against ''
2010-10-21 15:20:50 +02:00
aa235b1b15 Bug#55478 Row events wrongly apply on the temporary table of the same name
Rows events were applied wrongly on the temporary table with the same name.
But rows events are generated only for base tables. As temporary
table's data never be binlogged on row mode. Normally, base table of the
same name cannot be updated if a temporary table has the same name.
But there are two cases which can generate rows events on 
the base table of same name.
      
Case1: 'CREATE TABLE ... SELECT' statement.
In mixed format, it will generate rows events if it is unsafe.
      
Case2: Drop a transactional temporary table in a transaction
       (happens only on 5.5+).
BEGIN;
DROP TEMPORARY TABLE t1;       # t1 is a InnoDB table
INSERT INTO t1 VALUES(rand()); # t1 is a MyISAM table
COMMIT;
'DROP TEMPORARY TABLE' will be put in the transaction cache and
binlogged after the rows events generated by the 'INSERT' statement.
      
After this patch, slave opens only base table when applying a rows event.
2010-10-21 13:43:19 +08:00
Jimmy Yang
59f35ce808 Fix Bug #57616 Sig 11 in dict_load_table() when failed to load
index or foreign key

Approved by Sunny Bains
2010-10-20 19:56:42 -07:00
Davi Arnaut
560ee2158d Bug#45288: pb2 returns a lot of compilation warnings
Fix assorted warnings that are generated in optimized builds.
Most of it is silencing variables that are set but unused.

This patch also introduces the MY_ASSERT_UNREACHABLE macro
which helps the compiler to deduce that a certain piece of
code is unreachable.
2010-10-20 16:21:40 -02:00
Davi Arnaut
60f30f6909 Bug#45288: pb2 returns a lot of compilation warnings
Fix assorted compiler warnings.
2010-10-20 11:40:04 -02:00
Bjorn Munch
441e3b2412 Fixed wrong feof check in read_line, see 52019 2010-10-20 11:41:51 +02:00
Bjorn Munch
daa70e0ab9 Fixed missing cast of arg to my_mbcharlen 2010-10-20 11:39:58 +02:00
Bjorn Munch
af056dc560 48863 followup: move an array declaration out from within if block 2010-10-20 11:30:50 +02:00
Bjorn Munch
ce786ab04d Bug #52019 main.mysqltest fails on new tests for lowercase_result
Limited to actual bug fix, fixing a while condition
Again confirmed on Linux PPC and on AIX 5.3
2010-10-20 11:22:08 +02:00
Davi Arnaut
39e9bde2c0 Bug#45288: pb2 returns a lot of compilation warnings
Tag or remove unused arguments and variables.
2010-10-19 20:36:59 -02:00
Davi Arnaut
71a8764af5 Bug#45288: pb2 returns a lot of compilation warnings
Ensure that fdatasync is properly declared as on Mac OS X, the
function is available but there is no prototype. Also, port a
fix for a warning from the InnoDB plugin over to the builtin.
2010-10-19 14:48:03 -02:00
Vasil Dimov
e9eeebc517 Fix Bug#53916 storage/innodb_plugin does not compile on NetBSD/sparc64
Just check for all the functions that we are going to use, not a subset
of them.

Reviewed by:	Davi (via IRC)
2010-10-19 17:32:26 +03:00
Davi Arnaut
162dd50668 Bug#45288: pb2 returns a lot of compilation warnings on linux
Tag unused arguments.
      
Approved by: Marko (via IRC)
2010-10-19 12:12:43 -02:00
Davi Arnaut
2cebd47e20 Bug#45288: pb2 returns a lot of compilation warnings on linux
Tag unused arguments.

Approved by: Marko (via IRC)
2010-10-19 12:09:28 -02:00
Davi Arnaut
d6204ecac2 Bug#45288: pb2 returns a lot of compilation warnings on linux
Fix assorted compiler warnings on Mac OS X.
2010-10-19 11:49:31 -02:00
Bjorn Munch
5c42b3c9ed Bug #56654 pb2 log is very hard to read
Added some more info in a number of fail cases
(re-commit for administrative reasons)
2010-10-19 14:01:14 +02:00
Bjorn Munch
e85b54a404 Bug #52828 Tests that use perl fail when perl is not in path
main.mysqltest skipped on Windows because a perl intentionally does exit(1)
Use exit(2), as exit(1) on Windows is indistinguishable from failing to
execute perl.
2010-10-19 13:56:30 +02:00
Bjorn Munch
8a94240c7d Test wait_timeout: do not fail by SQL syntax error, use die 2010-10-19 13:54:28 +02:00
Magne Mahre
1c68d2efe7 Bug #46941 crash with lower_case_table_names=2 and foreign key
data dictionary confusion

On file systems with case insensitive file names, and
lower_case_table_names set to '2', the server could crash
due to a table definition cache inconsistency.  This is 
the default setting on MacOSX, but may also be set and
used on MS Windows.

The bug is caused by using two different strategies for
creating the hash key for the table definition cache, resulting
in failure to look up an entry which is present in the cache,
or failure to delete an existing entry.  One strategy was to
use the real table name (with case preserved), and the other
to use a normalized table name (i.e a lower case version).

This is manifested in two cases.  One is  during 'DROP DATABASE', 
where all known files are removed.  The removal from
the table definition cache is done via a generated list of
TABLE_LIST with keys (wrongly) created using the case preserved 
name.  The other is during CREATE TABLE, where the cache lookup
is also (wrongly) based on the case preserved name.
   
The fix was to use only the normalized table name when
creating hash keys.
2010-10-19 12:27:09 +02:00
Jon Olav Hauglid
6da8a65bf0 Bug #57274 SET GLOBAL debug crashes on Solaris in embedded server mode
(variables_debug fails)

The problem was that "SET GLOBAL debug" could cause a crash on Solaris.
The crash happened if the server failed to open the trace file given in 
the "SET GLOBAL debug" statement. This caused an error message to be
printed to stderr containing the process name. However, printing to
stderr crashed the server since the pointer to the process name had
not been initialized.

This patch fixes the problem by initializing the process name 
properly when doing "SET GLOBAL debug".

No test case added as this bug was repeatable with existing test
coverage in variables_debug.test.
2010-10-19 10:19:57 +02:00
Tor Didriksen
a3357b55c2 Bug#52172 post-push fix: init auto-variable to NULL 2010-10-19 09:06:48 +02:00
Marko Mäkelä
b568369dba Bug #56680 wrong InnoDB results from a case-insensitive covering index
row_search_for_mysql(): When a secondary index record might not be
visible in the current transaction's read view and we consult the
clustered index and optionally some undo log records, return the
relevant columns of the clustered index record to MySQL instead of the
secondary index record.

ibuf_insert_to_index_page_low(): New function, refactored from
ibuf_insert_to_index_page().

ibuf_insert_to_index_page(): When we are inserting a record in place
of a delete-marked record and some fields of the record differ, update
that record just like row_ins_sec_index_entry_by_modify() would do.

btr_cur_update_alloc_zip(): Make the function public.

mysql_row_templ_t: Add clust_rec_field_no.

row_sel_store_mysql_rec(), row_sel_push_cache_row_for_mysql(): Add the
flag rec_clust, for returning data at clust_rec_field_no instead of
rec_field_no. Resurrect the debug assertion that the record not be
marked for deletion. (Bug #55626)

[UNIV_DEBUG || UNIV_IBUF_DEBUG] ibuf_debug, buf_page_get_gen(),
buf_flush_page_try():
Implement innodb_change_buffering_debug=1 for evicting pages from the
buffer pool, so that change buffering will be attempted more
frequently.
2010-10-19 09:04:15 +03:00