mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0
into may.pils.ru:/home/svoj/devel/bk/mysql-5.0-engines
This commit is contained in:
@ -178,9 +178,9 @@ t3 CREATE TABLE `t3` (
|
|||||||
) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 UNION=(`t1`,`t2`)
|
) 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);
|
create table t4 (a int not null, b char(10), key(a)) engine=MERGE UNION=(t1,t2);
|
||||||
select * from t4;
|
select * from t4;
|
||||||
ERROR HY000: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exists
|
ERROR HY000: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist
|
||||||
alter table t4 add column c int;
|
alter table t4 add column c int;
|
||||||
ERROR HY000: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exists
|
ERROR HY000: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist
|
||||||
create database mysqltest;
|
create database mysqltest;
|
||||||
create table mysqltest.t6 (a int not null primary key auto_increment, message char(20));
|
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);
|
create table t5 (a int not null, b char(20), key(a)) engine=MERGE UNION=(test.t1,mysqltest.t6);
|
||||||
@ -777,11 +777,11 @@ DROP TABLE t1, t2;
|
|||||||
CREATE TABLE t1(a INT) ENGINE=MEMORY;
|
CREATE TABLE t1(a INT) ENGINE=MEMORY;
|
||||||
CREATE TABLE t2(a INT) ENGINE=MERGE UNION=(t1);
|
CREATE TABLE t2(a INT) ENGINE=MERGE UNION=(t1);
|
||||||
SELECT * FROM t2;
|
SELECT * FROM t2;
|
||||||
ERROR HY000: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exists
|
ERROR HY000: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
CREATE TABLE t2(a INT) ENGINE=MERGE UNION=(t3);
|
CREATE TABLE t2(a INT) ENGINE=MERGE UNION=(t3);
|
||||||
SELECT * FROM t2;
|
SELECT * FROM t2;
|
||||||
ERROR HY000: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exists
|
ERROR HY000: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
create table t1 (b bit(1));
|
create table t1 (b bit(1));
|
||||||
create table t2 (b bit(1));
|
create table t2 (b bit(1));
|
||||||
|
@ -326,9 +326,22 @@ void ha_myisammrg::info(uint flag)
|
|||||||
if (flag & HA_STATUS_CONST)
|
if (flag & HA_STATUS_CONST)
|
||||||
{
|
{
|
||||||
if (table->s->key_parts && info.rec_per_key)
|
if (table->s->key_parts && info.rec_per_key)
|
||||||
|
{
|
||||||
|
#ifdef HAVE_purify
|
||||||
|
/*
|
||||||
|
valgrind may be unhappy about it, because optimizer may access values
|
||||||
|
between file->keys and table->key_parts, that will be uninitialized.
|
||||||
|
It's safe though, because even if opimizer will decide to use a key
|
||||||
|
with such a number, it'll be an error later anyway.
|
||||||
|
*/
|
||||||
|
bzero((char*) table->key_info[0].rec_per_key,
|
||||||
|
sizeof(table->key_info[0].rec_per_key) * table->key_parts);
|
||||||
|
#endif
|
||||||
memcpy((char*) table->key_info[0].rec_per_key,
|
memcpy((char*) table->key_info[0].rec_per_key,
|
||||||
(char*) info.rec_per_key,
|
(char*) info.rec_per_key,
|
||||||
sizeof(table->key_info[0].rec_per_key)*table->s->key_parts);
|
sizeof(table->key_info[0].rec_per_key) *
|
||||||
|
min(file->keys, table->s->key_parts));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3813,7 +3813,7 @@ ER_WRONG_MRG_TABLE
|
|||||||
cze "V-B<>echny tabulky v MERGE tabulce nejsou definov<6F>ny stejn<6A>"
|
cze "V-B<>echny tabulky v MERGE tabulce nejsou definov<6F>ny stejn<6A>"
|
||||||
dan "Tabellerne i MERGE er ikke defineret ens"
|
dan "Tabellerne i MERGE er ikke defineret ens"
|
||||||
nla "Niet alle tabellen in de MERGE tabel hebben identieke gedefinities"
|
nla "Niet alle tabellen in de MERGE tabel hebben identieke gedefinities"
|
||||||
eng "Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exists"
|
eng "Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist"
|
||||||
est "K<>ik tabelid MERGE tabeli m<><6D>ratluses ei ole identsed"
|
est "K<>ik tabelid MERGE tabeli m<><6D>ratluses ei ole identsed"
|
||||||
fre "Toutes les tables de la table de type MERGE n'ont pas la m<>me d<>finition"
|
fre "Toutes les tables de la table de type MERGE n'ont pas la m<>me d<>finition"
|
||||||
ger "Nicht alle Tabellen in der MERGE-Tabelle sind gleich definiert"
|
ger "Nicht alle Tabellen in der MERGE-Tabelle sind gleich definiert"
|
||||||
|
@ -1095,6 +1095,8 @@ multi_update::initialize_tables(JOIN *join)
|
|||||||
List<Item> temp_fields= *fields_for_table[cnt];
|
List<Item> temp_fields= *fields_for_table[cnt];
|
||||||
ORDER group;
|
ORDER group;
|
||||||
|
|
||||||
|
if (ignore)
|
||||||
|
table->file->extra(HA_EXTRA_IGNORE_DUP_KEY);
|
||||||
if (table == main_table) // First table in join
|
if (table == main_table) // First table in join
|
||||||
{
|
{
|
||||||
if (safe_update_on_fly(join->join_tab, &temp_fields))
|
if (safe_update_on_fly(join->join_tab, &temp_fields))
|
||||||
@ -1210,7 +1212,11 @@ multi_update::~multi_update()
|
|||||||
{
|
{
|
||||||
TABLE_LIST *table;
|
TABLE_LIST *table;
|
||||||
for (table= update_tables ; table; table= table->next_local)
|
for (table= update_tables ; table; table= table->next_local)
|
||||||
|
{
|
||||||
table->table->no_keyread= table->table->no_cache= 0;
|
table->table->no_keyread= table->table->no_cache= 0;
|
||||||
|
if (ignore)
|
||||||
|
table->table->file->extra(HA_EXTRA_NO_IGNORE_DUP_KEY);
|
||||||
|
}
|
||||||
|
|
||||||
if (tmp_tables)
|
if (tmp_tables)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user