mirror of
https://github.com/MariaDB/server.git
synced 2025-02-05 05:12:17 +01:00
f862fe8b2b
TABLE::use_all_columns turn on all bits of read_set, which is interpreted by innodb as a request to read all columns. Without doing so before calling init_read_record(), innodb will not retrieve any columns if mysql.servers table has been altered to use innodb as the engine, and any foreign servers stored in the table are "lost".
52 lines
2.2 KiB
Text
52 lines
2.2 KiB
Text
set sql_mode="";
|
|
#
|
|
# MDEV-4594 - CREATE SERVER crashes embedded
|
|
#
|
|
CREATE SERVER s1 FOREIGN DATA WRAPPER mysql OPTIONS(HOST 'localhost');
|
|
SELECT * FROM mysql.servers;
|
|
Server_name Host Db Username Password Port Socket Wrapper Owner
|
|
s1 localhost 3306 mysql
|
|
DROP SERVER s1;
|
|
CREATE SERVER s1 FOREIGN DATA WRAPPER foo OPTIONS(USER 'bar');
|
|
SELECT * FROM mysql.servers;
|
|
Server_name Host Db Username Password Port Socket Wrapper Owner
|
|
s1 bar 0 foo
|
|
DROP SERVER s1;
|
|
CREATE SERVER s1 FOREIGN DATA WRAPPER mysql OPTIONS(USER 'bar');
|
|
ERROR HY000: Can't create federated table. Foreign data src error: either HOST or SOCKET must be set
|
|
CREATE SERVER s1 FOREIGN DATA WRAPPER mysql OPTIONS(HOST 'bar');
|
|
SELECT * FROM mysql.servers;
|
|
Server_name Host Db Username Password Port Socket Wrapper Owner
|
|
s1 bar 3306 mysql
|
|
DROP SERVER s1;
|
|
CREATE SERVER s1 FOREIGN DATA WRAPPER mysql OPTIONS(SOCKET 'bar');
|
|
SELECT * FROM mysql.servers;
|
|
Server_name Host Db Username Password Port Socket Wrapper Owner
|
|
s1 3306 bar mysql
|
|
DROP SERVER s1;
|
|
CREATE SERVER s1 FOREIGN DATA WRAPPER mysql OPTIONS(SOCKET '/tmp/1234567890_1234567890_1234567890_1234567890_1234567890_1234567890.sock');
|
|
SELECT Socket FROM mysql.servers where Server_name = 's1';
|
|
Socket
|
|
/tmp/1234567890_1234567890_1234567890_1234567890_1234567890_1234567890.sock
|
|
DROP SERVER s1;
|
|
#
|
|
# MDEV-33783 CREATE SERVER segfaults on wrong mysql.servers
|
|
#
|
|
create server s1 foreign data wrapper foo options(user 'a');
|
|
alter server s1 options(host 'server.example.org');
|
|
rename table mysql.servers to mysql.servers_save;
|
|
create table mysql.servers (x int);
|
|
alter server s1 options(host 'server.example.org');
|
|
ERROR HY000: The foreign server name you are trying to reference does not exist. Data source error: s1
|
|
create server s2 foreign data wrapper foo options(user 'a');
|
|
ERROR HY000: Can't read record in system table
|
|
drop table mysql.servers;
|
|
rename table mysql.servers_save to mysql.servers;
|
|
drop server s1;
|
|
#
|
|
# MDEV-35641 foreign server "disappears" after ALTERing the servers system table to use innodb and FLUSH PRIVILEGES
|
|
#
|
|
CREATE SERVER s1 FOREIGN DATA WRAPPER mysql OPTIONS (HOST '127.0.0.1');
|
|
ALTER TABLE mysql.servers ENGINE=innodb;
|
|
FLUSH PRIVILEGES;
|
|
drop server s1;
|