diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:00:34 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:00:34 +0000 |
commit | 3f619478f796eddbba6e39502fe941b285dd97b1 (patch) | |
tree | e2c7b5777f728320e5b5542b6213fd3591ba51e2 /storage/spider/spd_init_query.h | |
parent | Initial commit. (diff) | |
download | mariadb-upstream.tar.xz mariadb-upstream.zip |
Adding upstream version 1:10.11.6.upstream/1%10.11.6upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'storage/spider/spd_init_query.h')
-rw-r--r-- | storage/spider/spd_init_query.h | 744 |
1 files changed, 744 insertions, 0 deletions
diff --git a/storage/spider/spd_init_query.h b/storage/spider/spd_init_query.h new file mode 100644 index 00000000..fdf6b22f --- /dev/null +++ b/storage/spider/spd_init_query.h @@ -0,0 +1,744 @@ +/* Copyright (C) 2010-2020 Kentoku Shiba + Copyright (C) 2019-2020 MariaDB corp + + 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 Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ + +/* + This SQL script creates system tables for SPIDER + or fixes incompatibilities if ones already exist. +*/ + +static LEX_STRING spider_init_queries[] = { + {C_STRING_WITH_LEN( + "create table if not exists mysql.spider_xa(" + " format_id int not null default 0," + " gtrid_length int not null default 0," + " bqual_length int not null default 0," + " data char(128) charset binary not null default ''," + " status char(8) not null default ''," + " primary key (data, format_id, gtrid_length)," + " key idx1 (status)" + ") engine=MyISAM default charset=utf8 collate=utf8_bin" + )}, + {C_STRING_WITH_LEN( + "create table if not exists mysql.spider_xa_member(" + " format_id int not null default 0," + " gtrid_length int not null default 0," + " bqual_length int not null default 0," + " data char(128) charset binary not null default ''," + " scheme char(64) not null default ''," + " host char(64) not null default ''," + " port char(5) not null default ''," + " socket text not null," + " username char(64) not null default ''," + " password char(64) not null default ''," + " ssl_ca text," + " ssl_capath text," + " ssl_cert text," + " ssl_cipher char(64) default null," + " ssl_key text," + " ssl_verify_server_cert tinyint not null default 0," + " default_file text," + " default_group char(64) default null," + " dsn char(64) default null," + " filedsn text default null," + " driver char(64) default null," + " key idx1 (data, format_id, gtrid_length, host)" + ") engine=MyISAM default charset=utf8 collate=utf8_bin" + )}, + {C_STRING_WITH_LEN( + "create table if not exists mysql.spider_xa_failed_log(" + " format_id int not null default 0," + " gtrid_length int not null default 0," + " bqual_length int not null default 0," + " data char(128) charset binary not null default ''," + " scheme char(64) not null default ''," + " host char(64) not null default ''," + " port char(5) not null default ''," + " socket text not null," + " username char(64) not null default ''," + " password char(64) not null default ''," + " ssl_ca text," + " ssl_capath text," + " ssl_cert text," + " ssl_cipher char(64) default null," + " ssl_key text," + " ssl_verify_server_cert tinyint not null default 0," + " default_file text," + " default_group char(64) default null," + " dsn char(64) default null," + " filedsn text default null," + " driver char(64) default null," + " thread_id int default null," + " status char(8) not null default ''," + " failed_time timestamp not null default current_timestamp," + " key idx1 (data, format_id, gtrid_length, host)" + ") engine=MyISAM default charset=utf8 collate=utf8_bin" + )}, + {C_STRING_WITH_LEN( + "create table if not exists mysql.spider_tables(" + " db_name char(64) not null default ''," + " table_name char(199) not null default ''," + " link_id int not null default 0," + " priority bigint not null default 0," + " server char(64) default null," + " scheme char(64) default null," + " host char(64) default null," + " port char(5) default null," + " socket text," + " username char(64) default null," + " password char(64) default null," + " ssl_ca text," + " ssl_capath text," + " ssl_cert text," + " ssl_cipher char(64) default null," + " ssl_key text," + " ssl_verify_server_cert tinyint not null default 0," + " monitoring_binlog_pos_at_failing tinyint not null default 0," + " default_file text," + " default_group char(64) default null," + " dsn char(64) default null," + " filedsn text default null," + " driver char(64) default null," + " tgt_db_name char(64) default null," + " tgt_table_name char(64) default null," + " link_status tinyint not null default 1," + " block_status tinyint not null default 0," + " static_link_id char(64) default null," + " primary key (db_name, table_name, link_id)," + " key idx1 (priority)," + " unique key uidx1 (db_name, table_name, static_link_id)" + ") engine=MyISAM default charset=utf8 collate=utf8_bin" + )}, + {C_STRING_WITH_LEN( + "create table if not exists mysql.spider_link_mon_servers(" + " db_name char(64) not null default ''," + " table_name char(199) not null default ''," + " link_id char(64) not null default ''," + " sid int unsigned not null default 0," + " server char(64) default null," + " scheme char(64) default null," + " host char(64) default null," + " port char(5) default null," + " socket text," + " username char(64) default null," + " password char(64) default null," + " ssl_ca text," + " ssl_capath text," + " ssl_cert text," + " ssl_cipher char(64) default null," + " ssl_key text," + " ssl_verify_server_cert tinyint not null default 0," + " default_file text," + " default_group char(64) default null," + " dsn char(64) default null," + " filedsn text default null," + " driver char(64) default null," + " primary key (db_name, table_name, link_id, sid)" + ") engine=MyISAM default charset=utf8 collate=utf8_bin" + )}, + {C_STRING_WITH_LEN( + "create table if not exists mysql.spider_link_failed_log(" + " db_name char(64) not null default ''," + " table_name char(199) not null default ''," + " link_id char(64) not null default ''," + " failed_time timestamp not null default current_timestamp" + ") engine=MyISAM default charset=utf8 collate=utf8_bin" + )}, + {C_STRING_WITH_LEN( + "create table if not exists mysql.spider_table_position_for_recovery(" + " db_name char(64) not null default ''," + " table_name char(199) not null default ''," + " failed_link_id int not null default 0," + " source_link_id int not null default 0," + " file text," + " position text," + " gtid text," + " primary key (db_name, table_name, failed_link_id, source_link_id)" + ") engine=MyISAM default charset=utf8 collate=utf8_bin" + )}, + {C_STRING_WITH_LEN( + "create table if not exists mysql.spider_table_sts(" + " db_name char(64) not null default ''," + " table_name char(199) not null default ''," + " data_file_length bigint unsigned not null default 0," + " max_data_file_length bigint unsigned not null default 0," + " index_file_length bigint unsigned not null default 0," + " records bigint unsigned not null default 0," + " mean_rec_length bigint unsigned not null default 0," + " check_time datetime not null default '0000-00-00 00:00:00'," + " create_time datetime not null default '0000-00-00 00:00:00'," + " update_time datetime not null default '0000-00-00 00:00:00'," + " checksum bigint unsigned default null," + " primary key (db_name, table_name)" + ") engine=MyISAM default charset=utf8 collate=utf8_bin" + )}, + {C_STRING_WITH_LEN( + "create table if not exists mysql.spider_table_crd(" + " db_name char(64) not null default ''," + " table_name char(199) not null default ''," + " key_seq int unsigned not null default 0," + " cardinality bigint not null default 0," + " primary key (db_name, table_name, key_seq)" + ") engine=MyISAM default charset=utf8 collate=utf8_bin" + )}, +/* + If tables already exist and their definition differ + from the latest ones, we fix them here. +*/ +/* + Fix for 0.5 +*/ + {C_STRING_WITH_LEN( + "alter table mysql.spider_tables" + " add if not exists server char(64) default null," + " add if not exists scheme char(64) default null," + " add if not exists host char(64) default null," + " add if not exists port char(5) default null," + " add if not exists socket char(64) default null," + " 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," + " algorithm=copy, lock=shared;" + )}, +/* + Fix for version 0.17 +*/ + {C_STRING_WITH_LEN( + "select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS" + " where TABLE_SCHEMA = 'mysql'" + " AND TABLE_NAME = 'spider_xa'" + " AND COLUMN_NAME = 'data';" + )}, + {C_STRING_WITH_LEN( + "if @col_type != 'binary(128)' then" + " alter table mysql.spider_xa" + " modify data binary(128) not null default ''," + " algorithm=copy, lock=shared;" + "end if;" + )}, + {C_STRING_WITH_LEN( + "select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS" + " where TABLE_SCHEMA = 'mysql'" + " AND TABLE_NAME = 'spider_xa_member'" + " AND COLUMN_NAME = 'data';" + )}, + {C_STRING_WITH_LEN( + "if @col_type != 'binary(128)' then" + " alter table mysql.spider_xa_member" + " modify data binary(128) not null default ''," + " algorithm=copy, lock=shared;" + "end if;" + )}, +/* + Fix for version 2.7 +*/ + {C_STRING_WITH_LEN( + "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)," + " 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," + " algorithm=copy, lock=shared;" + )}, +/* + Fix for version 2.10 +*/ + {C_STRING_WITH_LEN( + "alter table mysql.spider_xa_member" + " add column if not exists ssl_ca char(64) default null after password," + " add column if not exists ssl_capath char(64) default null after ssl_ca," + " add column if not exists ssl_cert char(64) default null after ssl_capath," + " add column if not exists ssl_cipher char(64) default null after ssl_cert," + " add column if not exists ssl_key char(64) default null after ssl_cipher," + " add column if not exists ssl_verify_server_cert tinyint not null default 0" + " 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," + " algorithm=copy, lock=shared;" + )}, + {C_STRING_WITH_LEN( + "alter table mysql.spider_tables" + " add column if not exists ssl_ca char(64) default null after password," + " add column if not exists ssl_capath char(64) default null after ssl_ca," + " add column if not exists ssl_cert char(64) default null after ssl_capath," + " add column if not exists ssl_cipher char(64) default null after ssl_cert," + " add column if not exists ssl_key char(64) default null after ssl_cipher," + " add column if not exists ssl_verify_server_cert tinyint not null default 0" + " 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," + " algorithm=copy, lock=shared;" + )}, + {C_STRING_WITH_LEN( + "alter table mysql.spider_link_mon_servers" + " add column if not exists ssl_ca char(64) default null after password," + " add column if not exists ssl_capath char(64) default null after ssl_ca," + " add column if not exists ssl_cert char(64) default null after ssl_capath," + " add column if not exists ssl_cipher char(64) default null after ssl_cert," + " add column if not exists ssl_key char(64) default null after ssl_cipher," + " add column if not exists ssl_verify_server_cert tinyint not null default 0" + " 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," + " algorithm=copy, lock=shared;" + )}, +/* + Fix for version 2.28 +*/ + {C_STRING_WITH_LEN( + "select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS" + " where TABLE_SCHEMA = 'mysql'" + " AND TABLE_NAME = 'spider_link_mon_servers'" + " AND COLUMN_NAME = 'sid';" + )}, + {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," + " algorithm=copy, lock=shared;" + "end if;" + )}, +/* + Fix for version 3.1 +*/ + {C_STRING_WITH_LEN( + "select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS" + " where TABLE_SCHEMA = 'mysql'" + " AND TABLE_NAME = 'spider_xa_member'" + " AND COLUMN_NAME = 'socket';" + )}, + {C_STRING_WITH_LEN( + "if @col_type = 'char(64)' then" + " alter table mysql.spider_xa_member" + " drop primary key," + " add index idx1 (data, format_id, gtrid_length, host)," + " modify socket text not null," + " modify ssl_ca text," + " modify ssl_capath text," + " modify ssl_cert text," + " modify ssl_key text," + " modify default_file text," + " algorithm=copy, lock=shared;" + "end if;" + )}, + {C_STRING_WITH_LEN( + "select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS" + " where TABLE_SCHEMA = 'mysql'" + " AND TABLE_NAME = 'spider_tables'" + " AND COLUMN_NAME = 'socket';" + )}, + {C_STRING_WITH_LEN( + "if @col_type = 'char(64)' then" + " alter table mysql.spider_tables" + " modify socket text," + " modify ssl_ca text," + " modify ssl_capath text," + " modify ssl_cert text," + " modify ssl_key text," + " modify default_file text," + " algorithm=copy, lock=shared;" + "end if;" + )}, + {C_STRING_WITH_LEN( + "select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS" + " where TABLE_SCHEMA = 'mysql'" + " AND TABLE_NAME = 'spider_link_mon_servers'" + " AND COLUMN_NAME = 'socket';" + )}, + {C_STRING_WITH_LEN( + "if @col_type = 'char(64)' then" + " alter table mysql.spider_link_mon_servers" + " modify socket text," + " modify ssl_ca text," + " modify ssl_capath text," + " modify ssl_cert text," + " modify ssl_key text," + " modify default_file text," + " algorithm=copy, lock=shared;" + "end if;" + )}, +/* + Fix for version 3.3.0 +*/ + {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," + " algorithm=copy, lock=shared;" + )}, +/* + Fix for version 3.3.6 +*/ + {C_STRING_WITH_LEN( + "alter table mysql.spider_tables" + " add column if not exists block_status tinyint not null default 0" + " 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)," + " algorithm=copy, lock=shared;" + )}, + {C_STRING_WITH_LEN( + "select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS" + " where TABLE_SCHEMA = 'mysql'" + " AND TABLE_NAME = 'spider_link_mon_servers'" + " AND COLUMN_NAME = 'link_id';" + )}, + {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 ''," + " algorithm=copy, lock=shared;" + "end if;" + )}, + {C_STRING_WITH_LEN( + "select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS" + " where TABLE_SCHEMA = 'mysql'" + " AND TABLE_NAME = 'spider_link_failed_log'" + " AND COLUMN_NAME = 'link_id';" + )}, + {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 ''," + " algorithm=copy, lock=shared;" + "end if;" + )}, +/* + Fix for version 3.3.10 +*/ + {C_STRING_WITH_LEN( + "select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS" + " where TABLE_SCHEMA = 'mysql'" + " AND TABLE_NAME = 'spider_tables'" + " AND COLUMN_NAME = 'table_name';" + )}, + {C_STRING_WITH_LEN( + "if @col_type != 'char(199)' then" + " alter table mysql.spider_tables" + " modify table_name char(199) not null default ''," + " algorithm=copy, lock=shared;" + "end if;" + )}, + {C_STRING_WITH_LEN( + "select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS" + " where TABLE_SCHEMA = 'mysql'" + " AND TABLE_NAME = 'spider_link_mon_servers'" + " AND COLUMN_NAME = 'table_name';" + )}, + {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 ''," + " algorithm=copy, lock=shared;" + "end if;" + )}, + {C_STRING_WITH_LEN( + "select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS" + " where TABLE_SCHEMA = 'mysql'" + " AND TABLE_NAME = 'spider_link_failed_log'" + " AND COLUMN_NAME = 'table_name';" + )}, + {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 ''," + " algorithm=copy, lock=shared;" + "end if;" + )}, + {C_STRING_WITH_LEN( + "select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS" + " where TABLE_SCHEMA = 'mysql'" + " AND TABLE_NAME = 'spider_table_position_for_recovery'" + " AND COLUMN_NAME = 'table_name';" + )}, + {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 ''," + " algorithm=copy, lock=shared;" + "end if;" + )}, + {C_STRING_WITH_LEN( + "select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS" + " where TABLE_SCHEMA = 'mysql'" + " AND TABLE_NAME = 'spider_table_sts'" + " AND COLUMN_NAME = 'table_name';" + )}, + {C_STRING_WITH_LEN( + "if @col_type != 'char(199)' then" + " alter table mysql.spider_table_sts" + " modify table_name char(199) not null default ''," + " algorithm=copy, lock=shared;" + "end if;" + )}, + {C_STRING_WITH_LEN( + "select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS" + " where TABLE_SCHEMA = 'mysql'" + " AND TABLE_NAME = 'spider_table_crd'" + " AND COLUMN_NAME = 'table_name';" + )}, + {C_STRING_WITH_LEN( + "if @col_type != 'char(199)' then" + " alter table mysql.spider_table_crd" + " modify table_name char(199) not null default ''," + " algorithm=copy, lock=shared;" + "end if;" + )}, +/* + Fix for version 3.3.15 +*/ + {C_STRING_WITH_LEN( + "alter table mysql.spider_table_sts" + " 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 +*/ + {C_STRING_WITH_LEN( + "select ENGINE INTO @engine_name from INFORMATION_SCHEMA.TABLES" + " where TABLE_SCHEMA = 'mysql'" + " AND TABLE_NAME = 'spider_link_failed_log';" + )}, + {C_STRING_WITH_LEN( + "if @engine_name != 'Aria' then" + " alter table mysql.spider_link_failed_log" + " engine=Aria transactional=1," + " algorithm=copy, lock=shared;" + "end if;" + )}, + {C_STRING_WITH_LEN( + "select ENGINE INTO @engine_name from INFORMATION_SCHEMA.TABLES" + " where TABLE_SCHEMA = 'mysql'" + " AND TABLE_NAME = 'spider_link_mon_servers';" + )}, + {C_STRING_WITH_LEN( + "if @engine_name != 'Aria' then" + " alter table mysql.spider_link_mon_servers" + " engine=Aria transactional=1," + " algorithm=copy, lock=shared;" + "end if;" + )}, + {C_STRING_WITH_LEN( + "select ENGINE INTO @engine_name from INFORMATION_SCHEMA.TABLES" + " where TABLE_SCHEMA = 'mysql'" + " AND TABLE_NAME = 'spider_table_crd';" + )}, + {C_STRING_WITH_LEN( + "if @engine_name != 'Aria' then" + " alter table mysql.spider_table_crd" + " engine=Aria transactional=1," + " algorithm=copy, lock=shared;" + "end if;" + )}, + {C_STRING_WITH_LEN( + "select ENGINE INTO @engine_name from INFORMATION_SCHEMA.TABLES" + " where TABLE_SCHEMA = 'mysql'" + " AND TABLE_NAME = 'spider_table_position_for_recovery';" + )}, + {C_STRING_WITH_LEN( + "if @engine_name != 'Aria' then" + " alter table mysql.spider_table_position_for_recovery" + " engine=Aria transactional=1," + " algorithm=copy, lock=shared;" + "end if;" + )}, + {C_STRING_WITH_LEN( + "select ENGINE INTO @engine_name from INFORMATION_SCHEMA.TABLES" + " where TABLE_SCHEMA = 'mysql'" + " AND TABLE_NAME = 'spider_table_sts';" + )}, + {C_STRING_WITH_LEN( + "if @engine_name != 'Aria' then" + " alter table mysql.spider_table_sts" + " engine=Aria transactional=1," + " algorithm=copy, lock=shared;" + "end if;" + )}, + {C_STRING_WITH_LEN( + "select ENGINE INTO @engine_name from INFORMATION_SCHEMA.TABLES" + " where TABLE_SCHEMA = 'mysql'" + " AND TABLE_NAME = 'spider_tables';" + )}, + {C_STRING_WITH_LEN( + "if @engine_name != 'Aria' then" + " alter table mysql.spider_tables" + " engine=Aria transactional=1," + " algorithm=copy, lock=shared;" + "end if;" + )}, + {C_STRING_WITH_LEN( + "select ENGINE INTO @engine_name from INFORMATION_SCHEMA.TABLES" + " where TABLE_SCHEMA = 'mysql'" + " AND TABLE_NAME = 'spider_xa';" + )}, + {C_STRING_WITH_LEN( + "if @engine_name != 'Aria' then" + " alter table mysql.spider_xa" + " engine=Aria transactional=1," + " algorithm=copy, lock=shared;" + "end if;" + )}, + {C_STRING_WITH_LEN( + "select ENGINE INTO @engine_name from INFORMATION_SCHEMA.TABLES" + " where TABLE_SCHEMA = 'mysql'" + " AND TABLE_NAME = 'spider_xa_failed_log';" + )}, + {C_STRING_WITH_LEN( + "if @engine_name != 'Aria' then" + " alter table mysql.spider_xa_failed_log" + " engine=Aria transactional=1," + " algorithm=copy, lock=shared;" + "end if;" + )}, + {C_STRING_WITH_LEN( + "select ENGINE INTO @engine_name from INFORMATION_SCHEMA.TABLES" + " where TABLE_SCHEMA = 'mysql'" + " AND TABLE_NAME = 'spider_xa_member';" + )}, + {C_STRING_WITH_LEN( + "if @engine_name != 'Aria' then" + " alter table mysql.spider_xa_member" + " engine=Aria transactional=1," + " algorithm=copy, lock=shared;" + "end if;" + )}, +/* + Fix for version 3.4 +*/ + {C_STRING_WITH_LEN( + "alter table mysql.spider_link_mon_servers" + " 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," + " 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," + " 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," + " 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," + " algorithm=copy, lock=shared;" + )}, + {C_STRING_WITH_LEN( + "alter table mysql.spider_tables" + " 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," + " 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," + " 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," + " 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," + " 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," + " 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," + " algorithm=copy, lock=shared;" + )}, + {C_STRING_WITH_LEN( + "set @win_plugin := IF(@@version_compile_os like 'Win%', 1, 0);" + )}, + /* Install UDFs. If udf is not initialised, then install by + inserting into mysql.func */ + {C_STRING_WITH_LEN( + "if @win_plugin = 0 then" + " begin not atomic" + " declare exit handler for 1041, 1123" + " replace into mysql.func values" + " ('spider_direct_sql', 2, 'ha_spider.so', 'function')," + " ('spider_bg_direct_sql', 2, 'ha_spider.so', 'aggregate')," + " ('spider_ping_table', 2, 'ha_spider.so', 'function')," + " ('spider_copy_tables', 2, 'ha_spider.so', 'function')," + " ('spider_flush_table_mon_cache', 2, 'ha_spider.so', 'function');" + " create function if not exists spider_direct_sql returns int" + " soname 'ha_spider.so';" + " create aggregate function if not exists spider_bg_direct_sql returns int" + " soname 'ha_spider.so';" + " create function if not exists spider_ping_table returns int" + " soname 'ha_spider.so';" + " create function if not exists spider_copy_tables returns int" + " soname 'ha_spider.so';" + " create function if not exists spider_flush_table_mon_cache returns int" + " soname 'ha_spider.so';" + " end;" + "else" + " begin not atomic" + " declare exit handler for 1041, 1123" + " replace into mysql.func values" + " ('spider_direct_sql', 2, 'ha_spider.dll', 'function')," + " ('spider_bg_direct_sql', 2, 'ha_spider.dll', 'aggregate')," + " ('spider_ping_table', 2, 'ha_spider.dll', 'function')," + " ('spider_copy_tables', 2, 'ha_spider.dll', 'function')," + " ('spider_flush_table_mon_cache', 2, 'ha_spider.dll', 'function');" + " create function if not exists spider_direct_sql returns int" + " soname 'ha_spider.dll';" + " create aggregate function if not exists spider_bg_direct_sql returns int" + " soname 'ha_spider.dll';" + " create function if not exists spider_ping_table returns int" + " soname 'ha_spider.dll';" + " create function if not exists spider_copy_tables returns int" + " soname 'ha_spider.dll';" + " create function if not exists spider_flush_table_mon_cache returns int" + " soname 'ha_spider.dll';" + " end;" + "end if;" + )} +}; |