diff options
author | Oleksandr Byelkin <sanja@mariadb.com> | 2019-02-12 12:04:10 +0100 |
---|---|---|
committer | Oleksandr Byelkin <sanja@mariadb.com> | 2019-02-12 12:04:10 +0100 |
commit | b953d70d15d3a723e33aaa268a321b51d2b028ca (patch) | |
tree | 825a6b6aa33696ecf77aa89df7384c9cddfb6455 | |
parent | 31d6e9c3c83c5248789df14f13e6f14599170f9c (diff) | |
parent | 8a9cdc5f44b14466e79630778c5e76d941d28435 (diff) | |
download | mariadb-git-b953d70d15d3a723e33aaa268a321b51d2b028ca.tar.gz |
Merge branch '10.2' into 10.3
m--------- | libmariadb | 0 | ||||
-rw-r--r-- | mysql-test/main/mysql.result | 13 | ||||
-rw-r--r-- | mysql-test/main/mysql.test | 17 | ||||
-rw-r--r-- | mysql-test/suite/galera_3nodes/galera_2x3nodes.cnf | 1 | ||||
-rw-r--r-- | mysql-test/suite/galera_3nodes/galera_3nodes.cnf | 1 | ||||
-rw-r--r-- | mysql-test/suite/galera_3nodes/r/galera_garbd.result | 4 | ||||
-rw-r--r-- | mysql-test/suite/galera_3nodes/r/galera_safe_to_bootstrap.result | 20 | ||||
-rw-r--r-- | mysql-test/suite/galera_3nodes/r/galera_var_dirty_reads2.result | 4 | ||||
-rw-r--r-- | mysql-test/suite/galera_3nodes/suite.pm | 36 | ||||
-rw-r--r-- | mysql-test/suite/galera_3nodes/t/galera_garbd.test | 11 | ||||
-rw-r--r-- | mysql-test/suite/galera_3nodes/t/galera_var_dirty_reads2.test | 14 | ||||
-rw-r--r-- | mysql-test/suite/innodb/r/foreign_key.result | 10 | ||||
-rw-r--r-- | mysql-test/suite/innodb/t/foreign_key.test | 9 | ||||
-rw-r--r-- | storage/connect/ha_connect.cc | 2 | ||||
-rw-r--r-- | storage/connect/mysql-test/connect/r/xml.result | 2 | ||||
-rw-r--r-- | storage/innobase/handler/i_s.cc | 89 |
16 files changed, 128 insertions, 105 deletions
diff --git a/libmariadb b/libmariadb -Subproject 34f8887af03d022416dd6593de91d0706e57f46 +Subproject 2c5aebb3bc724c1663c481ba2fedde00ab494fa diff --git a/mysql-test/main/mysql.result b/mysql-test/main/mysql.result index 02ca052cfc8..07f49d32b2e 100644 --- a/mysql-test/main/mysql.result +++ b/mysql-test/main/mysql.result @@ -613,5 +613,16 @@ select count(*) from t1; count(*) 0 truncate table t1; -### FIXME: update libmariadb +select count(*) from t1; +count(*) +0 +truncate table t1; +select count(*) from t1; +count(*) +41 +truncate table t1; +select count(*) from t1; +count(*) +0 +truncate table t1; drop table t1; diff --git a/mysql-test/main/mysql.test b/mysql-test/main/mysql.test index 66ccef18327..cd335973288 100644 --- a/mysql-test/main/mysql.test +++ b/mysql-test/main/mysql.test @@ -693,13 +693,12 @@ select count(*) from t1; truncate table t1; --error 1 --exec $MYSQL --disable-local-infile -e "$ldli" select count(*) from t1; truncate table t1; ---echo ### FIXME: update libmariadb -#--error 1 -#--exec $MYSQL -e "/*q*/$ldli" -#select count(*) from t1; truncate table t1; -#--exec $MYSQL --enable-local-infile -e "/*q*/$ldli" -#select count(*) from t1; truncate table t1; -# --error 1 -# --exec $MYSQL --disable-local-infile -e "/*q*/$ldli" -#select count(*) from t1; truncate table t1; +--error 1 +--exec $MYSQL -e "/*q*/$ldli" +select count(*) from t1; truncate table t1; +--exec $MYSQL --enable-local-infile -e "/*q*/$ldli" +select count(*) from t1; truncate table t1; + --error 1 + --exec $MYSQL --disable-local-infile -e "/*q*/$ldli" +select count(*) from t1; truncate table t1; drop table t1; diff --git a/mysql-test/suite/galera_3nodes/galera_2x3nodes.cnf b/mysql-test/suite/galera_3nodes/galera_2x3nodes.cnf index df51920c13c..477789175fb 100644 --- a/mysql-test/suite/galera_3nodes/galera_2x3nodes.cnf +++ b/mysql-test/suite/galera_3nodes/galera_2x3nodes.cnf @@ -9,6 +9,7 @@ innodb-autoinc-lock-mode=2 default-storage-engine=innodb wsrep_gtid_mode=1 gtid_ignore_duplicates +auto_increment_increment=3 wsrep-on=1 wsrep-provider=@ENV.WSREP_PROVIDER diff --git a/mysql-test/suite/galera_3nodes/galera_3nodes.cnf b/mysql-test/suite/galera_3nodes/galera_3nodes.cnf index 7b68d36c04a..e5aa81b8742 100644 --- a/mysql-test/suite/galera_3nodes/galera_3nodes.cnf +++ b/mysql-test/suite/galera_3nodes/galera_3nodes.cnf @@ -5,6 +5,7 @@ binlog-format=row innodb-autoinc-lock-mode=2 default-storage-engine=innodb +auto_increment_increment=3 wsrep-on=1 wsrep-provider=@ENV.WSREP_PROVIDER diff --git a/mysql-test/suite/galera_3nodes/r/galera_garbd.result b/mysql-test/suite/galera_3nodes/r/galera_garbd.result index 2d70b1742ab..fb7e729dc77 100644 --- a/mysql-test/suite/galera_3nodes/r/galera_garbd.result +++ b/mysql-test/suite/galera_3nodes/r/galera_garbd.result @@ -1,4 +1,8 @@ +connection node_1; +connection node_2; +connection node_3; Killing node #3 to free ports for garbd ... +connection node_3; connection node_1; Starting garbd ... CREATE TABLE t1 (f1 INTEGER); diff --git a/mysql-test/suite/galera_3nodes/r/galera_safe_to_bootstrap.result b/mysql-test/suite/galera_3nodes/r/galera_safe_to_bootstrap.result index 56382eb6c98..45b4d63fb4f 100644 --- a/mysql-test/suite/galera_3nodes/r/galera_safe_to_bootstrap.result +++ b/mysql-test/suite/galera_3nodes/r/galera_safe_to_bootstrap.result @@ -11,15 +11,8 @@ connection node_1; include/assert_grep.inc [grastate.dat does not have 'safe_to_bootstrap: 0'] include/assert_grep.inc [grastate.dat does not have 'safe_to_bootstrap: 0'] include/assert_grep.inc [grastate.dat does not have 'safe_to_bootstrap: 0'] -<<<<<<< HEAD connection node_3; connection node_1; -||||||| merged common ancestors -======= -connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3; -connection node_3; -connection node_1; ->>>>>>> 10.2 include/assert_grep.inc [grastate.dat does not have 'safe_to_bootstrap: 0'] include/assert_grep.inc [grastate.dat does not have 'safe_to_bootstrap: 0'] include/assert_grep.inc [grastate.dat does not have 'safe_to_bootstrap: 1'] @@ -35,7 +28,6 @@ Killing server ... safe_to_bootstrap: 1 safe_to_bootstrap: 0 safe_to_bootstrap: 0 -<<<<<<< HEAD connection node_1; connection node_2; connection node_3; @@ -45,25 +37,13 @@ CALL mtr.add_suppression("WSREP: It may not be safe to bootstrap the cluster fro CALL mtr.add_suppression("WSREP: wsrep::connect(.*) failed: 7"); CALL mtr.add_suppression("Aborting"); CALL mtr.add_suppression("WSREP: moving position backwards: [0-9]+ -> 0"); -||||||| merged common ancestors -======= -connection node_1; -connection node_2; -connection node_3; -connection node_2; ->>>>>>> 10.2 CALL mtr.add_suppression("Failed to prepare for incremental state transfer"); -<<<<<<< HEAD connection node_3; CALL mtr.add_suppression("WSREP: no nodes coming from prim view, prim not possible"); CALL mtr.add_suppression("WSREP: It may not be safe to bootstrap the cluster from this node"); CALL mtr.add_suppression("WSREP: wsrep::connect(.*) failed: 7"); CALL mtr.add_suppression("Aborting"); CALL mtr.add_suppression("WSREP: moving position backwards: [0-9]+ -> 0"); -||||||| merged common ancestors -======= -connection node_3; ->>>>>>> 10.2 CALL mtr.add_suppression("Failed to prepare for incremental state transfer"); SHOW CREATE TABLE t1; Table Create Table diff --git a/mysql-test/suite/galera_3nodes/r/galera_var_dirty_reads2.result b/mysql-test/suite/galera_3nodes/r/galera_var_dirty_reads2.result index c6756bce210..77991a6d468 100644 --- a/mysql-test/suite/galera_3nodes/r/galera_var_dirty_reads2.result +++ b/mysql-test/suite/galera_3nodes/r/galera_var_dirty_reads2.result @@ -1,3 +1,7 @@ +connection node_1; +connection node_2; +connection node_3; +connection node_1; CREATE TABLE t1 (f1 INTEGER); INSERT INTO t1 VALUES (1); connection node_2; diff --git a/mysql-test/suite/galera_3nodes/suite.pm b/mysql-test/suite/galera_3nodes/suite.pm index 4949954e7bd..3c2074320f3 100644 --- a/mysql-test/suite/galera_3nodes/suite.pm +++ b/mysql-test/suite/galera_3nodes/suite.pm @@ -49,25 +49,14 @@ push @::global_suppressions, qr|WSREP: discarding established \(time wait\) .*|, qr(WSREP: There are no nodes in the same segment that will ever be able to become donors, yet there is a suitable donor outside. Will use that one.), qr(WSREP: evs::proto.*), -<<<<<<< HEAD qr|WSREP: Ignoring possible split-brain \(allowed by configuration\) from view:.*|, -||||||| merged common ancestors - qr|WSREP: Ignoring possible split-brain (allowed by configuration) from view:.*|, -======= qr|WSREP: Ignoring possible split-brain \(allowed by configuration\) from view:.*|, qr(WSREP: no nodes coming from prim view, prim not possible), ->>>>>>> 10.2 qr(WSREP: Member .* requested state transfer from .* but it is impossible to select State Transfer donor: Resource temporarily unavailable), -<<<<<<< HEAD - qr(WSREP: .* sending install message failed: Transport endpoint is not connected), - qr(WSREP: .* sending install message failed: Resource temporarily unavailable), -||||||| merged common ancestors -======= qr(WSREP: user message in state LEAVING), qr(WSREP: .* sending install message failed: Transport endpoint is not connected), qr(WSREP: .* sending install message failed: Resource temporarily unavailable), qr(WSREP: Sending JOIN failed: -107 \(Transport endpoint is not connected\). Will retry in new primary component.), ->>>>>>> 10.2 qr(WSREP: Could not find peer:), qr|WSREP: gcs_caused\(\) returned .*|, qr|WSREP: Protocol violation. JOIN message sender .* is not in state transfer \(SYNCED\). Message ignored.|, @@ -80,30 +69,6 @@ push @::global_suppressions, $ENV{PATH}="$epath:$ENV{PATH}"; $ENV{PATH}="$spath:$ENV{PATH}" unless $epath eq $spath; -<<<<<<< HEAD -$ENV{PATH}="$cpath:$ENV{PATH}" unless $cpath eq $spath; -$ENV{PATH}="$bpath:$ENV{PATH}" unless $bpath eq $spath; - -if (which(socat)) { - $ENV{MTR_GALERA_TFMT}='socat'; -} elsif (which(nc)) { - $ENV{MTR_GALERA_TFMT}='nc'; -} - -sub skip_combinations { - my %skip = (); - $skip{'include/have_filekeymanagement.inc'} = 'needs file_key_management plugin' - unless $ENV{FILE_KEY_MANAGEMENT_SO}; - $skip{'include/have_mariabackup.inc'} = 'Need mariabackup' - unless which(mariabackup); - $skip{'include/have_mariabackup.inc'} = 'Need ss' - unless which(ss); - $skip{'include/have_mariabackup.inc'} = 'Need socat or nc' - unless $ENV{MTR_GALERA_TFMT}; - %skip; -} -||||||| merged common ancestors -======= $ENV{PATH}="$cpath:$ENV{PATH}" unless $cpath eq $spath; $ENV{PATH}="$bpath:$ENV{PATH}" unless $bpath eq $spath; @@ -125,7 +90,6 @@ sub skip_combinations { unless $ENV{MTR_GALERA_TFMT}; %skip; } ->>>>>>> 10.2 bless { }; diff --git a/mysql-test/suite/galera_3nodes/t/galera_garbd.test b/mysql-test/suite/galera_3nodes/t/galera_garbd.test index 5509c4628c9..869bad8894f 100644 --- a/mysql-test/suite/galera_3nodes/t/galera_garbd.test +++ b/mysql-test/suite/galera_3nodes/t/galera_garbd.test @@ -7,10 +7,17 @@ --source include/have_innodb.inc --source include/big_test.inc ---echo Killing node #3 to free ports for garbd ... --let $galera_connection_name = node_3 --let $galera_server_number = 3 --source include/galera_connect.inc +# Save original auto_increment_offset values. +--let $node_1=node_1 +--let $node_2=node_2 +--let $node_3=node_3 +--source ../galera/include/auto_increment_offset_save.inc + +--echo Killing node #3 to free ports for garbd ... +--connection node_3 --let $gp3 = `SELECT SUBSTR(@@wsrep_provider_options, LOCATE('base_port =', @@wsrep_provider_options) + LENGTH('base_port = '))` --let $galera_port_3 = `SELECT SUBSTR('$gp3', 1, LOCATE(';', '$gp3') - 1)` --source include/shutdown_mysqld.inc @@ -55,6 +62,8 @@ DROP TABLE t1; --connection node_3 --source include/start_mysqld.inc +# Restore original auto_increment_offset values. +--source ../galera/include/auto_increment_offset_restore.inc # Workaround for galera#101 diff --git a/mysql-test/suite/galera_3nodes/t/galera_var_dirty_reads2.test b/mysql-test/suite/galera_3nodes/t/galera_var_dirty_reads2.test index 129ba2e1f38..e3f94a012b8 100644 --- a/mysql-test/suite/galera_3nodes/t/galera_var_dirty_reads2.test +++ b/mysql-test/suite/galera_3nodes/t/galera_var_dirty_reads2.test @@ -5,6 +5,17 @@ --source include/galera_cluster.inc --source include/have_innodb.inc +--let $galera_connection_name = node_3 +--let $galera_server_number = 3 +--source include/galera_connect.inc + +# Save original auto_increment_offset values. +--let $node_1=node_1 +--let $node_2=node_2 +--let $node_3=node_3 +--source ../galera/include/auto_increment_offset_save.inc + +--connection node_1 CREATE TABLE t1 (f1 INTEGER); INSERT INTO t1 VALUES (1); @@ -110,3 +121,6 @@ SET GLOBAL wsrep_provider_options='gmcast.isolate=0'; --source include/wait_condition.inc DROP TABLE t1; + +# Restore original auto_increment_offset values. +--source ../galera/include/auto_increment_offset_restore.inc diff --git a/mysql-test/suite/innodb/r/foreign_key.result b/mysql-test/suite/innodb/r/foreign_key.result index 25fa4d10358..b8b25732451 100644 --- a/mysql-test/suite/innodb/r/foreign_key.result +++ b/mysql-test/suite/innodb/r/foreign_key.result @@ -238,6 +238,16 @@ ALTER TABLE t1 ADD FULLTEXT INDEX ft2 (f); Warnings: Warning 1088 failed to load FOREIGN KEY constraints DROP TABLE t1; +CREATE TABLE t1 (f VARCHAR(256), FTS_DOC_ID BIGINT UNSIGNED PRIMARY KEY) +ENGINE=InnoDB; +SET SESSION FOREIGN_KEY_CHECKS = OFF; +ALTER TABLE t1 ADD FOREIGN KEY (f) REFERENCES non_existing_table (x); +SET SESSION FOREIGN_KEY_CHECKS = ON; +ALTER TABLE t1 ADD FULLTEXT INDEX ft1 (f); +Warnings: +Warning 1088 failed to load FOREIGN KEY constraints +ALTER TABLE t1 ADD FULLTEXT INDEX ft2 (f); +DROP TABLE t1; # Start of 10.2 tests # # MDEV-13246 Stale rows despite ON DELETE CASCADE constraint diff --git a/mysql-test/suite/innodb/t/foreign_key.test b/mysql-test/suite/innodb/t/foreign_key.test index 3dd24a32711..9de69b7a22d 100644 --- a/mysql-test/suite/innodb/t/foreign_key.test +++ b/mysql-test/suite/innodb/t/foreign_key.test @@ -221,6 +221,15 @@ ALTER TABLE t1 ADD FULLTEXT INDEX ft1 (f); ALTER TABLE t1 ADD FULLTEXT INDEX ft2 (f); DROP TABLE t1; +CREATE TABLE t1 (f VARCHAR(256), FTS_DOC_ID BIGINT UNSIGNED PRIMARY KEY) +ENGINE=InnoDB; +SET SESSION FOREIGN_KEY_CHECKS = OFF; +ALTER TABLE t1 ADD FOREIGN KEY (f) REFERENCES non_existing_table (x); +SET SESSION FOREIGN_KEY_CHECKS = ON; +ALTER TABLE t1 ADD FULLTEXT INDEX ft1 (f); +ALTER TABLE t1 ADD FULLTEXT INDEX ft2 (f); +DROP TABLE t1; + --echo # Start of 10.2 tests --echo # diff --git a/storage/connect/ha_connect.cc b/storage/connect/ha_connect.cc index d07b657389d..08c99dfdebd 100644 --- a/storage/connect/ha_connect.cc +++ b/storage/connect/ha_connect.cc @@ -1814,7 +1814,7 @@ PCSZ ha_connect::GetDBName(PCSZ name) const char *ha_connect::GetTableName(void) { const char *path= tshp ? tshp->path.str : table_share->path.str; - const char *name= strrchr(path, '/'); + const char *name= strrchr(path, slash); return name ? name+1 : path; } // end of GetTableName diff --git a/storage/connect/mysql-test/connect/r/xml.result b/storage/connect/mysql-test/connect/r/xml.result index 99739b1ec10..6a0c9db27b3 100644 --- a/storage/connect/mysql-test/connect/r/xml.result +++ b/storage/connect/mysql-test/connect/r/xml.result @@ -323,7 +323,7 @@ HEX(c) 3F3F3F3F3F3F3F Warnings: Level Warning Code 1366 -Message Incorrect string value: '\xC3\x81\xC3\x82\xC3\x83...' for column 'c' at row 1 +Message Incorrect string value: '\xC3\x81\xC3\x82\xC3\x83...' for column `test`.`t1`.`c` at row 1 Level Warning Code 1105 Message Out of range value ÁÂÃÄÅÆÇ for column 'c' at row 1 diff --git a/storage/innobase/handler/i_s.cc b/storage/innobase/handler/i_s.cc index cedb6e05782..09006c2c6be 100644 --- a/storage/innobase/handler/i_s.cc +++ b/storage/innobase/handler/i_s.cc @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2014, 2018, MariaDB Corporation. +Copyright (c) 2014, 2019, MariaDB Corporation. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -9033,10 +9033,12 @@ i_s_innodb_mutexes_fill_table( } OK(field_store_string(fields[MUTEXES_NAME], mutex->cmutex_name)); - OK(field_store_string(fields[MUTEXES_CREATE_FILE], innobase_basename(mutex->cfile_name))); - OK(fields[MUTEXES_CREATE_LINE]->store(mutex->cline, true)); + OK(field_store_string(fields[MUTEXES_CREATE_FILE], + innobase_basename(mutex->cfile_name))); + OK(fields[MUTEXES_CREATE_LINE]->store(lock->cline, true)); fields[MUTEXES_CREATE_LINE]->set_notnull(); - OK(field_store_ulint(fields[MUTEXES_OS_WAITS], (longlong)mutex->count_os_wait)); + OK(fields[MUTEXES_OS_WAITS]->store(lock->count_os_wait, true)); + fields[MUTEXES_OS_WAITS]->set_notnull(); OK(schema_table_store_record(thd, tables->table)); } @@ -9057,44 +9059,59 @@ i_s_innodb_mutexes_fill_table( mutex_exit(&mutex_list_mutex); #endif /* JAN_TODO_FIXME */ - mutex_enter(&rw_lock_list_mutex); + { + struct Locking + { + Locking() { mutex_enter(&rw_lock_list_mutex); } + ~Locking() { mutex_exit(&rw_lock_list_mutex); } + } locking; + + for (lock = UT_LIST_GET_FIRST(rw_lock_list); lock != NULL; + lock = UT_LIST_GET_NEXT(list, lock)) { + if (lock->count_os_wait == 0) { + continue; + } - for (lock = UT_LIST_GET_FIRST(rw_lock_list); lock != NULL; - lock = UT_LIST_GET_NEXT(list, lock)) { - if (lock->count_os_wait == 0) { - continue; - } + if (buf_pool_is_block_lock(lock)) { + block_lock = lock; + block_lock_oswait_count += lock->count_os_wait; + continue; + } - if (buf_pool_is_block_lock(lock)) { - block_lock = lock; - block_lock_oswait_count += lock->count_os_wait; - continue; + //OK(field_store_string(fields[MUTEXES_NAME], + // lock->lock_name)); + OK(field_store_string( + fields[MUTEXES_CREATE_FILE], + innobase_basename(lock->cfile_name))); + OK(fields[MUTEXES_CREATE_LINE]->store(lock->cline, + true)); + fields[MUTEXES_CREATE_LINE]->set_notnull(); + OK(fields[MUTEXES_OS_WAITS]->store(lock->count_os_wait, + true)); + fields[MUTEXES_OS_WAITS]->set_notnull(); + OK(schema_table_store_record(thd, tables->table)); } - //OK(field_store_string(fields[MUTEXES_NAME], lock->lock_name)); - OK(field_store_string(fields[MUTEXES_CREATE_FILE], innobase_basename(lock->cfile_name))); - OK(fields[MUTEXES_CREATE_LINE]->store(lock->cline, true)); - fields[MUTEXES_CREATE_LINE]->set_notnull(); - OK(field_store_ulint(fields[MUTEXES_OS_WAITS], (longlong)lock->count_os_wait)); - OK(schema_table_store_record(thd, tables->table)); - } - - if (block_lock) { - char buf1[IO_SIZE]; - - snprintf(buf1, sizeof buf1, "combined %s", - innobase_basename(block_lock->cfile_name)); - - //OK(field_store_string(fields[MUTEXES_NAME], block_lock->lock_name)); - OK(field_store_string(fields[MUTEXES_CREATE_FILE], buf1)); - OK(fields[MUTEXES_CREATE_LINE]->store(block_lock->cline, true)); - fields[MUTEXES_CREATE_LINE]->set_notnull(); - OK(field_store_ulint(fields[MUTEXES_OS_WAITS], (longlong)block_lock_oswait_count)); - OK(schema_table_store_record(thd, tables->table)); + if (block_lock) { + char buf1[IO_SIZE]; + + snprintf(buf1, sizeof buf1, "combined %s", + innobase_basename(block_lock->cfile_name)); + + //OK(field_store_string(fields[MUTEXES_NAME], + // block_lock->lock_name)); + OK(field_store_string(fields[MUTEXES_CREATE_FILE], + buf1)); + OK(fields[MUTEXES_CREATE_LINE]->store(block_lock->cline, + true)); + fields[MUTEXES_CREATE_LINE]->set_notnull(); + OK(fields[MUTEXES_OS_WAITS]->store( + block_lock_oswait_count, true)); + fields[MUTEXES_OS_WAITS]->set_notnull(); + OK(schema_table_store_record(thd, tables->table)); + } } - mutex_exit(&rw_lock_list_mutex); - DBUG_RETURN(0); } |