summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2017-10-05 11:48:28 +0200
committerSergei Golubchik <serg@mariadb.org>2017-10-05 11:48:28 +0200
commita1a4e8eec1f7917b2d979f525a738a2cdd28436b (patch)
treea4504dd08996a118e2fb5b095ee522dc4e6edc0c
parentac57a30bd9e9aec457b5352e5023e736e015e8ca (diff)
parent3e39771551a3a055fcb089dbcd4a5f284cccb16b (diff)
downloadmariadb-git-a1a4e8eec1f7917b2d979f525a738a2cdd28436b.tar.gz
Merge branch 'bb-10.2-ext' into 10.3
-rw-r--r--mysql-test/include/fail_start_mysqld.inc18
-rwxr-xr-xmysql-test/mysql-test-run.pl6
-rw-r--r--mysql-test/r/tc_heuristic_recover.result1
-rw-r--r--mysql-test/suite/engines/funcs/r/sq_error.result8
-rw-r--r--mysql-test/suite/engines/funcs/t/sq_error.test8
-rw-r--r--mysql-test/suite/engines/iuds/r/update_delete_number.result1
-rw-r--r--mysql-test/suite/engines/iuds/t/update_delete_number.test1
-rw-r--r--mysql-test/t/tc_heuristic_recover.test24
-rw-r--r--scripts/mysqld_safe.sh4
-rw-r--r--sql/log_event.cc2
-rw-r--r--storage/connect/CMakeLists.txt2
-rw-r--r--storage/innobase/row/row0import.cc4
12 files changed, 15 insertions, 64 deletions
diff --git a/mysql-test/include/fail_start_mysqld.inc b/mysql-test/include/fail_start_mysqld.inc
deleted file mode 100644
index bb1085b5dd7..00000000000
--- a/mysql-test/include/fail_start_mysqld.inc
+++ /dev/null
@@ -1,18 +0,0 @@
-# ==== Usage ====
-#
-# [--let $restart_parameters= --innodb-force-recovery=0 --innodb-read-only=1]
-# [--let $mysqld_stub_cmd= $MYSQLD_LAST_CMD]
-# [--let $error_log= $MYSQLTEST_VARDIR/log/mysqld.1.err]
-# --source include/fail_restart_mysqld.inc
-
-# Evaluate the default of $error_log
-if (!$error_log)
-{
- --let $error_log= $MYSQLTEST_VARDIR/log/mysqld.1.err
-}
-
---error 1
---exec $mysqld_stub_cmd $restart_parameters >> $error_log 2>&1
-
-# As the server is stopped
---disable_reconnect
diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl
index ee5c75cf0dd..1b072ef7dc7 100755
--- a/mysql-test/mysql-test-run.pl
+++ b/mysql-test/mysql-test-run.pl
@@ -5044,9 +5044,9 @@ sub mysqld_start ($$) {
}
- # "Dynamic" version of MYSQLD_CMD is reevaluated with each mysqld_start.
- # Use it to restart the server at testing a failing server start (e.g
- # due to incompatible options).
+ # Command line for mysqld started for *this particular test*.
+ # Differs from "generic" MYSQLD_CMD by including all command line
+ # options from *.opt and *.combination files.
$ENV{'MYSQLD_LAST_CMD'}= "$exe @$args";
if ( $opt_gdb || $opt_manual_gdb )
diff --git a/mysql-test/r/tc_heuristic_recover.result b/mysql-test/r/tc_heuristic_recover.result
index 8fe3643b174..193a73c77f8 100644
--- a/mysql-test/r/tc_heuristic_recover.result
+++ b/mysql-test/r/tc_heuristic_recover.result
@@ -1,7 +1,6 @@
call mtr.add_suppression("Can't init tc log");
call mtr.add_suppression("Found 1 prepared transactions!");
call mtr.add_suppression("Aborting");
-set debug_sync='RESET';
CREATE TABLE t1 (i INT) ENGINE=InnoDB;
SET GLOBAL innodb_flush_log_at_trx_commit=1;
FLUSH TABLES;
diff --git a/mysql-test/suite/engines/funcs/r/sq_error.result b/mysql-test/suite/engines/funcs/r/sq_error.result
index 2090f4b9cd4..6b00bf6c921 100644
--- a/mysql-test/suite/engines/funcs/r/sq_error.result
+++ b/mysql-test/suite/engines/funcs/r/sq_error.result
@@ -15,8 +15,6 @@ ERROR 42000: This version of MariaDB doesn't yet support 'LIMIT & IN/ALL/ANY/SOM
SELECT * FROM t1 WHERE c1 = (SELECT c1 FROM t2);
ERROR 21000: Subquery returns more than 1 row
UPDATE t1 SET c2 = (SELECT MAX(c1) FROM t2);
-UPDATE t1 SET c1 = (SELECT MAX(c1) FROM t1);
-ERROR HY000: Table 't1' is specified twice, both as a target for 'UPDATE' and as a separate source for data
DROP TABLE t1;
DROP TABLE t2;
CREATE TABLE t1 (c1 INT, c2 VARCHAR(100),c3 FLOAT);
@@ -34,8 +32,6 @@ ERROR 42000: This version of MariaDB doesn't yet support 'LIMIT & IN/ALL/ANY/SOM
SELECT * FROM t1 WHERE c1 = (SELECT c1 FROM t2);
ERROR 21000: Subquery returns more than 1 row
UPDATE t1 SET c2 = (SELECT MAX(c1) FROM t2);
-UPDATE t1 SET c1 = (SELECT MAX(c1) FROM t1);
-ERROR HY000: Table 't1' is specified twice, both as a target for 'UPDATE' and as a separate source for data
DROP TABLE t1;
DROP TABLE t2;
CREATE TABLE t1 (c1 INT, c2 BINARY(100),c3 FLOAT);
@@ -53,8 +49,6 @@ ERROR 42000: This version of MariaDB doesn't yet support 'LIMIT & IN/ALL/ANY/SOM
SELECT * FROM t1 WHERE c1 = (SELECT c1 FROM t2);
ERROR 21000: Subquery returns more than 1 row
UPDATE t1 SET c2 = (SELECT MAX(c1) FROM t2);
-UPDATE t1 SET c1 = (SELECT MAX(c1) FROM t1);
-ERROR HY000: Table 't1' is specified twice, both as a target for 'UPDATE' and as a separate source for data
DROP TABLE t1;
DROP TABLE t2;
CREATE TABLE t1 (c1 INT, c2 VARBINARY(100),c3 FLOAT);
@@ -72,7 +66,5 @@ ERROR 42000: This version of MariaDB doesn't yet support 'LIMIT & IN/ALL/ANY/SOM
SELECT * FROM t1 WHERE c1 = (SELECT c1 FROM t2);
ERROR 21000: Subquery returns more than 1 row
UPDATE t1 SET c2 = (SELECT MAX(c1) FROM t2);
-UPDATE t1 SET c1 = (SELECT MAX(c1) FROM t1);
-ERROR HY000: Table 't1' is specified twice, both as a target for 'UPDATE' and as a separate source for data
DROP TABLE t1;
DROP TABLE t2;
diff --git a/mysql-test/suite/engines/funcs/t/sq_error.test b/mysql-test/suite/engines/funcs/t/sq_error.test
index a9b72008c74..6776e92be63 100644
--- a/mysql-test/suite/engines/funcs/t/sq_error.test
+++ b/mysql-test/suite/engines/funcs/t/sq_error.test
@@ -19,8 +19,6 @@ SELECT (SELECT c1, c2 FROM t2) FROM t1;
--error 1242
SELECT * FROM t1 WHERE c1 = (SELECT c1 FROM t2);
UPDATE t1 SET c2 = (SELECT MAX(c1) FROM t2);
---error 1093
-UPDATE t1 SET c1 = (SELECT MAX(c1) FROM t1);
DROP TABLE t1;
DROP TABLE t2;
CREATE TABLE t1 (c1 INT, c2 VARCHAR(100),c3 FLOAT);
@@ -38,8 +36,6 @@ SELECT (SELECT c1, c2 FROM t2) FROM t1;
--error 1242
SELECT * FROM t1 WHERE c1 = (SELECT c1 FROM t2);
UPDATE t1 SET c2 = (SELECT MAX(c1) FROM t2);
---error 1093
-UPDATE t1 SET c1 = (SELECT MAX(c1) FROM t1);
DROP TABLE t1;
DROP TABLE t2;
CREATE TABLE t1 (c1 INT, c2 BINARY(100),c3 FLOAT);
@@ -57,8 +53,6 @@ SELECT (SELECT c1, c2 FROM t2) FROM t1;
--error 1242
SELECT * FROM t1 WHERE c1 = (SELECT c1 FROM t2);
UPDATE t1 SET c2 = (SELECT MAX(c1) FROM t2);
---error 1093
-UPDATE t1 SET c1 = (SELECT MAX(c1) FROM t1);
DROP TABLE t1;
DROP TABLE t2;
CREATE TABLE t1 (c1 INT, c2 VARBINARY(100),c3 FLOAT);
@@ -76,8 +70,6 @@ SELECT (SELECT c1, c2 FROM t2) FROM t1;
--error 1242
SELECT * FROM t1 WHERE c1 = (SELECT c1 FROM t2);
UPDATE t1 SET c2 = (SELECT MAX(c1) FROM t2);
---error 1093
-UPDATE t1 SET c1 = (SELECT MAX(c1) FROM t1);
DROP TABLE t1;
DROP TABLE t2;
diff --git a/mysql-test/suite/engines/iuds/r/update_delete_number.result b/mysql-test/suite/engines/iuds/r/update_delete_number.result
index ef9d9ff0d34..b091d27d1e6 100644
--- a/mysql-test/suite/engines/iuds/r/update_delete_number.result
+++ b/mysql-test/suite/engines/iuds/r/update_delete_number.result
@@ -980,7 +980,6 @@ drop table mt1, mt2, mt3;
create table mt1 (col1 int);
create table mt2 (col1 int);
update mt1,mt2 set mt1.col1 = (select max(col1) from mt1) where mt1.col1 = mt2.col1;
-ERROR HY000: Table 'mt1' is specified twice, both as a target for 'UPDATE' and as a separate source for data
delete mt1 from mt1,mt2 where mt1.col1 < (select max(col1) from mt1) and mt1.col1 = mt2.col1;
ERROR HY000: Table 'mt1' is specified twice, both as a target for 'DELETE' and as a separate source for data
drop table mt1,mt2;
diff --git a/mysql-test/suite/engines/iuds/t/update_delete_number.test b/mysql-test/suite/engines/iuds/t/update_delete_number.test
index c58746d59f4..ce3f90140b2 100644
--- a/mysql-test/suite/engines/iuds/t/update_delete_number.test
+++ b/mysql-test/suite/engines/iuds/t/update_delete_number.test
@@ -495,7 +495,6 @@ drop table mt1, mt2, mt3;
# multi* unique updating table check
create table mt1 (col1 int);
create table mt2 (col1 int);
--- error ER_UPDATE_TABLE_USED
update mt1,mt2 set mt1.col1 = (select max(col1) from mt1) where mt1.col1 = mt2.col1;
-- error ER_UPDATE_TABLE_USED
delete mt1 from mt1,mt2 where mt1.col1 < (select max(col1) from mt1) and mt1.col1 = mt2.col1;
diff --git a/mysql-test/t/tc_heuristic_recover.test b/mysql-test/t/tc_heuristic_recover.test
index c9fa767c249..8cbf7d61143 100644
--- a/mysql-test/t/tc_heuristic_recover.test
+++ b/mysql-test/t/tc_heuristic_recover.test
@@ -9,7 +9,7 @@
# All this proves no crashes and effective rollback of the transaction.
#
--source include/have_innodb.inc
-# The test logics really requires --log-bin.
+# The test logic really requires --log-bin.
--source include/have_binlog_format_mixed.inc
--source include/have_debug_sync.inc
--source include/not_embedded.inc
@@ -22,14 +22,7 @@ call mtr.add_suppression("Aborting");
#
# The "restart" expect-file facility can't be engaged because the server
# having conflicting options may not succeed to boot up.
-# Also notice $MYSQLD_CMD is too "static" being unaware of the actual options
-# of the last (before shutdown or kill) server run.
-# That's why $MYSQLD_LAST_CMD that allows for the server new start
-# with more options appended to a stub set which is settled at this very point.
---let $mysqld_stub_cmd= $MYSQLD_LAST_CMD
---let $error_log= $MYSQLTEST_VARDIR/log/mysqld.1.err
---let SEARCH_FILE= $error_log
-set debug_sync='RESET';
+--let SEARCH_FILE=$MYSQLTEST_VARDIR/log/mysqld.1.err
CREATE TABLE t1 (i INT) ENGINE=InnoDB;
SET GLOBAL innodb_flush_log_at_trx_commit=1;
@@ -55,8 +48,8 @@ SELECT * FROM t1;
# TODO: MDEV-12700 Allow innodb_read_only startup without prior slow shutdown.
--source include/kill_mysqld.inc
---let $restart_parameters= --innodb-force-recovery=4
---source include/fail_start_mysqld.inc
+--error 1
+--exec $MYSQLD_LAST_CMD --log-bin=master-bin --binlog-format=mixed --core-file --loose-debug-sync-timeout=300 --innodb-force-recovery=4
--let SEARCH_PATTERN= was in the XA prepared state
--source include/search_pattern_in_file.inc
@@ -65,8 +58,8 @@ SELECT * FROM t1;
--let SEARCH_PATTERN= \\[ERROR\\] Can\\'t init tc log
--source include/search_pattern_in_file.inc
---let $restart_parameters= --innodb-force-recovery=4 --tc-heuristic-recover=COMMIT
---source include/fail_start_mysqld.inc
+--error 1
+--exec $MYSQLD_LAST_CMD --log-bin=master-bin --binlog-format=mixed --core-file --loose-debug-sync-timeout=300 --innodb-force-recovery=4 --tc-heuristic-recover=COMMIT
--let SEARCH_PATTERN= was in the XA prepared state
--source include/search_pattern_in_file.inc
--let SEARCH_PATTERN= Found 1 prepared transactions!
@@ -76,8 +69,8 @@ SELECT * FROM t1;
--let SEARCH_PATTERN= Please restart mysqld without --tc-heuristic-recover
--source include/search_pattern_in_file.inc
---let $restart_parameters= --tc-heuristic-recover=ROLLBACK
---source include/fail_start_mysqld.inc
+--error 1
+--exec $MYSQLD_LAST_CMD --log-bin=master-bin --binlog-format=mixed --core-file --loose-debug-sync-timeout=300 --tc-heuristic-recover=ROLLBACK
--let SEARCH_PATTERN= was in the XA prepared state
--source include/search_pattern_in_file.inc
@@ -88,7 +81,6 @@ SELECT * FROM t1;
--let SEARCH_PATTERN= Please restart mysqld without --tc-heuristic-recover
--source include/search_pattern_in_file.inc
---let $restart_parameters=
--source include/start_mysqld.inc
--let SEARCH_PATTERN= was in the XA prepared state
diff --git a/scripts/mysqld_safe.sh b/scripts/mysqld_safe.sh
index 3a06f7e4858..b06106ceae6 100644
--- a/scripts/mysqld_safe.sh
+++ b/scripts/mysqld_safe.sh
@@ -245,7 +245,7 @@ wsrep_recover_position() {
local euid=$(id -u)
local ret=0
- local wr_logfile=$(mktemp wsrep_recovery.XXXXXX)
+ local wr_logfile=$(mktemp /tmp/wsrep_recovery.XXXXXX)
# safety checks
if [ -z $wr_logfile ]; then
@@ -267,7 +267,7 @@ wsrep_recover_position() {
log_notice "WSREP: Running position recovery with $wr_options"
- eval_log_error "$mysqld_cmd --wsrep_recover $wr_options 2> $wr_logfile"
+ eval "$mysqld_cmd --wsrep_recover $wr_options 2> $wr_logfile"
local rp="$(grep 'WSREP: Recovered position:' $wr_logfile)"
if [ -z "$rp" ]; then
diff --git a/sql/log_event.cc b/sql/log_event.cc
index 21cc26905a9..841478b511b 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -7672,7 +7672,7 @@ Gtid_log_event::print(FILE *file, PRINT_EVENT_INFO *print_event_info)
char buf[21];
char buf2[21];
- if (!print_event_info->short_form & !is_flashback)
+ if (!print_event_info->short_form && !is_flashback)
{
print_header(&cache, print_event_info, FALSE);
longlong10_to_str(seq_no, buf, 10);
diff --git a/storage/connect/CMakeLists.txt b/storage/connect/CMakeLists.txt
index d422b076fc2..dc1f61d0d26 100644
--- a/storage/connect/CMakeLists.txt
+++ b/storage/connect/CMakeLists.txt
@@ -247,7 +247,7 @@ ENDIF(CONNECT_WITH_ODBC)
#
# JDBC with MongoDB Java Driver included but disabled
#
-#OPTION(CONNECT_WITH_MONGO "Compile CONNECT storage engine with MONGO support" ON)
+OPTION(CONNECT_WITH_MONGO "Compile CONNECT storage engine with MONGO support" ON)
OPTION(CONNECT_WITH_JDBC "Compile CONNECT storage engine with JDBC support" ON)
IF(CONNECT_WITH_JDBC)
diff --git a/storage/innobase/row/row0import.cc b/storage/innobase/row/row0import.cc
index 5ebe6cdf619..c8a9370208f 100644
--- a/storage/innobase/row/row0import.cc
+++ b/storage/innobase/row/row0import.cc
@@ -3596,10 +3596,6 @@ row_import_for_mysql(
if (err != DB_SUCCESS) {
return(row_import_error(prebuilt, trx, err));
- }
-
- if (err != DB_SUCCESS) {
- return(row_import_error(prebuilt, trx, err));
} else if (cfg.requires_purge(index->name)) {
/* Purge any delete-marked records that couldn't be