Commit graph

59787 commits

Author SHA1 Message Date
Alexey Kopytov
4a12f66cc9 Automerge 2009-12-13 23:57:57 +03:00
Alexey Kopytov
a8cfe3d4f7 Bug #42849: innodb crash with varying time_zone on partitioned
timestamp primary key 
 
Since TIMESTAMP values are adjusted by the current time zone  
settings in both numeric and string contexts, using any 
expressions involving TIMESTAMP values as a  
(sub)partitioning function leads to undeterministic behavior of  
partitioned tables. The effect may vary depending on a storage  
engine, it can be either incorrect data being retrieved or  
stored, or an assertion failure. The root cause of this is the  
fact that the calculated partition ID may differ from a  
previously calculated ID for the same data due to timezone  
adjustments of the partitioning expression value. 
 
Fixed by disabling any expressions involving TIMESTAMP values  
to be used in partitioning functions with the follwing two 
exceptions: 
 
1. Creating or altering into a partitioned table that violates 
the above rule is not allowed, but opening existing such tables 
results in a warning rather than an error so that such tables 
could be fixed. 
 
2. UNIX_TIMESTAMP() is the only way to get a 
timezone-independent value from a TIMESTAMP column, because it 
returns the internal representation (a time_t value) of a 
TIMESTAMP argument verbatim. So UNIX_TIMESTAMP(timestamp_column)
is allowed and should be used to fix existing tables if one 
wants to use TIMESTAMP columns with partitioning.
2009-12-13 23:29:50 +03:00
Staale Smedseng
983770aa6a Bug #45058 init_available_charsets uses double checked locking
As documented in the bug report, the double checked locking
pattern has inherent issues, and cannot guarantee correct
initialization.

This patch replaces the logic in init_available_charsets()
with the use of pthread_once(3). A wrapper function,
my_pthread_once(), is introduced and is used in lieu of direct
calls to init_available_charsets(). Related defines
MY_PTHREAD_ONCE_* are also introduced.

For the Windows platform, the implementation in lp:sysbench is
ported. For single-thread use, a simple define calls the
function and sets the pthread_once control variable.

Charset initialization is modified to use my_pthread_once().
2009-12-12 19:11:25 +01:00
Alexey Kopytov
72cceeece2 Disabled binlog.binlog_index, bug#49638. 2009-12-12 10:04:52 +03:00
Alexey Kopytov
6fd94f6838 Streamlined the test case for bug #49199 in
mysql-trunk-merge to take into account the changes
introduced by the fix for bug #30302.
2009-12-12 00:06:54 +03:00
Kent Boortz
33aa8f59e2 Null merge of change in 5.0 to use -D_WIN32_WINNT=0x0500, Windows 2000
compatibility, not to change the -D_WIN32_WINNT=0x0501 in 5.1, XP
compatibility.
2009-12-11 19:16:04 +01:00
Kent Boortz
98f738b198 Define _WIN32_WINNT to the minimum supported Windows version, 0x0500 i.e
Windows 2000.
      
      Visual Studio 2003 and 2005 require
        _WIN32_WINNT >= 0x0500 (Win2000)  for TryEnterCriticalSection.
2009-12-11 19:11:49 +01:00
Alexey Kopytov
72b2943594 Manual merge of mysql-5.1-bugteam into mysql-trunk-merge. 2009-12-11 19:40:58 +03:00
Georgi Kodinov
fd8a78962f merge 2009-12-11 17:24:09 +02:00
Georgi Kodinov
658ad9f232 merge 2009-12-11 16:08:28 +02:00
Georgi Kodinov
44272f5e5e merge 2009-12-11 16:07:19 +02:00
Georgi Kodinov
088bac1a66 merge 2009-12-11 16:07:09 +02:00
Georgi Kodinov
7df06658c4 merge of bug #49250 to 5.1-bugteam 2009-12-11 16:02:47 +02:00
Evgeny Potemkin
b358f61bc7 Auto-merged fix for bug#49489. 2009-12-11 16:08:29 +03:00
V Narayanan
75ee71981e merging with mysql-5.1-bugteam 2009-12-11 17:27:12 +05:30
Alexander Nozdrin
69cfd5c8ec Manual merge from mysql-trunk.
Conflicts:
  - client/mysqltest.cc
  - mysql-test/collections/default.experimental
  - mysql-test/suite/rpl/t/disabled.def
  - sql/mysqld.cc
  - sql/opt_range.cc
  - sql/sp.cc
  - sql/sql_acl.cc
  - sql/sql_partition.cc
  - sql/sql_table.cc
2009-12-11 12:39:38 +03:00
V Narayanan
1704a8a937 Bug#49521 SHOW CREATE TABLE on IBMDB2I tables has incorrect fk constraint format
The fix inserts newline and comma characters as appropriate
into the constraint reporting code to match the formatting
required by SHOW CREATE TABLE. Additionally, a erroneously
duplicated copy of check_if_incompatible_data() was removed
from db2i_constraints.cc since the correct version is already
in ha_ibmdb2i.cc.
2009-12-11 12:46:57 +05:30
Alexander Nozdrin
713ed2d243 Auto-merge (empty) from mysql-5.1. 2009-12-11 10:01:27 +03:00
V Narayanan
e3df8b6d9a Bug#49329 example (and other) engines use wrong collation for open tables hash
This fix changes the character set used within the
IBMDB2I handler to hash table names to information
about open tables. Previously, tables with names
that differed only in letter case would hash to the
same data structure. This caused incorrect behavior
or errors when two such tables were in use simultaneously.
2009-12-11 12:31:16 +05:30
Alexander Nozdrin
b097816d69 Auto-merge from mysql-trunk. 2009-12-11 09:20:33 +03:00
Alexander Nozdrin
2757eab544 Remove BitKeeper dir and .cvsignore. 2009-12-11 09:19:51 +03:00
Alexander Nozdrin
633536871c Auto-merge (empty) from mysql-trunk. 2009-12-11 09:00:57 +03:00
Alexander Nozdrin
b8aace9485 Auto-merge from mysql-trunk-bugfixing. 2009-12-11 08:54:36 +03:00
350737bf4c Bug #48742 Replication: incorrect help text for --init-slave
The help text for --init-slave=name:
"Command(s) that are executed when a slave connects to this master".
This text indicate that the --init-slave option is set on a  master 
server, and the master server passes the option's argument to slave 
which connects to it. This is wrong. Actually the --init-slave option 
just can be set on a slave server, and then the slave server executes 
the argument each time the SQL thread starts.

Correct the help text for --init-slave option as following:
"Command(s) that are executed by a slave server each time the SQL thread starts."
2009-12-11 10:12:18 +08:00
af22ba911e Bug #48742 Replication: incorrect help text for --init-slave
The help text for --init-slave=name:
"Command(s) that are executed when a slave connects to this master".
This text indicate that the --init-slave option is set on a  master 
server, and the master server passes the option's argument to slave 
which connects to it. This is wrong. Actually the --init-slave option 
just can be set on a slave server, and then the slave server executes 
the argument each time the SQL thread starts.

Correct the help text for --init-slave option as following:
"Command(s) that are executed by a slave server each time the SQL thread starts."
2009-12-11 09:57:38 +08:00
Georgi Kodinov
772aa6951f merge 2009-12-10 17:38:01 +02:00
Alexander Nozdrin
fcbbac8b37 Auto-merge (empty) from mysql-trunk. 2009-12-10 17:45:22 +03:00
Georgi Kodinov
ee06414b5a Bug #49250 : spatial btree index corruption and crash
SPATIAL and FULLTEXT indexes don't support algorithm
selection. 
Disabled by creating a special grammar rule for these
in the parser.
Added some encasulation of duplicate parser code.
2009-12-10 11:28:38 +02:00
Ramil Kalimullin
16d15270dd Auto-merge. 2009-12-10 11:03:23 +04:00
Ramil Kalimullin
7171282fb7 Manual merge. 2009-12-10 10:31:52 +04:00
Gleb Shchepa
3461cdc1a1 Bug #49480: WHERE using YEAR columns returns unexpected results
A few problems were found in the fix for bug 43668:
1) Comparison of the YEAR column with NULL always returned TRUE;
2) Comparison of the YEAR column with constants always returned
   unpredictable result;
3) Unnecessary conversion warnings when comparing a non-integer
   constant with a NULL value in the YEAR column;

The problems described above have been resolved with an
exception: zero (i.e. invalid) YEAR column value comparison
with 00 or 2000 still fail (it is not a regression and it was
not a regression), so MIN/MAX on YEAR column containing zero
value still fail.
2009-12-10 10:05:44 +04:00
Ramil Kalimullin
89ea92505f Auto-merge. 2009-12-10 09:51:08 +04:00
He Zhenxing
644015d239 Auto merge 2009-12-10 12:56:10 +08:00
He Zhenxing
6878d7e74b Merge from 5.0-bugteam 2009-12-10 11:51:42 +08:00
He Zhenxing
cc92cd72a4 Post fix for bug#45520 2009-12-10 11:44:19 +08:00
Evgeny Potemkin
69fa790fbd Bug#49489: Uninitialized cache led to a wrong result.
Arg_comparator uses Item_cache objects to store constants being compared when
they're need a type conversion. Because this cache wasn't initialized properly
Arg_comparator might produce wrong comparison result.

The Arg_comparator::cache_converted_constant function now initializes cache
prior to usage.
2009-12-09 18:43:45 +03:00
Alfranio Correia
ebed1914ec merge mysql-5.1-bugteam (local) --> mysql-5.1-bugteam 2009-12-09 11:03:01 +00:00
Olav Sandstaa
2b0642a639 Fix for Bug#49506 Valgrind error in make_cond_for_table_from_pred
This fix has been proposed by Sergey Petrunya and has been contributed
under SCA by sca@askmonty.org.
      
The cause for this valgrind error is that in the function
add_cond_and_fix() in sql_select.cc an Item_cond_and object is
created. This is marked as fixed but does not have a correct
table_map() attribute. Later, in make_join_select(), if
engine_condition_pushdown is in use, this table map is used and
results in the valgrind error.
      
The fix is to add a call to update_used_tables() in add_cond_and_fix()
so that the table map is updated correctly.
      
This patch is tested by multiple existing tests (e.g. the tests
innodb_mysql, innodb, fulltext, compress all produces this valgrind
warning/error without this fix).
2009-12-09 10:16:11 +01:00
He Zhenxing
a8a01f2062 Merge from 5.0-bugteam 2009-12-09 14:39:07 +08:00
He Zhenxing
714348a8d3 removed rpl_killed_ddl from disabled list 2009-12-09 14:27:46 +08:00
He Zhenxing
bda9422a3a Merge Bug#45520 fix from 5.0-bugteam 2009-12-09 14:24:54 +08:00
He Zhenxing
9058e48121 BUG#45520 rpl_killed_ddl fails sporadically in pb2
There are three issues that caused rpl_killed_ddl fails sporadically
in pb2:

 1) thd->clear_error() was not called before create Query event
if operation is executed successfully.
 2) DATABASE d2 might do exist because the statement to CREATE or
ALTER it was killed
 3) because of bug 43353, kill the query that do DROP FUNCTION or
    DROP PROCEDURE can result in SP not found

This patch fixed all above issues by:
 1) Called thd->clear_error() if the operation succeeded.
 2) Add IF EXISTS to the DROP DATABASE d2 statement
 3) Temporarily disabled testing DROP FUNCTION/PROCEDURE IF EXISTS.
2009-12-09 14:13:56 +08:00
Alfranio Correia
259b028d8e Post-push fix for BUG#45292.
Disabled execution in valgrind to avoid false positive memory
leaks due to fault-injection tests (i.e. call to abort()).
2009-12-08 16:03:19 +00:00
karen.langford@sun.com
d4d4e38413 Raise version number after cloning 5.0.89 2009-12-08 16:35:00 +01:00
sunanda.menon@sun.com
d6e7402d42 Null-merge from mysql-5.1.40sp1-release 2009-12-08 10:26:11 +01:00
MySQL Build Team
54df0057e1 The version is renamed:
This is no tree that will progress through "beta" and "rc" to "GA",
rather it is a series of "milestones",
so the version is
                  5.5.0-m2
2009-12-07 19:00:02 +01:00
Georgi Kodinov
3c434c93d0 Bug #42760: Select doesn't return desired results when we have null values
Part 2 : 
There was a special optimization on the ref access method for 
ORDER BY ... DESC that was set without actually looking on the type of the 
selected index for ORDER BY.
Fixed the SELECT ... ORDER BY .. DESC (it uses a different code path compared
to the ASC that has been fixed with the previous fix).
2009-12-07 16:38:56 +02:00
Luis Soares
514f4814d5 Automerge bzr bundle in bug report into local mysql-5.1-bugteam latest. 2009-12-07 00:28:14 +00:00
Luis Soares
1ee79014e3 Automerge bzr bundle from bug report.
Removed rpl_cross_version from experimental list.
2009-12-06 23:36:07 +00:00
Luis Soares
2abecf2a21 automerge: mysql-5.1-bugteam bug branch --> mysql-5.1-bugteam latest 2009-12-06 23:14:45 +00:00