diff options
author | unknown <svoj@mysql.com/april.(none)> | 2006-09-27 15:42:00 +0500 |
---|---|---|
committer | unknown <svoj@mysql.com/april.(none)> | 2006-09-27 15:42:00 +0500 |
commit | 97ee72c5a0406b0eac0984084cbf45fe5646138f (patch) | |
tree | a8dc7e7fb0a9a18ff444881790c98ae17c44202a | |
parent | f7316a9eb86e580d7218fa34396150c87ebae910 (diff) | |
parent | 30ffabad0436478ca3ea2aa20b9c0c3e9aa776ad (diff) | |
download | mariadb-git-97ee72c5a0406b0eac0984084cbf45fe5646138f.tar.gz |
Merge mysql.com:/home/svoj/devel/mysql/merge/mysql-4.1-engines
into mysql.com:/home/svoj/devel/mysql/merge/mysql-5.0-engines
myisammrg/myrg_open.c:
Auto merged
mysql-test/t/merge.test:
Auto merged
BitKeeper/deleted/.del-errmsg.txt~f96b7055cac394e:
Auto merged
mysql-test/r/repair.result:
Use local.
sql/table.cc:
Use local.
mysql-test/r/merge.result:
Manual merge
-rw-r--r-- | myisammrg/myrg_open.c | 3 | ||||
-rw-r--r-- | mysql-test/r/merge.result | 13 | ||||
-rw-r--r-- | mysql-test/t/merge.test | 14 |
3 files changed, 28 insertions, 2 deletions
diff --git a/myisammrg/myrg_open.c b/myisammrg/myrg_open.c index f9cdc2bb205..124d37904a6 100644 --- a/myisammrg/myrg_open.c +++ b/myisammrg/myrg_open.c @@ -89,7 +89,10 @@ MYRG_INFO *myrg_open(const char *name, int mode, int handle_locking) else fn_format(buff, buff, "", "", 0); if (!(isam=mi_open(buff,mode,(handle_locking?HA_OPEN_WAIT_IF_LOCKED:0)))) + { + my_errno= HA_ERR_WRONG_MRG_TABLE_DEF; goto err; + } if (!m_info) /* First file */ { key_parts=isam->s->base.key_parts; diff --git a/mysql-test/r/merge.result b/mysql-test/r/merge.result index b8fdd24be74..50d392725e4 100644 --- a/mysql-test/r/merge.result +++ b/mysql-test/r/merge.result @@ -178,9 +178,9 @@ t3 CREATE TABLE `t3` ( ) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 UNION=(`t1`,`t2`) create table t4 (a int not null, b char(10), key(a)) engine=MERGE UNION=(t1,t2); select * from t4; -ERROR HY000: All tables in the MERGE table are not identically defined +ERROR HY000: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exists alter table t4 add column c int; -ERROR HY000: All tables in the MERGE table are not identically defined +ERROR HY000: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exists create database mysqltest; create table mysqltest.t6 (a int not null primary key auto_increment, message char(20)); create table t5 (a int not null, b char(20), key(a)) engine=MERGE UNION=(test.t1,mysqltest.t6); @@ -785,4 +785,13 @@ insert into t1 values (1); ERROR HY000: Table 't1' is read only drop table t2; drop table t1; +CREATE TABLE t1(a INT) ENGINE=MEMORY; +CREATE TABLE t2(a INT) ENGINE=MERGE UNION=(t1); +SELECT * FROM t2; +ERROR HY000: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exists +DROP TABLE t1, t2; +CREATE TABLE t2(a INT) ENGINE=MERGE UNION=(t3); +SELECT * FROM t2; +ERROR HY000: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exists +DROP TABLE t2; End of 5.0 tests diff --git a/mysql-test/t/merge.test b/mysql-test/t/merge.test index 93fbc631680..185828c09a5 100644 --- a/mysql-test/t/merge.test +++ b/mysql-test/t/merge.test @@ -378,6 +378,20 @@ select * from t3; check table t1, t2; drop table t1, t2, t3; +# +# BUG#10974 - No error message if merge table based on union of innodb, +# memory +# +CREATE TABLE t1(a INT) ENGINE=MEMORY; +CREATE TABLE t2(a INT) ENGINE=MERGE UNION=(t1); +--error 1168 +SELECT * FROM t2; +DROP TABLE t1, t2; +CREATE TABLE t2(a INT) ENGINE=MERGE UNION=(t3); +--error 1168 +SELECT * FROM t2; +DROP TABLE t2; + # End of 4.1 tests # |