Commit graph

164874 commits

Author SHA1 Message Date
Alexander Barkov
197afb413f MDEV-6566 Different INSERT behaviour on bad bytes with and without character set conversion 2015-03-13 16:51:36 +04:00
Alexey Botchkov
702fba1511 MDEV-7510 GIS: IsRing returns false for a primitive triangle.
The problem is in the IsSimple function. If the first and the last points
of a curve coincide it's and exception and the line is still 'simple'.
2015-03-13 16:10:31 +04:00
Alexander Barkov
75d65b5f4e MDEV-6989 BINARY and COLLATE xxx_bin comparisions are not used for optimization in some cases 2015-03-13 15:48:39 +04:00
Alexander Barkov
bd2105855a Adding "const" qualifier to Item::compare_collation() 2015-03-13 13:52:07 +04:00
Jan Lindström
4d0e52189c MDEV-7770: Online DDL progress output contains incorrectly printed index names
Index names were not formatted correctly.
2015-03-13 09:38:08 +02:00
Alexander Barkov
bb3115b256 MDEV-6990 GROUP_MIN_MAX optimization is not applied in some cases when it could 2015-03-12 18:12:15 +04:00
Alexey Botchkov
129c82bb59 MDEV-7334 valgrind warning "unitialized bytes" in 10.1.
The 'srid' field's copying was missing in the copying Create_field::Create_field() constructor.
2015-03-12 17:50:23 +04:00
Jan Lindström
8249dcaaeb MDEV-6858: enforce_storage_engine option
Merge from Percona Server enforced use of a specific storage engine
authored by Stewart Smith.

Modified to be session variable and modifiable only by SUPER. Use
similar implementation as default_storage_engine.
2015-03-12 12:17:14 +02:00
Alexander Barkov
ba3573cae8 Clean-up:
- Renaming Item::is_bool_func() to is_bool_type(), to avoid assumption
  that the item is an Item_func derivant.
- Deriving Item_func_spatial_rel from Item_bool_func rather than Item_int_func
2015-03-12 13:40:52 +04:00
Oleksandr Byelkin
a71e2d23bd MDEV-7006 MDEV-7007: SET STATEMENT and slow log
fixed embedded server tests
MDEV-7009: SET STATEMENT min_examined_row_limit has no effect
MDEV-6948:SET STATEMENT gtid_domain_id = ... FOR has no effect (same for gtid_seq_no and server_id)

old values of SET STATENENT variables now saved in its own Query_arena and restored later
2015-03-12 10:19:32 +01:00
Oleksandr Byelkin
dab12366b1 MDEV-6956:SET STATEMENT default_master_connection = ... has no effect
the problem was in assigning default value during parsing.
2015-03-12 09:47:36 +01:00
Alexander Barkov
e91bc2e91d MDEV-7759 NULLIF(x,y) is not equal to CASE WHEN x=y THEN NULL ELSE x END 2015-03-12 11:40:37 +04:00
Oleksandr Byelkin
80f03abcca MDEV-7671: Cache VIEW definitions in the TDC
(changes of backported patch are very small: strlen removed, error processing fixed, view open statistics added)
2015-03-11 17:39:15 +01:00
Oleksandr Byelkin
3aa1a600bb Merge branch '10.1' of github.com:MariaDB/server into 10.1 2015-03-11 15:15:43 +01:00
Oleksandr Byelkin
be73c7ee44 MDEV-6951: Erroneous SET STATEMENT produces two identical errors
Double error reporting removed.
2015-03-11 14:57:30 +01:00
Alexey Botchkov
52a1b5a8c2 MY_CHECK_AND_SET_COMPILER_FLAG changes
* watch for "redefined macro" warning
* don't enable -D_FORTIFY_SOURCE=2 in debug builds (it requires -O)
2015-03-11 13:05:03 +04:00
Alexander Barkov
190858d996 Removing duplicate code: adding Item_func_bool_predicate as a
common parent class for Item_func_isnull and Item_func_isnotnull
2015-03-11 12:40:35 +04:00
Jan Lindström
9f4ee16bf3 MDEV-7619: Improve long semaphore wait output
Add holder thread_id, file_name and line to output.
2015-03-11 07:31:57 +02:00
Alexey Botchkov
ba43735c68 Check for the openssl-dev so the build doesn't fail without it. 2015-03-10 22:34:57 +04:00
Vicențiu Ciorbaru
0ed57e34c7 MDEV-7025 ANALYZE SELECT/INSERT/UPDATE/DELETE from a view does not check access permissions on the view
Added access checking for the ANALYZE statement command.
2015-03-10 14:11:02 +02:00
Jan Lindström
c8035da9b8 Add more information if page state is not correct. 2015-03-10 14:05:57 +02:00
Sergei Golubchik
f7d196bb2e 32bit fix 2015-03-08 17:22:37 +01:00
Sergei Golubchik
e2de804491 Merge branch '10.1' into bb-10.1-serg 2015-03-08 12:54:42 +01:00
Sergei Petrunia
2288b84df4 MDEV-7679: ANALYZE crashes when printing WHERE when no default db
Fix Item_ident::print() to work when there is no current database
2015-03-07 20:51:35 +03:00
Sergei Petrunia
66ad265f3b MDEV-7674: ANALYZE shows r_rows=0
Change r_rows to be double
2015-03-07 19:30:19 +03:00
Sergei Golubchik
5bff6c5d57 bison warning: clash on default action: <NONE> != <object_ddl_options> 2015-03-07 15:32:52 +01:00
Sergei Golubchik
6d8b74dd07 add a test for drop trigger under --read-only 2015-03-07 13:28:04 +01:00
Sergei Golubchik
18feb62fee MDEV-6819 st_mysql_show_var::value should be void* not char* 2015-03-07 13:27:56 +01:00
Sergei Golubchik
20cacb0064 fix a crash of innodb.innodb_mutexes,innodb_plugin
add forgotten initialization of the mutex name
2015-03-07 13:27:49 +01:00
Sergei Golubchik
2db62f686e Merge branch '10.0' into 10.1 2015-03-07 13:21:02 +01:00
Sergei Golubchik
d61573d3e5 fix connect.json_udf test for static builds 2015-03-06 20:49:48 +01:00
Sergei Golubchik
c0af8213fe MDEV-7669 tmp_table_count-7586 fails in ps and embedded
disable a broken test, pending a proper fix
2015-03-06 20:49:21 +01:00
Sergei Golubchik
5f510a9175 Merge branch '5.5' into 10.0 2015-03-06 18:41:32 +01:00
Sergei Golubchik
17a37796e1 after innodb/xtradb merge: use the correct visibility for internal functions
otherwise innodb plugin might invoke xtradb function with the same name,
and that might crash (./mtr --emb innodb.strict_mode)
2015-03-06 18:13:06 +01:00
Sergei Golubchik
d7d19071d2 MDEV-6838 Using too big key for internal temp tables
update test results after the fix
2015-03-06 17:03:46 +01:00
Sergei Golubchik
12d87c3ba5 MDEV-7659 buildbot may leave stale mysqld
safe_process puts its children (mysqld, in this case) into a separate
process group, to be able to kill it all at once.

buildslave kills mtr's process group when it loses connection to
the master.

result? buildslave kills mtr and safe_process, but leaves stale
mysqld processes in their own process groups.

fix: put safe_process itself into a separate process group, then
buildslave won't kill it and safe_process will kill mysqld'd
and itself when it will notice that the parent mtr no longer exists.
2015-03-06 11:15:55 +01:00
Jan Lindström
206b111b11 MDEV-7672: Crash creating an InnoDB table with foreign keys
Analysis: after a red-black-tree lookup we use node withouth
checking did lookup succeed or not. This lead to situation
where NULL-pointer was used.

Fix: Add additional check that found node from red-back-tree
is valid.
2015-03-06 11:19:23 +02:00
Sergey Vojtovich
e13459a11e MDEV-7148 - Recurring: InnoDB: Failing assertion: !lock->recursive
Re-applied lost in the merge revision:
commit ed313e8a92
Author: Sergey Vojtovich <svoj@mariadb.org>
Date:   Mon Dec 1 14:58:29 2014 +0400

    MDEV-7148 - Recurring: InnoDB: Failing assertion: !lock->recursive

    On PPC64 high-loaded server may crash due to assertion failure in InnoDB
    rwlocks code.

    This happened because load order between "recursive" and "writer_thread"
    wasn't properly enforced.
2015-03-05 15:30:11 +04:00
Jan Lindström
f66fbe8ce0 MDEV-7578 :Slave is ~10x slower to execute set of statements compared to master when using RBR
Analysis: On master when executing (single/multi) row INSERTs/REPLACEs
InnoDB fallback to old style autoinc locks (table locks)
only if another transaction has already acquired the AUTOINC lock.
Instead on slave as we are executing log_events and sql_command
is not correctly set, InnoDB does not use new style autoinc
locks when it could.

Fix: Use new style autoinc locks also when
thd_sql_command(user_thd) == SQLCOM_END i.e. this is RBR event.
2015-03-05 12:05:59 +02:00
Kristian Nielsen
7dee7a036a GTID: Add missing test of reconnecting into out-of-order binlog. 2015-03-05 09:41:01 +01:00
Jan Lindström
143f5d9172 MDEV-7061: Augment innochecksum to give insight of fragmentation
Merged 615dd07d90 from https://github.com/facebook/mysql-5.6/
authored by rongrong. Removed C++11 requirement by using
std::map instead of std::unordered_set.

Add analysis to leaf pages to estimate how fragmented an index is
and how much benefit we can get out of defragmentation.
2015-03-04 16:57:31 +02:00
Kristian Nielsen
2e4dc5a370 after-merge fixes 2015-03-04 14:12:48 +01:00
Kristian Nielsen
95d7208859 Merge MDEV-6589 and MDEV-6403 into 10.1.
Conflicts:
	sql/log.cc
	sql/rpl_rli.cc
	sql/sql_repl.cc
2015-03-04 13:49:37 +01:00
Kristian Nielsen
3ef0b9b235 Merge MDEV-6589 and MDEV-6403 into 10.0. 2015-03-04 13:36:54 +01:00
Kristian Nielsen
78c74dbe30 MDEV-6403: Temporary tables lost at STOP SLAVE in GTID mode if master has not rotated binlog since restart
The binlog contains specially marked format description events to mark
when a master restart happened (which could have caused temporary
tables to be silently dropped). Such events also cause slave to close
temporary tables.

However, there was a bug that if after this, slave re-connects to the
master in GTID mode, the master can send an old format description
event again. If temporary tables are closed when such event is seen
for the second time, it might drop temporary tables created after that
event, and cause replication failure.

With this patch, the restart flag of the format description event is
cleared by the master when it is sent to the slave in a subsequent
connection, to avoid the errorneous temp table close.
2015-03-04 13:36:29 +01:00
Kristian Nielsen
ad0d203f2e MDEV-6589: Incorrect relay log start position when restarting SQL thread after error in parallel replication
The problem occurs in parallel replication in GTID mode, when we are using
multiple replication domains. In this case, if the SQL thread stops, the
slave GTID position may refer to a different point in the relay log for each
domain.

The bug was that when the SQL thread was stopped and restarted (but the IO
thread was kept running), the SQL thread would resume applying the relay log
from the point of the most advanced replication domain, silently skipping all
earlier events within other domains. This caused replication corruption.

This patch solves the problem by storing, when the SQL thread stops with
multiple parallel replication domains active, the current GTID
position. Additionally, the current position in the relay logs is moved back
to a point known to be earlier than the current position of any replication
domain. Then when the SQL thread restarts from the earlier position, GTIDs
encountered are compared against the stored GTID position. Any GTID that was
already applied before the stop is skipped to avoid duplicate apply.

This patch should have no effect if multi-domain GTID parallel replication is
not used. Similarly, if both SQL and IO thread are stopped and restarted, the
patch has no effect, as in this case the existing relay logs are removed and
re-fetched from the master at the current global @@gtid_slave_pos.
2015-03-04 13:36:04 +01:00
Sergey Vojtovich
f4f37533a0 Replaced lf-hash element_size hack with initializer function. 2015-03-04 13:34:53 +04:00
Sergey Vojtovich
5c6aa4dea0 MDEV-6089 - MySQL WL#7305 "Improve MDL scalability by using lock-free hash"
Replaced hash with lock-free hash.
2015-03-04 13:34:53 +04:00
Sergey Vojtovich
d9e3a9f20e MDEV-6089 - MySQL WL#7305 "Improve MDL scalability by using lock-free hash"
Extended lf-hash implementation to accept user defined hash function.
2015-03-04 13:34:53 +04:00
Sergey Vojtovich
9c8165fdb4 MDEV-6089 - MySQL WL#7305 "Improve MDL scalability by using lock-free hash"
Added initializer callback to lf-hash. Needed to initialize properly non-POD
types.
2015-03-04 13:34:53 +04:00