Commit 21822625 authored by Sergei Golubchik's avatar Sergei Golubchik

MDEV-32683 Spider engine does not load with non-default alter-algorithm

specify algorithm/lock explicitly, don't depend on server settings
parent d9752d85
#
# 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;
--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;
......@@ -210,7 +210,8 @@ static LEX_STRING spider_init_queries[] = {
" add if not exists username char(64) default null,"
" add if not exists password char(64) default null,"
" add if not exists tgt_db_name char(64) default null,"
" add if not exists tgt_table_name char(64) default null;"
" add if not exists tgt_table_name char(64) default null,"
" algorithm=copy, lock=shared;"
)},
/*
Fix for version 0.17
......@@ -224,7 +225,8 @@ static LEX_STRING spider_init_queries[] = {
{C_STRING_WITH_LEN(
"if @col_type != 'binary(128)' then"
" alter table mysql.spider_xa"
" modify data binary(128) not null default '';"
" modify data binary(128) not null default '',"
" algorithm=copy, lock=shared;"
"end if;"
)},
{C_STRING_WITH_LEN(
......@@ -236,7 +238,8 @@ static LEX_STRING spider_init_queries[] = {
{C_STRING_WITH_LEN(
"if @col_type != 'binary(128)' then"
" alter table mysql.spider_xa_member"
" modify data binary(128) not null default '';"
" modify data binary(128) not null default '',"
" algorithm=copy, lock=shared;"
"end if;"
)},
/*
......@@ -246,14 +249,16 @@ static LEX_STRING spider_init_queries[] = {
"alter table mysql.spider_tables"
" add column if not exists link_id int not null default 0 after table_name,"
" drop primary key,"
" add primary key (db_name, table_name, link_id);"
" add primary key (db_name, table_name, link_id),"
" algorithm=copy, lock=shared;"
)},
/*
Fix for version 2.8
*/
{C_STRING_WITH_LEN(
"alter table mysql.spider_tables"
" add column if not exists link_status tinyint not null default 1;"
" add column if not exists link_status tinyint not null default 1,"
" algorithm=copy, lock=shared;"
)},
/*
Fix for version 2.10
......@@ -269,7 +274,8 @@ static LEX_STRING spider_init_queries[] = {
" after ssl_key,"
" add column if not exists default_file char(64) default null"
" after ssl_verify_server_cert,"
" add column if not exists default_group char(64) default null after default_file;"
" add column if not exists default_group char(64) default null after default_file,"
" algorithm=copy, lock=shared;"
)},
{C_STRING_WITH_LEN(
"alter table mysql.spider_tables"
......@@ -282,7 +288,8 @@ static LEX_STRING spider_init_queries[] = {
" after ssl_key,"
" add column if not exists default_file char(64) default null"
" after ssl_verify_server_cert,"
" add column if not exists default_group char(64) default null after default_file;"
" add column if not exists default_group char(64) default null after default_file,"
" algorithm=copy, lock=shared;"
)},
{C_STRING_WITH_LEN(
"alter table mysql.spider_link_mon_servers"
......@@ -295,7 +302,8 @@ static LEX_STRING spider_init_queries[] = {
" after ssl_key,"
" add column if not exists default_file char(64) default null"
" after ssl_verify_server_cert,"
" add column if not exists default_group char(64) default null after default_file;"
" add column if not exists default_group char(64) default null after default_file,"
" algorithm=copy, lock=shared;"
)},
/*
Fix for version 2.28
......@@ -309,7 +317,8 @@ static LEX_STRING spider_init_queries[] = {
{C_STRING_WITH_LEN(
"if @col_type != 'int(10) unsigned' then"
" alter table mysql.spider_link_mon_servers"
" modify sid int unsigned not null default 0;"
" modify sid int unsigned not null default 0,"
" algorithm=copy, lock=shared;"
"end if;"
)},
/*
......@@ -331,7 +340,8 @@ static LEX_STRING spider_init_queries[] = {
" modify ssl_capath text,"
" modify ssl_cert text,"
" modify ssl_key text,"
" modify default_file text;"
" modify default_file text,"
" algorithm=copy, lock=shared;"
"end if;"
)},
{C_STRING_WITH_LEN(
......@@ -348,7 +358,8 @@ static LEX_STRING spider_init_queries[] = {
" modify ssl_capath text,"
" modify ssl_cert text,"
" modify ssl_key text,"
" modify default_file text;"
" modify default_file text,"
" algorithm=copy, lock=shared;"
"end if;"
)},
{C_STRING_WITH_LEN(
......@@ -365,7 +376,8 @@ static LEX_STRING spider_init_queries[] = {
" modify ssl_capath text,"
" modify ssl_cert text,"
" modify ssl_key text,"
" modify default_file text;"
" modify default_file text,"
" algorithm=copy, lock=shared;"
"end if;"
)},
/*
......@@ -374,7 +386,8 @@ static LEX_STRING spider_init_queries[] = {
{C_STRING_WITH_LEN(
"alter table mysql.spider_tables"
" add if not exists monitoring_binlog_pos_at_failing tinyint not null default 0"
" after ssl_verify_server_cert;"
" after ssl_verify_server_cert,"
" algorithm=copy, lock=shared;"
)},
/*
Fix for version 3.3.6
......@@ -382,12 +395,14 @@ static LEX_STRING spider_init_queries[] = {
{C_STRING_WITH_LEN(
"alter table mysql.spider_tables"
" add column if not exists block_status tinyint not null default 0"
" after link_status;"
" after link_status,"
" algorithm=copy, lock=shared;"
)},
{C_STRING_WITH_LEN(
"alter table mysql.spider_tables"
" add column if not exists static_link_id char(64) default null after block_status,"
" add unique index if not exists uidx1 (db_name, table_name, static_link_id);"
" add unique index if not exists uidx1 (db_name, table_name, static_link_id),"
" algorithm=copy, lock=shared;"
)},
{C_STRING_WITH_LEN(
"select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
......@@ -398,7 +413,8 @@ static LEX_STRING spider_init_queries[] = {
{C_STRING_WITH_LEN(
"if @col_type != 'char(64)' then"
" alter table mysql.spider_link_mon_servers"
" modify link_id char(64) not null default '';"
" modify link_id char(64) not null default '',"
" algorithm=copy, lock=shared;"
"end if;"
)},
{C_STRING_WITH_LEN(
......@@ -410,7 +426,8 @@ static LEX_STRING spider_init_queries[] = {
{C_STRING_WITH_LEN(
"if @col_type != 'char(64)' then"
" alter table mysql.spider_link_failed_log"
" modify link_id char(64) not null default '';"
" modify link_id char(64) not null default '',"
" algorithm=copy, lock=shared;"
"end if;"
)},
/*
......@@ -425,7 +442,8 @@ static LEX_STRING spider_init_queries[] = {
{C_STRING_WITH_LEN(
"if @col_type != 'char(199)' then"
" alter table mysql.spider_tables"
" modify table_name char(199) not null default '';"
" modify table_name char(199) not null default '',"
" algorithm=copy, lock=shared;"
"end if;"
)},
{C_STRING_WITH_LEN(
......@@ -437,7 +455,8 @@ static LEX_STRING spider_init_queries[] = {
{C_STRING_WITH_LEN(
"if @col_type != 'char(199)' then"
" alter table mysql.spider_link_mon_servers"
" modify table_name char(199) not null default '';"
" modify table_name char(199) not null default '',"
" algorithm=copy, lock=shared;"
"end if;"
)},
{C_STRING_WITH_LEN(
......@@ -449,7 +468,8 @@ static LEX_STRING spider_init_queries[] = {
{C_STRING_WITH_LEN(
"if @col_type != 'char(199)' then"
" alter table mysql.spider_link_failed_log"
" modify table_name char(199) not null default '';"
" modify table_name char(199) not null default '',"
" algorithm=copy, lock=shared;"
"end if;"
)},
{C_STRING_WITH_LEN(
......@@ -461,7 +481,8 @@ static LEX_STRING spider_init_queries[] = {
{C_STRING_WITH_LEN(
"if @col_type != 'char(199)' then"
" alter table mysql.spider_table_position_for_recovery"
" modify table_name char(199) not null default '';"
" modify table_name char(199) not null default '',"
" algorithm=copy, lock=shared;"
"end if;"
)},
{C_STRING_WITH_LEN(
......@@ -473,7 +494,8 @@ static LEX_STRING spider_init_queries[] = {
{C_STRING_WITH_LEN(
"if @col_type != 'char(199)' then"
" alter table mysql.spider_table_sts"
" modify table_name char(199) not null default '';"
" modify table_name char(199) not null default '',"
" algorithm=copy, lock=shared;"
"end if;"
)},
{C_STRING_WITH_LEN(
......@@ -485,7 +507,8 @@ static LEX_STRING spider_init_queries[] = {
{C_STRING_WITH_LEN(
"if @col_type != 'char(199)' then"
" alter table mysql.spider_table_crd"
" modify table_name char(199) not null default '';"
" modify table_name char(199) not null default '',"
" algorithm=copy, lock=shared;"
"end if;"
)},
/*
......@@ -493,7 +516,8 @@ static LEX_STRING spider_init_queries[] = {
*/
{C_STRING_WITH_LEN(
"alter table mysql.spider_table_sts"
" add column if not exists checksum bigint unsigned default null after update_time;"
" add column if not exists checksum bigint unsigned default null after update_time,"
" algorithm=copy, lock=shared;"
)},
/*
Fix for MariaDB 10.4: Crash-Safe system tables
......@@ -506,7 +530,8 @@ static LEX_STRING spider_init_queries[] = {
{C_STRING_WITH_LEN(
"if @engine_name != 'Aria' then"
" alter table mysql.spider_link_failed_log"
" engine=Aria transactional=1;"
" engine=Aria transactional=1,"
" algorithm=copy, lock=shared;"
"end if;"
)},
{C_STRING_WITH_LEN(
......@@ -517,7 +542,8 @@ static LEX_STRING spider_init_queries[] = {
{C_STRING_WITH_LEN(
"if @engine_name != 'Aria' then"
" alter table mysql.spider_link_mon_servers"
" engine=Aria transactional=1;"
" engine=Aria transactional=1,"
" algorithm=copy, lock=shared;"
"end if;"
)},
{C_STRING_WITH_LEN(
......@@ -528,7 +554,8 @@ static LEX_STRING spider_init_queries[] = {
{C_STRING_WITH_LEN(
"if @engine_name != 'Aria' then"
" alter table mysql.spider_table_crd"
" engine=Aria transactional=1;"
" engine=Aria transactional=1,"
" algorithm=copy, lock=shared;"
"end if;"
)},
{C_STRING_WITH_LEN(
......@@ -539,7 +566,8 @@ static LEX_STRING spider_init_queries[] = {
{C_STRING_WITH_LEN(
"if @engine_name != 'Aria' then"
" alter table mysql.spider_table_position_for_recovery"
" engine=Aria transactional=1;"
" engine=Aria transactional=1,"
" algorithm=copy, lock=shared;"
"end if;"
)},
{C_STRING_WITH_LEN(
......@@ -550,7 +578,8 @@ static LEX_STRING spider_init_queries[] = {
{C_STRING_WITH_LEN(
"if @engine_name != 'Aria' then"
" alter table mysql.spider_table_sts"
" engine=Aria transactional=1;"
" engine=Aria transactional=1,"
" algorithm=copy, lock=shared;"
"end if;"
)},
{C_STRING_WITH_LEN(
......@@ -561,7 +590,8 @@ static LEX_STRING spider_init_queries[] = {
{C_STRING_WITH_LEN(
"if @engine_name != 'Aria' then"
" alter table mysql.spider_tables"
" engine=Aria transactional=1;"
" engine=Aria transactional=1,"
" algorithm=copy, lock=shared;"
"end if;"
)},
{C_STRING_WITH_LEN(
......@@ -572,7 +602,8 @@ static LEX_STRING spider_init_queries[] = {
{C_STRING_WITH_LEN(
"if @engine_name != 'Aria' then"
" alter table mysql.spider_xa"
" engine=Aria transactional=1;"
" engine=Aria transactional=1,"
" algorithm=copy, lock=shared;"
"end if;"
)},
{C_STRING_WITH_LEN(
......@@ -583,7 +614,8 @@ static LEX_STRING spider_init_queries[] = {
{C_STRING_WITH_LEN(
"if @engine_name != 'Aria' then"
" alter table mysql.spider_xa_failed_log"
" engine=Aria transactional=1;"
" engine=Aria transactional=1,"
" algorithm=copy, lock=shared;"
"end if;"
)},
{C_STRING_WITH_LEN(
......@@ -594,7 +626,8 @@ static LEX_STRING spider_init_queries[] = {
{C_STRING_WITH_LEN(
"if @engine_name != 'Aria' then"
" alter table mysql.spider_xa_member"
" engine=Aria transactional=1;"
" engine=Aria transactional=1,"
" algorithm=copy, lock=shared;"
"end if;"
)},
/*
......@@ -602,51 +635,63 @@ static LEX_STRING spider_init_queries[] = {
*/
{C_STRING_WITH_LEN(
"alter table mysql.spider_link_mon_servers"
" add column if not exists dsn char(64) default null after default_group;"
" add column if not exists dsn char(64) default null after default_group,"
" algorithm=copy, lock=shared;"
)},
{C_STRING_WITH_LEN(
"alter table mysql.spider_tables"
" add column if not exists dsn char(64) default null after default_group;"
" add column if not exists dsn char(64) default null after default_group,"
" algorithm=copy, lock=shared;"
)},
{C_STRING_WITH_LEN(
"alter table mysql.spider_xa_failed_log"
" add column if not exists dsn char(64) default null after default_group;"
" add column if not exists dsn char(64) default null after default_group,"
" algorithm=copy, lock=shared;"
)},
{C_STRING_WITH_LEN(
"alter table mysql.spider_xa_member"
" add column if not exists dsn char(64) default null after default_group;"
" add column if not exists dsn char(64) default null after default_group,"
" algorithm=copy, lock=shared;"
)},
{C_STRING_WITH_LEN(
"alter table mysql.spider_link_mon_servers"
" add column if not exists filedsn text default null after dsn;"
" add column if not exists filedsn text default null after dsn,"
" algorithm=copy, lock=shared;"
)},
{C_STRING_WITH_LEN(
"alter table mysql.spider_tables"
" add column if not exists filedsn text default null after dsn;"
" add column if not exists filedsn text default null after dsn,"
" algorithm=copy, lock=shared;"
)},
{C_STRING_WITH_LEN(
"alter table mysql.spider_xa_failed_log"
" add column if not exists filedsn text default null after dsn;"
" add column if not exists filedsn text default null after dsn,"
" algorithm=copy, lock=shared;"
)},
{C_STRING_WITH_LEN(
"alter table mysql.spider_xa_member"
" add column if not exists filedsn text default null after dsn;"
" add column if not exists filedsn text default null after dsn,"
" algorithm=copy, lock=shared;"
)},
{C_STRING_WITH_LEN(
"alter table mysql.spider_link_mon_servers"
" add column if not exists driver char(64) default null after filedsn;"
" add column if not exists driver char(64) default null after filedsn,"
" algorithm=copy, lock=shared;"
)},
{C_STRING_WITH_LEN(
"alter table mysql.spider_tables"
" add column if not exists driver char(64) default null after filedsn;"
" add column if not exists driver char(64) default null after filedsn,"
" algorithm=copy, lock=shared;"
)},
{C_STRING_WITH_LEN(
"alter table mysql.spider_xa_failed_log"
" add column if not exists driver char(64) default null after filedsn;"
" add column if not exists driver char(64) default null after filedsn,"
" algorithm=copy, lock=shared;"
)},
{C_STRING_WITH_LEN(
"alter table mysql.spider_xa_member"
" add column if not exists driver char(64) default null after filedsn;"
" add column if not exists driver char(64) default null after filedsn,"
" algorithm=copy, lock=shared;"
)},
{C_STRING_WITH_LEN(
"set @win_plugin := IF(@@version_compile_os like 'Win%', 1, 0);"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment