Skip to content

Commit

Permalink
Merge branch '10.4' into 10.5
Browse files Browse the repository at this point in the history
  • Loading branch information
mariadb-YuchenPei committed Dec 7, 2023
2 parents 13dd787 + ba94778 commit c33ca17
Show file tree
Hide file tree
Showing 49 changed files with 881 additions and 683 deletions.
5 changes: 5 additions & 0 deletions storage/spider/mysql-test/spider/bugfix/r/mdev_22979.result
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
MDEV-22979 "mysqld --bootstrap" / mysql_install_db hangs when Spider is installed
# Kill the server
# restart
Warnings:
Note 1305 SONAME ha_spider.so does not exist
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ DROP FUNCTION spider_copy_tables;
DROP FUNCTION spider_ping_table;
DROP FUNCTION spider_bg_direct_sql;
DROP FUNCTION spider_direct_sql;
UNINSTALL SONAME IF EXISTS "ha_spider";
UNINSTALL SONAME IF EXISTS 'ha_spider';
DROP TABLE IF EXISTS mysql.spider_xa;
DROP TABLE IF EXISTS mysql.spider_xa_member;
DROP TABLE IF EXISTS mysql.spider_xa_failed_log;
Expand Down
11 changes: 11 additions & 0 deletions storage/spider/mysql-test/spider/bugfix/r/mdev_27233.result
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#
# MDEV-27233 Server hangs when using --init-file which loads Spider and creates a Spider table
#
show create table t;
Table Create Table
t CREATE TABLE `t` (
`c` int(11) DEFAULT NULL
) ENGINE=SPIDER DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
Warnings:
Error 1429 Unable to connect to foreign data source: localhost
Error 1429 Unable to connect to foreign data source: localhost
9 changes: 9 additions & 0 deletions storage/spider/mysql-test/spider/bugfix/r/mdev_28218.result
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#
# MDEV-28218 Spider: thread hang/deadlock as result of INSTALL PLUGIN and DROP TABLE
#
INSTALL SONAME 'ha_spider.so';
DROP TABLE IF EXISTS mysql.spider_tables;
show create table mysql.spider_tables;
ERROR 42S02: Table 'mysql.spider_tables' doesn't exist
Warnings:
Note 1051 Unknown table 'mysql.spider_tables'
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#
# MDEV-28218 Spider: thread hang/deadlock as result of INSTALL PLUGIN and DROP TABLE
#
show create table mysql.spider_tables;
ERROR 42S02: Table 'mysql.spider_tables' doesn't exist
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#
# MDEV-28218 Spider: thread hang/deadlock as result of INSTALL PLUGIN and DROP TABLE
#
show create table mysql.spider_tables;
ERROR 42S02: Table 'mysql.spider_tables' doesn't exist
5 changes: 5 additions & 0 deletions storage/spider/mysql-test/spider/bugfix/r/mdev_30370.result
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
#
# MDEV-30370 mariadbd hangs when running with --wsrep-recover and --plugin-load-add=ha_spider.so
#
call mtr.add_suppression(".*\\[Warning\\] InnoDB: Skipping buffer pool dump/restore during wsrep recovery");
# Kill the server
# restart
Warnings:
Note 1305 SONAME ha_spider.so does not exist
16 changes: 16 additions & 0 deletions storage/spider/mysql-test/spider/bugfix/r/mdev_32683.result
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#
# MDEV-32683 Spider engine does not load with non-default alter-algorithm
#
set global alter_algorithm=INSTANT;
install plugin spider soname 'ha_spider';
select plugin_name, plugin_status, plugin_type, plugin_license, load_option from information_schema.plugins where plugin_name like 'spider';
plugin_name plugin_status plugin_type plugin_license load_option
SPIDER ACTIVE STORAGE ENGINE GPL ON
uninstall plugin spider;
drop table mysql.spider_link_failed_log, mysql.spider_link_mon_servers, mysql.spider_tables, mysql.spider_table_crd, mysql.spider_table_position_for_recovery, mysql.spider_table_sts, mysql.spider_xa, mysql.spider_xa_failed_log, mysql.spider_xa_member;
drop function spider_direct_sql;
drop function spider_bg_direct_sql;
drop function spider_ping_table;
drop function spider_copy_tables;
drop function spider_flush_table_mon_cache;
set global alter_algorithm=DEFAULT;
10 changes: 10 additions & 0 deletions storage/spider/mysql-test/spider/bugfix/r/mdev_32753.result
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#
# MDEV-32753 Spider engine does not load in ORACLE mode
#
select * from mysql.plugin;
name dl
create table t (c int) Engine=SPIDER;
drop table t;
#
# end of test mdev_32753
#
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#
# MDEV-32753 Spider engine does not load in ORACLE mode
#
install soname 'ha_spider';
select * from mysql.plugin;
name dl
SPIDER ha_spider.so
SPIDER_ALLOC_MEM ha_spider.so
SPIDER_WRAPPER_PROTOCOLS ha_spider.so
create table t (c int) Engine=SPIDER;
drop table t;
#
# end of test mdev_32753_after_start
#
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#
# MDEV-32753 Spider engine does not load in ORACLE mode
#
set @old_sql_mode=@@sql_mode;
SET @@sql_mode = CONCAT(@@sql_mode, ',ORACLE');
install soname 'ha_spider';
select * from mysql.plugin;
name dl
SPIDER ha_spider.so
SPIDER_ALLOC_MEM ha_spider.so
SPIDER_WRAPPER_PROTOCOLS ha_spider.so
create table t (c int) Engine=SPIDER;
drop table t;
set sql_mode=@old_sql_mode;
#
# end of test mdev_32753_after_start
#
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#
# plugin-load-add=ha_spider
#
select * from mysql.plugin;
name dl
create table t (c int) Engine=SPIDER;
drop table t;
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#
# plugin-load-add=ha_spider
#
select * from mysql.plugin;
name dl
create table t (c int) Engine=SPIDER;
drop table t;
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#
# Test that udf created by inserting into mysql_func works as expected
#
CREATE SERVER s_1 FOREIGN DATA WRAPPER mysql OPTIONS (
HOST 'localhost',
DATABASE 'auto_test_local',
USER 'root',
PASSWORD '',
SOCKET '$MASTER_1_MYSOCK'
);
CREATE SERVER s_2_1 FOREIGN DATA WRAPPER mysql OPTIONS (
HOST 'localhost',
DATABASE 'auto_test_remote',
USER 'root',
PASSWORD '',
SOCKET '$CHILD2_1_MYSOCK'
);
connect master_1, localhost, root, , , $MASTER_1_MYPORT, $MASTER_1_MYSOCK;
connect child2_1, localhost, root, , , $CHILD2_1_MYPORT, $CHILD2_1_MYSOCK;
connection child2_1;
CREATE DATABASE auto_test_remote;
USE auto_test_remote;
CREATE TABLE tbl_a (
a INT
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into tbl_a values (42);
connection master_1;
CREATE DATABASE auto_test_local;
USE auto_test_local;
CREATE TABLE tbl_a (
a INT
) ENGINE=Spider DEFAULT CHARSET=utf8 COMMENT='table "tbl_a", srv "s_2_1"';
create temporary table results (a int);
SELECT SPIDER_DIRECT_SQL('select * from tbl_a', 'results', 'srv "s_2_1", database "auto_test_remote"');
SPIDER_DIRECT_SQL('select * from tbl_a', 'results', 'srv "s_2_1", database "auto_test_remote"')
1
select * from results;
a
42
connection master_1;
DROP DATABASE IF EXISTS auto_test_local;
connection child2_1;
DROP DATABASE IF EXISTS auto_test_remote;
18 changes: 18 additions & 0 deletions storage/spider/mysql-test/spider/bugfix/t/mdev_22979.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
--echo MDEV-22979 "mysqld --bootstrap" / mysql_install_db hangs when Spider is installed

# This test is not the most faithful, as it does not have any
# dependency problems on the existence of the `mysql` database. To
# test MDEV-22979 faithfully, a mysql_install_db invocation with
# --plugin-load-add=ha_spider should be run. We cannot run it in mtr
# because we do not have access to --srcdir.

let $MYSQLD_DATADIR= `select @@datadir`;
let $PLUGIN_DIR=`select @@plugin_dir`;
--source include/kill_mysqld.inc
--write_file $MYSQLTEST_VARDIR/tmp/mdev_22979.sql
drop table if exists foo.bar;
EOF
--exec $MYSQLD_CMD --datadir=$MYSQLD_DATADIR --bootstrap --plugin-dir=$PLUGIN_DIR --plugin-load-add=ha_spider < $MYSQLTEST_VARDIR/tmp/mdev_22979.sql
--source include/start_mysqld.inc
--disable_query_log
--source ../../include/clean_up_spider.inc
1 change: 1 addition & 0 deletions storage/spider/mysql-test/spider/bugfix/t/mdev_27233.opt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
--init-file=$MTR_SUITE_DIR/t/mdev_27233.sql
3 changes: 3 additions & 0 deletions storage/spider/mysql-test/spider/bugfix/t/mdev_27233.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
INSTALL SONAME 'ha_spider.so';
USE test;
CREATE TABLE t (c INT) ENGINE=SPIDER;
7 changes: 7 additions & 0 deletions storage/spider/mysql-test/spider/bugfix/t/mdev_27233.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
--echo #
--echo # MDEV-27233 Server hangs when using --init-file which loads Spider and creates a Spider table
--echo #
# ps protocol eats warnings
--disable_ps_protocol
show create table t;
--enable_ps_protocol
10 changes: 10 additions & 0 deletions storage/spider/mysql-test/spider/bugfix/t/mdev_28218.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
--echo #
--echo # MDEV-28218 Spider: thread hang/deadlock as result of INSTALL PLUGIN and DROP TABLE
--echo #
INSTALL SONAME 'ha_spider.so';
DROP TABLE IF EXISTS mysql.spider_tables;
--error ER_NO_SUCH_TABLE
show create table mysql.spider_tables;

--disable_query_log
--source ../../include/clean_up_spider.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
--init-file=$MTR_SUITE_DIR/t/mdev_28218_init_file.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
INSTALL PLUGIN spider SONAME 'ha_spider.so';
DROP TABLE IF EXISTS mysql.spider_tables;
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
--echo #
--echo # MDEV-28218 Spider: thread hang/deadlock as result of INSTALL PLUGIN and DROP TABLE
--echo #
# This is a variant of the testcase in MDEV-28218, where we put the
# queries are in an init file
--error ER_NO_SUCH_TABLE
show create table mysql.spider_tables;
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
--plugin-load-add=ha_spider
--init-file=$MTR_SUITE_DIR/t/mdev_28218_mixed.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
DROP TABLE IF EXISTS mysql.spider_tables;
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
--echo #
--echo # MDEV-28218 Spider: thread hang/deadlock as result of INSTALL PLUGIN and DROP TABLE
--echo #
# this is a variant of the testcase in MDEV-28218, where we load
# spider early with --plugin_load_add, and execute the drop table
# query in an init file
--error ER_NO_SUCH_TABLE
show create table mysql.spider_tables;
10 changes: 6 additions & 4 deletions storage/spider/mysql-test/spider/bugfix/t/mdev_30370.test
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
--echo # MDEV-30370 mariadbd hangs when running with --wsrep-recover and --plugin-load-add=ha_spider.so
--echo #

let $MYSQLD_DATADIR=$MYSQLTEST_VARDIR/mdev_30370;
--mkdir $MYSQLD_DATADIR
--exec $MYSQLD_BOOTSTRAP_CMD --wsrep-recover --plugin-load-add=ha_spider.so --datadir=$MYSQLD_DATADIR
--rmdir $MYSQLD_DATADIR
call mtr.add_suppression(".*\\[Warning\\] InnoDB: Skipping buffer pool dump/restore during wsrep recovery");
--source include/kill_mysqld.inc
--exec $MYSQLD_LAST_CMD --wsrep-recover --plugin-load-add=ha_spider
--source include/start_mysqld.inc
--disable_query_log
--source ../../include/clean_up_spider.inc
14 changes: 14 additions & 0 deletions storage/spider/mysql-test/spider/bugfix/t/mdev_32683.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
--echo #
--echo # MDEV-32683 Spider engine does not load with non-default alter-algorithm
--echo #
set global alter_algorithm=INSTANT;
install plugin spider soname 'ha_spider';
select plugin_name, plugin_status, plugin_type, plugin_license, load_option from information_schema.plugins where plugin_name like 'spider';
uninstall plugin spider;
drop table mysql.spider_link_failed_log, mysql.spider_link_mon_servers, mysql.spider_tables, mysql.spider_table_crd, mysql.spider_table_position_for_recovery, mysql.spider_table_sts, mysql.spider_xa, mysql.spider_xa_failed_log, mysql.spider_xa_member;
drop function spider_direct_sql;
drop function spider_bg_direct_sql;
drop function spider_ping_table;
drop function spider_copy_tables;
drop function spider_flush_table_mon_cache;
set global alter_algorithm=DEFAULT;
2 changes: 2 additions & 0 deletions storage/spider/mysql-test/spider/bugfix/t/mdev_32753.opt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
--sql-mode=oracle
--plugin-load-add=ha_spider
12 changes: 12 additions & 0 deletions storage/spider/mysql-test/spider/bugfix/t/mdev_32753.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
--echo #
--echo # MDEV-32753 Spider engine does not load in ORACLE mode
--echo #

# This test tests spider init during server startup under global
# ORACLE mode
select * from mysql.plugin;
create table t (c int) Engine=SPIDER;
drop table t;
--echo #
--echo # end of test mdev_32753
--echo #
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
--sql-mode=oracle
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
--echo #
--echo # MDEV-32753 Spider engine does not load in ORACLE mode
--echo #

# This test tests spider init after startup under global ORACLE mode
install soname 'ha_spider';
select * from mysql.plugin;
create table t (c int) Engine=SPIDER;
drop table t;

--disable_query_log
--disable_result_log
--source ../../include/clean_up_spider.inc
--enable_result_log
--enable_query_log

--echo #
--echo # end of test mdev_32753_after_start
--echo #
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
--echo #
--echo # MDEV-32753 Spider engine does not load in ORACLE mode
--echo #

# This test tests spider init after startup under session ORACLE mode
set @old_sql_mode=@@sql_mode;
SET @@sql_mode = CONCAT(@@sql_mode, ',ORACLE');
install soname 'ha_spider';
select * from mysql.plugin;
create table t (c int) Engine=SPIDER;
drop table t;
set sql_mode=@old_sql_mode;

--disable_query_log
--disable_result_log
--source ../../include/clean_up_spider.inc
--enable_result_log
--enable_query_log

--echo #
--echo # end of test mdev_32753_after_start
--echo #
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
--plugin-load-add=ha_spider
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
--echo #
--echo # plugin-load-add=ha_spider
--echo #
# A simple test that tests plugin-load-add=ha_spider
select * from mysql.plugin;
create table t (c int) Engine=SPIDER;
drop table t;
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
--plugin-load-add=SPIDER=ha_spider
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
--echo #
--echo # plugin-load-add=ha_spider
--echo #
# A simple test that tests plugin-load-add=SPIDER=ha_spider
select * from mysql.plugin;
create table t (c int) Engine=SPIDER;
drop table t;
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
!include include/default_mysqld.cnf
!include ../my_1_1.cnf
!include ../my_2_1.cnf
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
--plugin-load-add=ha_spider
Loading

0 comments on commit c33ca17

Please sign in to comment.