mirror of
https://github.com/MariaDB/server.git
synced 2025-01-27 01:04:19 +01:00
77c9917663
The limit of socket length on unix according to libc is 108, see sockaddr_un::sun_path, but in the table it is a string of max length 64, which results in truncation of socket and failure to connect by plugins using servers such as spider.
45 lines
1.9 KiB
Text
45 lines
1.9 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;
|