Commit graph

59799 commits

Author SHA1 Message Date
Sergey Glukhov
c3114506bb Bug#47371 reference by same column name
At the end of execution top level join execution
we cleanup this join with true argument.
It leads to underlying join cleanup(subquery) with true argument too
and to tmp_table_param->field array cleanup which is required later.
The problem is that Item_func_set_user_var does not set
result_filed which leads to unnecessary repeated excution of subquery
on final stage.
The fix is to set result_field for Item_func_set_user_var.
2009-12-22 13:52:23 +04:00
Mattias Jonsson
e10752e011 merge 2009-12-22 00:06:36 +01:00
Magne Mahre
5f3b645b1e Backport to 5.1 branch (next-mr revid: 2921)
Bug#35589 SET PASSWORD caused a crash
Bug#35591 FLUSH PRIVILEGES caused a crash
      
A race condition on the privilege hash tables (proc_priv_hash
and func_priv_hash) caused one thread to try to delete elements
that had already been deleted by another thread.
      
The bug was caused by reading and saving the pointers to 
the hash tables outside mutex protection.  This led to an
inconsistency where a thread copied a pointer to a hash,
another thread did the same, the first thread then deleted
the hash, and the second then crashed when it in turn tried to
delete the deleted hash.
      
The fix is to ensure that operations on the shared hash structures
happens under mutex protection (moving the locking up a little)
2009-12-18 11:48:34 +01:00
Jim Winstead
a8e039a2c8 Merge approved bug fix 2009-12-17 12:06:36 -08:00
Jim Winstead
cb7ce79816 Merge with mysql-5.1-bugteam latest changes 2009-12-17 11:15:14 -08:00
Davi Arnaut
b9380f0e76 Bug#48983: Bad strmake calls (length one too long)
The problem is a somewhat common misusage of the strmake function.
The strmake(dst, src, len) function writes at most /len/ bytes to
the string pointed to by src, not including the trailing null byte.
Hence, if /len/ is the exact length of the destination buffer, a
one byte buffer overflow can occur if the length of the source
string is equal to or greater than /len/.
2009-12-17 15:58:38 -02:00
Mikael Ronstrom
29c60cd5b7 BUG#49591, Fixed version string in SHOW CREATE TABLE to accomodate for column list partitioning and new function to_seconds 2009-12-17 18:39:10 +01:00
Alexey Kopytov
e6f0b15437 Manual merge from mysql-5.1-bugteam. Re-enabled binlog.binlog_index. 2009-12-17 20:10:18 +03:00
Alfranio Correia
4b0674f9d8 merge mysql-5.1-bugteam (local) --> mysql-5.1-bugteam 2009-12-17 15:47:22 +00:00
Alexey Kopytov
e39d8609ce Automerge from mysql-5.1-bugteam to mysql-trunk-merge. 2009-12-17 18:09:04 +03:00
Andrei Elkin
25743de765 merge from 5.0 with bug@49740 fixes 2009-12-17 16:50:45 +02:00
Andrei Elkin
0f73979084 Bug #49740 rpl.rpl_temporary fails in PB2 in mysql-trunk-merge
The test allowed random coincidence of connection ids for two concurrent
sessions performing CREATE/DROP temp tables.

Fixed with correcting the test. The sessions connection ids are not changed
from their defaults anymore.
2009-12-17 16:34:11 +02:00
Satya B
51ffb05c7c merge to mysql-5.1-bugteam 2009-12-17 17:47:34 +05:30
Satya B
647a955893 merge mysql-5.0-bugteam to mysql-5.1-bugteam 2009-12-17 17:15:13 +05:30
Satya B
801deedcf2 Fix for Bug#37408 - Compressed MyISAM files should not require/use mmap()
When compressed myisam files are opened, they are always memory mapped
sometimes causing memory swapping problems.

When we mmap the myisam compressed tables of size greater than the memory 
available, the kswapd0 process utilization is very high consuming 30-40% of 
the cpu. This happens only with linux kernels older than 2.6.9

With newer linux kernels, we don't have this problem of high cpu consumption
and this option may not be required.
 
The option 'myisam_mmap_size' is added to limit the amount of memory used for
memory mapping of myisam files. This option is not dynamic.

The default value on 32 bit system is 4294967295 bytes and on 64 bit system it
is 18446744073709547520 bytes.

Note: Testcase only tests the option variable. The actual bug has be to 
tested manually.
2009-12-17 16:55:50 +05:30
Martin Hansson
b0c9164cc9 Bug#47650: using group by with rollup without indexes
returns incorrect results with where

An outer join of a const table (outer) and a normal table
(inner) with GROUP BY on a field from the outer table would
optimize away GROUP BY, and thus trigger the optimization to
do away with a temporary table if grouping was performed on
columns from the const table, hence executing the query with
filesort without temporary table. But this should not be
done if there is a non-indexed access to the inner table,
since filesort does not handle joins. It expects either ref
access, range ditto or table scan. The join condition will
thus not be applied.

Fixed by always forcing execution with temporary table in
the case of ROLLUP with a query involving an outer join. This
is a slightly broader class of queries than need fixing, but
it is hard to ascertain the position of a ROLLUP field wrt
outer join with current query representation.
2009-12-17 10:55:18 +01:00
Ramil Kalimullin
7f7a1d5455 Auto-merge. 2009-12-17 10:52:43 +04:00
Ramil Kalimullin
092f25caeb Fix for bug#49465: valgrind warnings and incorrect live checksum...
Problem: inserting a record we don't set unused null bits in the
record buffer if no default field values used.
That may lead to wrong live checksum calculation.

Fix: set unused null bits in the record buffer in such cases.
2009-12-17 09:55:03 +04:00
Jim Winstead
45d9a5147f Merge approved bug fix 2009-12-16 12:48:53 -08:00
Magne Mahre
2fed660774 Bug#47017 rpl_timezone fails on PB-2 with mismatch error
The bug is caused by a race condition between the 
INSERT DELAYED thread and the client thread's FLUSH TABLE.  The 
FLUSH TABLE does not guarantee (as is (wrongly) suggested in the 
test case) that the INSERT DELAYED is ever executed.  The 
execution of the test case will thus not be deterministic.

The fix has been to do a deterministic verification that both
threads are complete by checking the content of the table.
2009-12-16 20:53:56 +01:00
Alfranio Correia
4ff970b08a BUG#49638 binlog_index fails in mysql-trunk-merge
Calling push_warning/push_warning_printf with a level of
WARN_LEVEL_ERROR *is* a bug. We should either use my_error(),
or WARN_LEVEL_WARN.
2009-12-16 19:52:56 +00:00
Alexander Nozdrin
99a0a3b947 Manual merge from mysql-5.1.
Conflicts:
  - mysql-test/r/select.result
  - mysql-test/t/select.test
  - sql/item_cmpfunc.h
  - sql/sql_show.cc
2009-12-16 21:35:25 +03:00
Georgi Kodinov
b640b8f036 Bug #48866: mysql.test fails under Fedora 12
strmov() is not guaranteed to work correctly on overlapping
source and destination buffers. On some OSes it may work,
but Fedora 12 has a stpcpy() that's not working correctly 
on overlapping buffers.
Fixed to use the overlap-safe version of strmov instead.
Re-vitalized the overlap-safe version of strmov.
2009-12-16 19:31:19 +02:00
Alexey Kopytov
efe6195858 Manual merge of mysql-5.1-bugteam into mysql-trunk-merge. 2009-12-16 16:47:07 +03:00
MySQL Build Team
ca587daa0c Merge 2009-12-16 14:21:02 +01:00
Joerg Bruehe
cb2c2fd8df Automerge the build fixes of 5.5.0-m2 back into the tree. 2009-12-16 14:11:20 +01:00
MySQL Build Team
57c69db903 Fix the version suffix, we use "-m2" currently. 2009-12-16 12:08:12 +01:00
MySQL Build Team
b254aee97c Automerge with an intermediate build clone,
to prepare for a tree parent alignment.
No code changes.
2009-12-16 11:51:47 +01:00
Jonathan Perkin
d456e4470d Fix previous merge: 'kill -0' (check PID exists) was changed to 'kill -9',
meaning a '/etc/init.d/mysql stop' would actually cause mysqld_safe to
relaunch mysqld rather than shut it down.
2009-12-16 10:27:56 +00:00
Alexander Nozdrin
a1218bb782 Auto-merge from mysql-trunk. 2009-12-16 13:27:39 +03:00
Alexander Nozdrin
a7073e53a4 Auto-merge from mysql-trunk. 2009-12-16 12:52:37 +03:00
Georgi Kodinov
8f32ccff60 merge 2009-12-16 11:03:24 +02:00
Alexander Nozdrin
2ae8acc294 Remove .cvsignore files (attempt #2). 2009-12-16 11:24:30 +03:00
Mattias Jonsson
2cb6f123b6 post push patch of bug#49369 updating test by removing
select of platform dependend variable.
2009-12-16 08:45:25 +01:00
8b3d63a6a5 Bug #46827 rpl_circular_for_4_hosts failed on PB2
This test case tests a circular replication of four hosts. 
A--->B--->C--->D--->A
The replicate is slow and needs more time to replicate all data in the circle.
The time it spends to replicate, sometimes, is longer than the time that 
wait_condition.inc spends to wait that all data has been replicated. This
cause sporadical failure of this test case.
  
This patch uses sync_slave_with_master to ensure that all data can be replicated
successfully in the circle.
2009-12-16 12:41:15 +08:00
152e8717fe Postfix
Only relative log events are showed.
2009-12-16 12:25:46 +08:00
Mattias Jonsson
a39a91112e merge (and including the fix for bug#48939 since that was not included in mysql-trunk-bugfixing). 2009-12-15 23:47:04 +01:00
Alexander Nozdrin
0b1a15e9a7 Backporing patch for Bug#48351 (Inconsistent library names for semisync plugin)
from mysql-next-mr-bugfixing to mysql-trunk-bugfixing.

Original revision:
------------------------------------------------------------
revision-id: zhenxing.he@sun.com-20091127084945-wng7gakygduv3q8k
committer: He Zhenxing <zhenxing.he@sun.com>
branch nick: 5.1-rep-semisync
timestamp: Fri 2009-11-27 16:49:45 +0800
message:
  Bug#48351 Inconsistent library names for semisync plugin
  
  The semisync plugin library names on Unix like systems were prefixed with
  'lib', which did not follow the conventions.
  
  Fix the problem by removing the 'lib' prefix on Unix systems.
------------------------------------------------------------
2009-12-15 23:40:20 +03:00
Alexander Nozdrin
7688c7369c Backporting a patch for Bug#49170 (Inconsistent placement of semisync
plugin prevents it from getting tested) from mysql-next-mr-bugfixing
to mysql-trunk-bugfixing.

Original revision:
------------------------------------------------------------
revision-id: zhenxing.he@sun.com-20091204014339-2m06r42vajhm9vke
committer: He Zhenxing <zhenxing.he@sun.com>
branch nick: 5.1-rep-semisync
timestamp: Fri 2009-12-04 09:43:39 +0800
message:
  Bug#49170 Inconsistent placement of semisync plugin prevents it from getting tested
  
  Add $basedir/lib/plugin to the search paths for semisync plugins.
------------------------------------------------------------
2009-12-15 23:23:01 +03:00
Alexander Nozdrin
25f365f610 Backporting patch for Bug#47756
from mysql-next-mr-bugfixing into mysql-trunk-bugfixing.

NOTE: the "utf8_phone_ci" collation does not exist in mysql-trunk yet,
so another collation with 2-byte collation ID is used: "utf8_test_ci".

This patch will be null-merged to mysql-next-mr-bugfixing.

Original revision:
------------------------------------------------------------
revision-id: bar@mysql.com-20091207121153-hs3bqbmr0719ws21
committer: Alexander Barkov <bar@mysql.com>
branch nick: mysql-next-mr.b47756
timestamp: Mon 2009-12-07 16:11:53 +0400
message:
  Bug#47756 Setting 2byte collation ID with 'set names' crashes the server
  
  The problem is not actually related to 2byte collation IDs.
  The same crash happens if you change the collation ID in
  mysql-test/str_data/Index.xml to a value smaller than 256.
  
  Crash happened in SQL parser, because the "ident_map" and "state_map"
  arrays were not initialized in loadable utf8 collations.
  
  Fix: adding proper initialization of the "ident_map" and "state_map"
  members for loadable utf8 collations.
------------------------------------------------------------
2009-12-15 23:20:53 +03:00
Georgi Kodinov
8d329aa720 Bug #48709: Assertion failed in sql_select.cc:11782:
int join_read_key(JOIN_TAB*)

The eq_ref access method TABLE_REF (accessed through 
JOIN_TAB) to save state and to track if this is the 
first row it finds or not.
This state was not reset on subquery re-execution
causing an assert.

Fixed by resetting the state before the subquery 
re-execution.
2009-12-15 19:10:06 +02:00
Ramil Kalimullin
4422b0f665 Fix for bug#49517: Inconsistent behavior while using
NULLable BIGINT and INT columns in comparison

Problem: a consequence of the fix for 43668.
Some Arg_comparator inner initialization missed,
that may lead to unpredictable (wrong) comparison
results.

Fix: always properly initialize Arg_comparator
before its usage.
2009-12-15 21:08:21 +04:00
Georgi Kodinov
9f0ea5dc96 merge 2009-12-15 18:26:03 +02:00
Mattias Jonsson
e9db7b8ef8 merge 2009-12-15 13:48:01 +01:00
Georgi Kodinov
82e6ae0ff1 Bug #48709: Assertion failed in sql_select.cc:11782:
int join_read_key(JOIN_TAB*)

The eq_ref access method TABLE_REF (accessed through 
JOIN_TAB) to save state and to track if this is the 
first row it finds or not.
This state was not reset on subquery re-execution
causing an assert.

Fixed by resetting the state before the subquery 
re-execution.
2009-12-15 14:20:29 +02:00
Alexander Barkov
9c47ea8380 Bug#49134 5.1 server segfaults with 2byte collation file
Problem: add_collation did not check that cs->number is smaller
than the number of elements in the array all_charsets[],
so server could crash when loading an Index.xml file with
a collation ID greater the number of elements 
(for example when downgrading from 5.5).

Fix: adding a condition to check that cs->number is not out of valid range.
2009-12-15 13:48:29 +04:00
Jon Olav Hauglid
ca049fbed8 Bug #48995 abort missing DBUG_RETURN or .. in function "check_key_in_view"
check_key_in_view() had one code branch which returned with "return TRUE"
rather than "DBUG_RETURN(TRUE)". Only affected debug builds.

No test case added.
2009-12-15 10:05:20 +01:00
Georgi Kodinov
b4def7bea1 Bug #48985: show create table crashes if previous access to the table
was killed

Merge the fix from 5.1-bugteam to 5.1-main
2009-12-15 11:03:24 +02:00
Georgi Kodinov
7b7a5c6e7a Bug#49489: Uninitialized cache led to a wrong result.
Merge the fix from 5.1-bugteam to 5.1-main
2009-12-15 10:54:53 +02:00
Georgi Kodinov
4b603e4881 Bug #49480: WHERE using YEAR columns returns unexpected results
Merge the fix from 5.1-bugteam to 5.1-main
2009-12-15 10:37:10 +02:00