1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

delete row now pulls error message from remote server.

Added test cases with archive (where delete & update will always fail)
http://bugs.mysql.com/bug.php?id=12659


sql/ha_federated.cc:
  populate the error buffer with error message from remote system
This commit is contained in:
unknown
2005-09-02 11:40:21 -07:00
parent 38b7c29a80
commit 6189933e78
3 changed files with 108 additions and 0 deletions

View File

@ -0,0 +1,48 @@
stop slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
reset master;
reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
stop slave;
DROP DATABASE IF EXISTS federated;
CREATE DATABASE federated;
DROP DATABASE IF EXISTS federated;
CREATE DATABASE federated;
DROP TABLE IF EXISTS federated.archive_table;
CREATE TABLE federated.archive_table (
`id` int(4) NOT NULL,
`name` varchar(54) default NULL
) ENGINE=ARCHIVE DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS federated.t1;
CREATE TABLE federated.t1 (
`id` int(4) NOT NULL,
`name` varchar(54) default NULL,
PRIMARY KEY (`id`)
)
ENGINE="FEDERATED" DEFAULT CHARSET=latin1
COMMENT='mysql://root@127.0.0.1:SLAVE_PORT/federated/archive_table';
INSERT INTO federated.t1 (id, name) VALUES (1, 'foo');
INSERT INTO federated.t1 (id, name) VALUES (2, 'bar');
SELECT * FROM federated.t1;
id name
1 foo
2 bar
DELETE FROM federated.t1 WHERE id = 1;
ERROR HY000: There was a problem processing the query on the foreign data source. Data source error: ': 1031 : Table storage engine for 'archive_table' doesn't have t'
SELECT * FROM federated.t1;
id name
1 foo
2 bar
UPDATE federated.t1 SET name='baz' WHERE id = 1;
ERROR HY000: There was a problem processing the query on the foreign data source. Data source error: ': 1031 : Table storage engine for 'archive_table' doesn't have t'
SELECT * FROM federated.t1;
id name
1 foo
2 bar
DROP TABLE federated.t1;
DROP TABLE federated.archive_table;
DROP TABLE IF EXISTS federated.t1;
DROP DATABASE IF EXISTS federated;
DROP TABLE IF EXISTS federated.t1;
DROP DATABASE IF EXISTS federated;

View File

@ -0,0 +1,58 @@
source include/have_archive.inc;
source include/federated.inc;
connection slave;
--disable_warnings
DROP TABLE IF EXISTS federated.archive_table;
--enable_warnings
CREATE TABLE federated.archive_table (
`id` int(4) NOT NULL,
`name` varchar(54) default NULL
) ENGINE=ARCHIVE DEFAULT CHARSET=latin1;
connection master;
--disable_warnings
DROP TABLE IF EXISTS federated.t1;
--enable_warnings
--replace_result $SLAVE_MYPORT SLAVE_PORT
eval CREATE TABLE federated.t1 (
`id` int(4) NOT NULL,
`name` varchar(54) default NULL,
PRIMARY KEY (`id`)
)
ENGINE="FEDERATED" DEFAULT CHARSET=latin1
COMMENT='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/archive_table';
INSERT INTO federated.t1 (id, name) VALUES (1, 'foo');
INSERT INTO federated.t1 (id, name) VALUES (2, 'bar');
SELECT * FROM federated.t1;
--error 1430
DELETE FROM federated.t1 WHERE id = 1;
SELECT * FROM federated.t1;
--error 1430
UPDATE federated.t1 SET name='baz' WHERE id = 1;
SELECT * FROM federated.t1;
# --error 1430
# TRUNCATE federated.t1;
#
# SELECT * from federated.t1;
DROP TABLE federated.t1;
connection slave;
DROP TABLE federated.archive_table;
source include/federated_cleanup.inc;