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;