summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <svoj@mysql.com/april.(none)>2006-09-27 15:42:00 +0500
committerunknown <svoj@mysql.com/april.(none)>2006-09-27 15:42:00 +0500
commit97ee72c5a0406b0eac0984084cbf45fe5646138f (patch)
treea8dc7e7fb0a9a18ff444881790c98ae17c44202a
parentf7316a9eb86e580d7218fa34396150c87ebae910 (diff)
parent30ffabad0436478ca3ea2aa20b9c0c3e9aa776ad (diff)
downloadmariadb-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.c3
-rw-r--r--mysql-test/r/merge.result13
-rw-r--r--mysql-test/t/merge.test14
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
#