Commit graph

76985 commits

Author SHA1 Message Date
Sergei Golubchik
da846a153b Merge with XtraDB as of Percona-Server-5.5.30-rel30.2 2013-05-08 10:12:21 +02:00
Sergei Golubchik
bcfa90b471 Percona-Server-5.5.30-rel30.2.tar.gz 2013-05-08 09:52:54 +02:00
Sergei Golubchik
009dee833c centos5 gcc 4.1 asm bug
include/atomic/x86-gcc.h:
  force %esi register, don't give gcc a choice.
  (otherwise it could choose %ebx, and 4.1 did)
2013-05-07 18:28:36 +02:00
Sergei Golubchik
e0a08c567a Compilation warnings.
openssl compilation problem.
2013-05-07 18:26:22 +02:00
Sergei Golubchik
b381cf843c mysql-5.5.31 merge 2013-05-07 13:05:09 +02:00
Michael Widenius
d4be9e7bc0 If one declared several continue handler for the same condition on different level of stored procedures, all of them where executed.
Now we only execute the innermost of them (the most relevant).

The solution was to add a 'handled' marker to MYSQL_ERROR and mark all elements for which we have executed a condition handler.
When searching for new conditions, we will ignore any marked element.




.bzrignore:
  Ignore error message file
mysql-test/r/sp.result:
  Added testcase for continue handlers.
mysql-test/t/sp.test:
  Added testcase for continue handlers.
sql/sp_head.cc:
  Mark errors for which we will excute a handler as 'handled'
  Ignore already handled warnings/errors
sql/sql_error.cc:
  Add 'handled' argument to MYSQL_ERROR, so that we can mark the errors/warnings we have handled.
sql/sql_error.h:
  Add 'handled' argument to MYSQL_ERROR, so that we can mark the errors/warnings we have handled.
2013-05-06 16:51:41 +03:00
Sergey Petrunya
aa885cea71 MDEV-4482 fix null-merged to 5.5 2013-05-05 05:38:09 +04:00
Igor Babaev
75befe7526 Merge 5.3->5.5 2013-05-04 21:56:45 -07:00
Sergey Petrunya
e97db87b24 Merge 2013-05-05 05:29:33 +04:00
Sergey Petrunya
445fc7ba5d MDEV-4482: main.windows test fails in buildbot with result mismatch
- Rollback an earlier patch (was pushed into 5.3 instead of 5.5)
2013-05-05 05:27:02 +04:00
Sergey Petrunya
ddd341b71a MDEV-4071: Valgrind warnings 'Invalid read' in subselect_engine::calc_const_tables with ...
- Call tmp_having->update_used_tables() *before* we have call JOIN::cleanup().
  Making the call after join::cleanup() is not allowed, because subquery 
  predicate items walk parent join's JOIN_TAB structures. Which can be 
  invalidated by JOIN::cleanup().
2013-05-04 20:42:43 +04:00
Sergey Petrunya
71422d7b14 MDEV-389: Wrong result (missing row) with semijoin, join_cache_level>4 ...
- Added testcase
2013-05-04 21:02:07 +04:00
Sergey Petrunya
2a8db1ca59 Update testcase result 2013-05-04 13:05:24 +04:00
Igor Babaev
920c479c6e Fixed bug mdev-4336.
When iterating over a list of conditions using List_iterator
the function remove_eq_conds should skip all predicates that
replace a condition from the list. Otherwise it can come to
an infinite recursion.
2013-05-03 22:46:45 -07:00
Igor Babaev
b249680fd1 Made consistent handling of the predicates of the form
<non-nullable datatime field> IS NULL in outer joins with
that in inner joins.
Previously such condition was transformed into the condition
<non-nullable datatime field> = 0 unless the field belonged
to an inner table of an outer join. In this case the predicate
was interpreted as for any other field.
Now if the field in the predicate <non-nullable datatime field> IS NULL
belongs to an inner table of an outer join the predicate is 
transformed into the disjunction
<non-nullable datatime field> = 0 OR <non-nullable datatime field> IS NULL.
This is fully compatible with the semantics of such predicates in 5.5.
2013-05-03 18:45:20 -07:00
Sergey Petrunya
c0ca15ab9c MDEV-4270: crash in fix_semijoin_strategies_for_picked_join_order
- Added testcase
2013-05-04 01:08:20 +04:00
Sergey Petrunya
b3720ff755 MDEV-621: LP:693329 - Assertion `!is_interleave_error' failed on low optimizer_search_depth
- When restore_prev_nj_state() is called for the table that is 
  the last remaining child of a nested join, do not leave that
  nested join's bit in join->cur_embedding_map.
2013-05-04 00:56:50 +04:00
Sergey Petrunya
6ed00c4d8a MDEV-4465: Reproducible crash (mysqld got signal 11) in multi_delete::initialize_tables...
- make multi_delete::initialize_tables() take into account that the JOIN structure may have
  semi-join nests (which are not fully initialized when this function is called, they have 
  tab->table=NULL which caused the crash)
- Also checked multi_update::initialize_tables(): it has a different logic and needed no fixing.
2013-05-03 00:10:43 +04:00
Igor Babaev
86f43c3077 Fixed bug mdev-4274.
This bug was the result of incompleteness of the patch for bug mdev-4177.
When an OR condition is simplified to a single conjunct it is merged
into the embedding AND condition. Multiple equalities are also merged,
and any field item involved in those equality should acquire a pointer
to a the multiple equality formed by this merge.
2013-04-29 20:31:40 -07:00
Vladislav Vaintroub
8d75f11a67 MDEV-4458 - Windows installer does not launch upgrade wizard anymore, even if there are upgradable instances (i.e windows service of lower MariaDB/MySQL version)
The main  reason for he error is misplaced ADD_DIRECTORY in top-level CMakeLists.txt.
ADD_DIRECTORY(win/packaging) was places before win/upgrade_wizard, and MSI was not able to detect that  upgrade wizard was built, and thus excluded upgrade wizard entirely.
2013-04-30 00:29:47 +02:00
Vladislav Vaintroub
2ffc7d73b9 fix test on Windows 2013-04-28 14:28:46 +02:00
Igor Babaev
f225f5485c Fixed bug mdev-4340.
The function make_join_statistics checks whether eq_ref access uses only
constant expressions, and, if this is the case the function performs
constant row substitution. The code of this check must take into account
hidden components of extended secondary keys.
2013-04-27 23:28:48 -07:00
Vladislav Vaintroub
1d130cc697 Fix build on Windows 2013-04-25 15:11:59 +02:00
unknown
203264ddc9 Fix unsigned/signed conversion bug in event type during mysql_binlog_send().
Since event types can be >=128 and are read from a (possibly signed) char
pointer, we need to cast to unsigned char before extending to int, or we will
get an incorrect negative number. This was done in the main code path already,
but there is a rare case where we check for new events first without a lock
and then again with the lock. If the second check succeeds because a new event
turns up at just the right time, then we took a code path that was missing the
correct unsigned char cast, leading to incorrect handling of events for old
slave servers and possibly other grief.

(This was found from a sporadic failure in Buildbot of test case
rpl_mariadb_slave_capability).
2013-04-25 13:16:35 +02:00
unknown
b54e5850d4 MDEV-4396: Fix sporadic failure of test innodb.innodb_bug14676111
The problem was that xtradb has innodb_purge_threads default 1 (plain
innodb defaults to 0).

The test sets a special debug variable and relies on it to force
purge to happen. But when using background purge threads, this does
not work, the debug code is not made to handle this, so occasionally
the test times out waiting for the purge to occur.

Fix by explicitly setting innodb_purgee_threads=0 for this test.
2013-04-22 16:22:39 +02:00
Sergei Golubchik
b9b3d5330a MDEV-260 auditing table accesses 2013-04-19 12:50:16 +02:00
Vladislav Vaintroub
4d78392be5 MDEV-4398 -
Change default for innodb_use_fallocate to FALSE, due to bugs in older Linux kernels (posix_fallocate() does not always guarantee that file size is like one specified)
2013-04-19 12:08:55 +02:00
Sergei Golubchik
84ce6832e6 MDEV-4332 Increase username length from 16 characters 2013-04-18 22:17:29 +02:00
Sergei Golubchik
07315d3603 strmake_buf(X,Y) helper, equivalent to strmake(X,Y,sizeof(X)-1)
with a bit of lame protection against abuse.
2013-04-17 19:42:34 +02:00
unknown
4656060f11 debug_sync is only available in debug build. 2013-04-16 18:52:23 +02:00
unknown
eb95ebf917 Fix race in test case. 2013-04-16 17:33:47 +02:00
unknown
58a77aafab MDEV-3882: .deb versions lower than upstream repo, causing install failure
The official Debian Wheezy MySQL packages have versions like 5.5.30+dfsg-xxx.
Such version is larger than 5.5.30-yyy, so apt prefers it.
So use instead 5.5.30+maria-yyy, which is larger and can be pulled in
automatically by apt.

Also included are a couple of fixes for test failures in buildbot.
2013-04-16 09:42:09 +02:00
Sergei Golubchik
fc17efc297 compiler warnings 2013-04-14 16:48:16 +02:00
Sergei Golubchik
d364e64ae2 add missing tests 2013-04-14 10:00:42 +02:00
Michael Widenius
aa4c7deac7 Increase default value of max_binlog_cache_size and max_binlog_stmt_cache_size to ulonglong_max.
This fixes that by default LOAD DATA INFILE will not generate the error:
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage..."


mysql-test/suite/sys_vars/r/max_binlog_cache_size_basic.result:
  Updated test case
mysql-test/suite/sys_vars/r/max_binlog_stmt_cache_size_basic.result:
  Updated test case
sql/sys_vars.cc:
  Increase default value of max_binlog_cache_size and max_binlog_stmt_cache_size to ulonglong_max.
2013-04-12 13:19:00 +03:00
Balasubramanian Kandasamy
e5055e22f1 Updated mysql.spec.sh for rpm-uln 2013-04-12 12:11:38 +02:00
Sergei Golubchik
4494c804b8 complier warnings. hide the redundant condition under #ifdef
(because only there it  makes any sense)
2013-04-12 01:05:29 +02:00
Sergei Golubchik
ce926c90ac 5.3 merge 2013-04-12 01:01:18 +02:00
Sergei Golubchik
ea4a417a8d 5.2 merge 2013-04-11 19:35:39 +02:00
Sergei Golubchik
61ed0ebe73 5.1 merge 2013-04-11 19:30:59 +02:00
Vladislav Vaintroub
5ae72bb73c MDEV-4356 : MariaDB does not start if bind-address gets resolved to more than single IP address.
MySQL bug http://bugs.mysql.com/bug.php?id=61713 was fixed in 5.5
  
Fix is to remove check for multiple entries returned by getaddrinfo(), and use the first entry that works  - i.e socket can be created.  

Unlike Oracle/MySQL's fix ,this one  is kept minimal : 
-  we do not prioritize IPv4 over IPv6,  orr other way around,  and just rely on operating system to sort getaddrinfo() entries in sensible order. There is RFC that defines  what is sensible order for getaddrinfo entries ( RFC 3484), and OS specific tweaks are also possible , like /etc/gai.conf o Linux.
-  also,  we do not force "0.0.0.0" address if bind-address is not given -  this would be a change in behavior of 5.5 at least on Windows, where passing NULL as  to getaddrinfo()  gives back IPv6-wildcard.
2013-04-07 20:32:39 +02:00
Sergei Golubchik
7b55b59b57 MDEV-4244 [PATCH] Buffer overruns and use-after-free errors
fixes for gcc 4.8 - compilation warnings and -fsanitize=address
2013-04-06 21:29:12 +02:00
Sergei Golubchik
5d9e50fc95 MDEV-4244 [PATCH] Buffer overruns and use-after-free errors
fixes for gcc 4.8 -fsanitize=address
2013-04-06 15:51:08 +02:00
Sergei Golubchik
6770a9a836 MDEV-4316 MariaDB server crash with signal 11
fulltext search was initialized for all MATCH ... AGAINST items
at the end of the JOIN::optimize(). But since 5.3 derived tables
are initialized lazily on first use, very late in the sub_select().

Skip Item_func_match::init_search initialization if the corresponding
table isn't open yet; repeat fulltext initialization for all
not-yet-initialized MATCH ... AGAINST items after creating derived tables.
2013-04-06 15:14:46 +02:00
unknown
385de8743a If a range tree has a branch that is an expensive constant,
currently get_mm_tree skipped the evaluation of this constant
and icorrectly proceeded. The correct behavior is to return a
NULL subtree, according to the IF branch being fixed - when it
evaluates the constant it returns a value, and doesn't continue
further.
2013-04-08 12:04:28 +03:00
Vladislav Vaintroub
ed949df15a MDEV-4338 - Support FusionIO/directFS atomic writes 2013-04-06 00:36:10 +02:00
Vladislav Vaintroub
0aa607a01a MDEV-4338 - Support FusionIO/directFS atomic writes 2013-04-06 00:35:45 +02:00
Sergei Golubchik
5d4ba5589d compilation warnings 2013-04-04 11:37:23 +02:00
Sergei Golubchik
730f67a43e fix have_debug_sync.inc to be more robust
(debug_sync value can have single quotes)
2013-04-04 11:37:13 +02:00
Sergei Golubchik
87a452f6d5 MDEV-4088 Replication 10.0 -> 5.5 fails
update 5.1 to replicate from 10.0 and
to show the server version (as of 10.0) correctly

sql-common/client.c:
  mdev:4088
sql/slave.cc:
  use the version number, not just the first character of the version string
  (we want 10 > 4 not "10" < "4").
2013-04-04 11:35:10 +02:00