# WL #3031 This test tests the new servers table as well as
# if federated can utilise the servers table
# should work with embedded server after mysqltest is fixed
-- source include/not_embedded.inc
source include/federated.inc;

connection slave;
create database first_db;
create database second_db;

use first_db;

DROP TABLE IF EXISTS first_db.t1;
CREATE TABLE first_db.t1 (
    `id` int(20) NOT NULL,
    `name` varchar(64) NOT NULL default ''
    )
  DEFAULT CHARSET=latin1;

use second_db;
DROP TABLE IF EXISTS second_db.t1;
CREATE TABLE second_db.t1 (
    `id` int(20) NOT NULL,
    `name` varchar(64) NOT NULL default ''
    )
  DEFAULT CHARSET=latin1;

connection master;

drop server if exists 'server_one';
--replace_result $SLAVE_MYPORT SLAVE_PORT
eval create server 'server_one' foreign data wrapper 'mysql' options
  (HOST '127.0.0.1',
  DATABASE 'first_db',
  USER 'root',
  PASSWORD '',
  PORT $SLAVE_MYPORT,
  SOCKET '',
  OWNER 'root');

drop server if exists 'server_two';
--replace_result $SLAVE_MYPORT SLAVE_PORT
eval create server 'server_two' foreign data wrapper 'mysql' options
  (HOST '127.0.0.1',
  DATABASE 'second_db',
  USER 'root',
  PASSWORD '',
  PORT $SLAVE_MYPORT,
  SOCKET '',
  OWNER 'root');

--replace_result $SLAVE_MYPORT SLAVE_PORT
eval select * from mysql.servers;

DROP TABLE IF EXISTS federated.old;
--replace_result $SLAVE_MYPORT SLAVE_PORT
eval CREATE TABLE federated.old (
    `id` int(20) NOT NULL,
    `name` varchar(64) NOT NULL default ''
    )
  ENGINE="FEDERATED" DEFAULT CHARSET=latin1
  CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/first_db/t1';

INSERT INTO federated.old (id, name) values (1, 'federated.old url');

SELECT * FROM federated.old;

DROP TABLE IF EXISTS federated.old2;
--replace_result $SLAVE_MYPORT SLAVE_PORT
eval CREATE TABLE federated.old2 (
    `id` int(20) NOT NULL,
    `name` varchar(64) NOT NULL default ''
    )
  ENGINE="FEDERATED" DEFAULT CHARSET=latin1
  CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/second_db/t1';

INSERT INTO federated.old2 (id, name) values (1, 'federated.old2 url');

DROP TABLE IF EXISTS federated.t1;
CREATE TABLE federated.t1 (
    `id` int(20) NOT NULL,
    `name` varchar(64) NOT NULL default ''
    )
  ENGINE="FEDERATED" DEFAULT CHARSET=latin1
  CONNECTION='server_one';

INSERT INTO federated.t1 (id, name) values (1, 'server_one, new scheme');

SELECT * FROM federated.t1;

ALTER SERVER 'server_one' options(DATABASE 'second_db');

flush tables;

INSERT INTO federated.t1 (id, name) values (1, 'server_two, new scheme');
SELECT * FROM federated.t1;

drop table federated.t1;

drop server 'server_one';
drop server 'server_two';
select * from mysql.servers;

connection slave;
drop table first_db.t1;
drop table second_db.t1;
drop database first_db;
drop database second_db;

source include/federated_cleanup.inc;
