Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
8cfef42f
Commit
8cfef42f
authored
Oct 08, 2006
by
svoj@may.pils.ru
Browse files
Options
Browse Files
Download
Plain Diff
Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0
into may.pils.ru:/home/svoj/devel/bk/mysql-5.0-engines
parents
90116d25
8f4b0d94
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
25 additions
and
6 deletions
+25
-6
mysql-test/r/merge.result
mysql-test/r/merge.result
+4
-4
sql/ha_myisammrg.cc
sql/ha_myisammrg.cc
+14
-1
sql/share/errmsg.txt
sql/share/errmsg.txt
+1
-1
sql/sql_update.cc
sql/sql_update.cc
+6
-0
No files found.
mysql-test/r/merge.result
View file @
8cfef42f
...
@@ -178,9 +178,9 @@ t3 CREATE TABLE `t3` (
...
@@ -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 exist
s
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 exist
s
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;
...
@@ -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 exist
s
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 exist
s
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));
...
...
sql/ha_myisammrg.cc
View file @
8cfef42f
...
@@ -326,9 +326,22 @@ void ha_myisammrg::info(uint flag)
...
@@ -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
));
}
}
}
}
}
...
...
sql/share/errmsg.txt
View file @
8cfef42f
...
@@ -3813,7 +3813,7 @@ ER_WRONG_MRG_TABLE
...
@@ -3813,7 +3813,7 @@ ER_WRONG_MRG_TABLE
cze "V-Bechny tabulky v MERGE tabulce nejsou definovny stejn"
cze "V-Bechny tabulky v MERGE tabulce nejsou definovny stejn"
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 exist
s
"
eng "Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist"
est "Kik tabelid MERGE tabeli mratluses ei ole identsed"
est "Kik tabelid MERGE tabeli mratluses ei ole identsed"
fre "Toutes les tables de la table de type MERGE n'ont pas la mme dfinition"
fre "Toutes les tables de la table de type MERGE n'ont pas la mme dfinition"
ger "Nicht alle Tabellen in der MERGE-Tabelle sind gleich definiert"
ger "Nicht alle Tabellen in der MERGE-Tabelle sind gleich definiert"
...
...
sql/sql_update.cc
View file @
8cfef42f
...
@@ -1095,6 +1095,8 @@ multi_update::initialize_tables(JOIN *join)
...
@@ -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()
...
@@ -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
)
{
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment