Commit 3fd4a647 authored by unknown's avatar unknown
Browse files

Merge eherman@bk-internal.mysql.com:/home/bk/mysql-5.0

into mysql.com:/Users/eric/bktmp/mysql-5.0

parents 9ac1de7a 8c2960bf
Loading
Loading
Loading
Loading
+48 −0
Original line number Diff line number Diff line
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;
+58 −0
Original line number Diff line number Diff line
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;
+2 −0
Original line number Diff line number Diff line
@@ -1960,6 +1960,8 @@ int ha_federated::delete_row(const byte *buf)
  {
    int error_code= ER_QUERY_ON_FOREIGN_DATA_SOURCE;
    char error_buffer[FEDERATED_QUERY_BUFFER_SIZE];
    my_sprintf(error_buffer, (error_buffer, ": %d : %s",
              mysql_errno(mysql), mysql_error(mysql)));
    my_error(error_code, MYF(0), error_buffer);
    DBUG_RETURN(error_code);
  }