mirror of
https://github.com/MariaDB/server.git
synced 2025-07-18 23:03:28 +03:00
Merge branch '10.2' into 10.3
This commit is contained in:
Submodule libmariadb updated: 34f8887af0...2c5aebb3bc
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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 { };
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 #
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
//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));
|
||||
}
|
||||
|
||||
if (buf_pool_is_block_lock(lock)) {
|
||||
block_lock = lock;
|
||||
block_lock_oswait_count += lock->count_os_wait;
|
||||
continue;
|
||||
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));
|
||||
}
|
||||
|
||||
//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));
|
||||
}
|
||||
|
||||
mutex_exit(&rw_lock_list_mutex);
|
||||
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user