Commit 1308ed1b authored by unknown's avatar unknown

Merge paul@bk-internal.mysql.com:/home/bk/mysql-4.1

into ice.snake.net:/Volumes/ice2/MySQL/bk/mysql-4.1

parents 47ebe5c8 07ad0429
...@@ -791,3 +791,4 @@ sql/my_time.c ...@@ -791,3 +791,4 @@ sql/my_time.c
libmysql/my_time.c libmysql/my_time.c
libmysqld/my_time.c libmysqld/my_time.c
sql/mysql_tzinfo_to_sql sql/mysql_tzinfo_to_sql
sql/mysql_tzinfo_to_sql.cc
drop table if exists t1; drop table if exists t1,t2;
create table t1 (a int not null auto_increment primary key); create table t1 (a int not null auto_increment primary key);
insert into t1 values(0); insert into t1 values(0);
lock table t1 read; lock table t1 read;
...@@ -7,60 +7,6 @@ check table t1; ...@@ -7,60 +7,6 @@ check table t1;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 check status OK test.t1 check status OK
drop table t1; drop table t1;
drop database if exists test_test;
create database test_test;
use test_test;
create table t1(table_id char(20) primary key);
insert into t1 values ('test_test.t1');
insert into t1 values ('');
handler t1 open;
handler t1 read first limit 9;
table_id
test_test.t1
create table t2(table_id char(20) primary key);
insert into t2 values ('test_test.t2');
insert into t2 values ('');
handler t2 open;
handler t2 read first limit 9;
table_id
test_test.t2
use test;
drop table if exists t1;
create table t1(table_id char(20) primary key);
insert into t1 values ('test.t1');
insert into t1 values ('');
handler t1 open;
handler t1 read first limit 9;
table_id
test.t1
use test;
handler test.t1 read first limit 9;
table_id
test.t1
handler test.t2 read first limit 9;
Unknown table 't2' in HANDLER
handler test_test.t1 read first limit 9;
table_id
test_test.t1
handler test_test.t2 read first limit 9;
table_id
test_test.t2
handler test_test.t1 close;
drop table test_test.t1;
handler test_test.t2 close;
drop table test_test.t2;
drop database test_test;
use test;
handler test.t1 close;
drop table test.t1;
drop table if exists t1;
drop table if exists t2;
create table t1(table_id char(20) primary key); create table t1(table_id char(20) primary key);
create table t2(table_id char(20) primary key); create table t2(table_id char(20) primary key);
insert into t1 values ('test.t1'); insert into t1 values ('test.t1');
...@@ -84,11 +30,11 @@ test.t2 ...@@ -84,11 +30,11 @@ test.t2
flush tables; flush tables;
handler a1 read first limit 9; handler a1 read first limit 9;
Unknown table 'a1' in HANDLER ERROR 42S02: Unknown table 'a1' in HANDLER
handler a2 read first limit 9; handler a2 read first limit 9;
Unknown table 'a2' in HANDLER ERROR 42S02: Unknown table 'a2' in HANDLER
handler t2 read first limit 9; handler t2 read first limit 9;
Unknown table 't2' in HANDLER ERROR 42S02: Unknown table 't2' in HANDLER
handler t1 open as a1; handler t1 open as a1;
handler t1 open as a2; handler t1 open as a2;
handler t2 open; handler t2 open;
...@@ -106,15 +52,15 @@ test.t2 ...@@ -106,15 +52,15 @@ test.t2
flush table t1; flush table t1;
handler a1 read first limit 9; handler a1 read first limit 9;
Unknown table 'a1' in HANDLER ERROR 42S02: Unknown table 'a1' in HANDLER
handler a2 read first limit 9; handler a2 read first limit 9;
Unknown table 'a2' in HANDLER ERROR 42S02: Unknown table 'a2' in HANDLER
handler t2 read first limit 9; handler t2 read first limit 9;
table_id table_id
test.t2 test.t2
flush table t2; flush table t2;
handler t2 close; handler t2 close;
Unknown table 't2' in HANDLER ERROR 42S02: Unknown table 't2' in HANDLER
drop table t1; drop table t1;
drop table t2; drop table t2;
...@@ -576,7 +576,7 @@ id select_type table type possible_keys key key_len ref rows Extra ...@@ -576,7 +576,7 @@ id select_type table type possible_keys key key_len ref rows Extra
explain explain
select min(a1) from t1 where a1 != 'KKK'; select min(a1) from t1 where a1 != 'KKK';
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 range PRIMARY PRIMARY 3 NULL 14 Using where; Using index 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
explain explain
select max(a3) from t1 where a2 < 2 and a3 < 'SEA'; select max(a3) from t1 where a2 < 2 and a3 < 'SEA';
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
...@@ -621,7 +621,7 @@ id select_type table type possible_keys key key_len ref rows Extra ...@@ -621,7 +621,7 @@ id select_type table type possible_keys key key_len ref rows Extra
explain explain
select concat(min(t1.a1),min(t2.a4)) from t1, t2 where t2.a4 <> 'AME'; select concat(min(t1.a1),min(t2.a4)) from t1, t2 where t2.a4 <> 'AME';
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 range k2 k2 4 NULL 6 Using where; Using index 1 SIMPLE t2 ref k2 k2 4 const 6 Using where; Using index
1 SIMPLE t1 index NULL PRIMARY 3 NULL 14 Using index 1 SIMPLE t1 index NULL PRIMARY 3 NULL 14 Using index
drop table t1, t2; drop table t1, t2;
create table t1 (USR_ID integer not null, MAX_REQ integer not null, constraint PK_SEA_USER primary key (USR_ID)) engine=InnoDB; create table t1 (USR_ID integer not null, MAX_REQ integer not null, constraint PK_SEA_USER primary key (USR_ID)) engine=InnoDB;
......
...@@ -109,9 +109,9 @@ count(*) ...@@ -109,9 +109,9 @@ count(*)
1 1
drop table t1; drop table t1;
set GLOBAL query_cache_size=1355776; set GLOBAL query_cache_size=1355776;
CREATE TABLE t1 ( id int(10) NOT NULL auto_increment, a varchar(25) default NULL, PRIMARY KEY (id), UNIQUE KEY a (a)) TYPE=innodb; CREATE TABLE t1 ( id int(10) NOT NULL auto_increment, a varchar(25) default NULL, PRIMARY KEY (id), UNIQUE KEY a (a)) ENGINE=innodb;
CREATE TABLE t2 ( id int(10) NOT NULL auto_increment, b varchar(25) default NULL, PRIMARY KEY (id), UNIQUE KEY b (b)) TYPE=innodb; CREATE TABLE t2 ( id int(10) NOT NULL auto_increment, b varchar(25) default NULL, PRIMARY KEY (id), UNIQUE KEY b (b)) ENGINE=innodb;
CREATE TABLE t3 ( id int(10) NOT NULL auto_increment, t1_id int(10) NOT NULL default '0', t2_id int(10) NOT NULL default '0', state int(11) default NULL, PRIMARY KEY (id), UNIQUE KEY t1_id (t1_id,t2_id), KEY t2_id (t2_id,t1_id), CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`t1_id`) REFERENCES `t1` (`id`), CONSTRAINT `t3_ibfk_2` FOREIGN KEY (`t2_id`) REFERENCES `t2` (`id`)) TYPE=innodb; CREATE TABLE t3 ( id int(10) NOT NULL auto_increment, t1_id int(10) NOT NULL default '0', t2_id int(10) NOT NULL default '0', state int(11) default NULL, PRIMARY KEY (id), UNIQUE KEY t1_id (t1_id,t2_id), KEY t2_id (t2_id,t1_id), CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`t1_id`) REFERENCES `t1` (`id`), CONSTRAINT `t3_ibfk_2` FOREIGN KEY (`t2_id`) REFERENCES `t2` (`id`)) ENGINE=innodb;
INSERT INTO t1 VALUES (1,'me'); INSERT INTO t1 VALUES (1,'me');
INSERT INTO t2 VALUES (1,'you'); INSERT INTO t2 VALUES (1,'you');
INSERT INTO t3 VALUES (2,1,1,2); INSERT INTO t3 VALUES (2,1,1,2);
...@@ -121,7 +121,7 @@ id a ...@@ -121,7 +121,7 @@ id a
begin; begin;
insert into t3 VALUES ( NULL, 1, 1, 2 ); insert into t3 VALUES ( NULL, 1, 1, 2 );
insert into t3 VALUES ( NULL, 1, 1, 2 ); insert into t3 VALUES ( NULL, 1, 1, 2 );
Duplicate entry '1-1' for key 2 ERROR 23000: Duplicate entry '1-1' for key 2
commit; commit;
select t1.* from t1, t2, t3 where t3.state & 1 = 0 and t3.t1_id = t1.id and t3.t2_id = t2.id and t1.id = 1 order by t1.a asc; select t1.* from t1, t2, t3 where t3.state & 1 = 0 and t3.t1_id = t1.id and t3.t2_id = t2.id and t1.id = 1 order by t1.a asc;
id a id a
......
...@@ -244,7 +244,7 @@ id select_type table type possible_keys key key_len ref rows Extra ...@@ -244,7 +244,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 range x x 5 NULL 2 Using where 1 SIMPLE t2 range x x 5 NULL 2 Using where
explain select count(*) from t1 where x in (1); explain select count(*) from t1 where x in (1);
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ref x x 5 NULL 1 Using where; Using index 1 SIMPLE t1 ref x x 5 const 1 Using where; Using index
explain select count(*) from t1 where x in (1,2); explain select count(*) from t1 where x in (1,2);
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 range x x 5 NULL 2 Using where; Using index 1 SIMPLE t1 range x x 5 NULL 2 Using where; Using index
......
...@@ -4,7 +4,9 @@ ...@@ -4,7 +4,9 @@
# Test of flush table # Test of flush table
# #
drop table if exists t1; --disable_warnings
drop table if exists t1,t2;
--enable_warnings
create table t1 (a int not null auto_increment primary key); create table t1 (a int not null auto_increment primary key);
insert into t1 values(0); insert into t1 values(0);
lock table t1 read; lock table t1 read;
...@@ -12,68 +14,10 @@ flush table t1; ...@@ -12,68 +14,10 @@ flush table t1;
check table t1; check table t1;
drop table t1; drop table t1;
#
# Check if two database names beginning the same are seen as different.
#
# This database begins like the usual 'test' database.
#
--disable_warnings
drop database if exists test_test;
--enable_warnings
create database test_test;
use test_test;
create table t1(table_id char(20) primary key);
insert into t1 values ('test_test.t1');
insert into t1 values ('');
handler t1 open;
handler t1 read first limit 9;
create table t2(table_id char(20) primary key);
insert into t2 values ('test_test.t2');
insert into t2 values ('');
handler t2 open;
handler t2 read first limit 9;
#
# This is the usual 'test' database.
#
use test;
--disable_warnings
drop table if exists t1;
--enable_warnings
create table t1(table_id char(20) primary key);
insert into t1 values ('test.t1');
insert into t1 values ('');
handler t1 open;
handler t1 read first limit 9;
#
# Check accesibility of all the tables.
#
use test;
handler test.t1 read first limit 9;
--error 1109;
handler test.t2 read first limit 9;
handler test_test.t1 read first limit 9;
handler test_test.t2 read first limit 9;
#
# Cleanup.
#
handler test_test.t1 close;
drop table test_test.t1;
handler test_test.t2 close;
drop table test_test.t2;
drop database test_test;
#
use test;
handler test.t1 close;
drop table test.t1;
# #
# In the following test FLUSH TABLES produces a deadlock # In the following test FLUSH TABLES produces a deadlock
# (hang forever) if the fix for bug#3565 is missing. # (hang forever) if the fix for bug#3565 is missing.
# #
--disable_warnings
drop table if exists t1;
drop table if exists t2;
--enable_warnings
create table t1(table_id char(20) primary key); create table t1(table_id char(20) primary key);
create table t2(table_id char(20) primary key); create table t2(table_id char(20) primary key);
insert into t1 values ('test.t1'); insert into t1 values ('test.t1');
......
...@@ -64,9 +64,9 @@ drop table t1; ...@@ -64,9 +64,9 @@ drop table t1;
# one statement roll back inside transation # one statement roll back inside transation
# #
set GLOBAL query_cache_size=1355776; set GLOBAL query_cache_size=1355776;
CREATE TABLE t1 ( id int(10) NOT NULL auto_increment, a varchar(25) default NULL, PRIMARY KEY (id), UNIQUE KEY a (a)) TYPE=innodb; CREATE TABLE t1 ( id int(10) NOT NULL auto_increment, a varchar(25) default NULL, PRIMARY KEY (id), UNIQUE KEY a (a)) ENGINE=innodb;
CREATE TABLE t2 ( id int(10) NOT NULL auto_increment, b varchar(25) default NULL, PRIMARY KEY (id), UNIQUE KEY b (b)) TYPE=innodb; CREATE TABLE t2 ( id int(10) NOT NULL auto_increment, b varchar(25) default NULL, PRIMARY KEY (id), UNIQUE KEY b (b)) ENGINE=innodb;
CREATE TABLE t3 ( id int(10) NOT NULL auto_increment, t1_id int(10) NOT NULL default '0', t2_id int(10) NOT NULL default '0', state int(11) default NULL, PRIMARY KEY (id), UNIQUE KEY t1_id (t1_id,t2_id), KEY t2_id (t2_id,t1_id), CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`t1_id`) REFERENCES `t1` (`id`), CONSTRAINT `t3_ibfk_2` FOREIGN KEY (`t2_id`) REFERENCES `t2` (`id`)) TYPE=innodb; CREATE TABLE t3 ( id int(10) NOT NULL auto_increment, t1_id int(10) NOT NULL default '0', t2_id int(10) NOT NULL default '0', state int(11) default NULL, PRIMARY KEY (id), UNIQUE KEY t1_id (t1_id,t2_id), KEY t2_id (t2_id,t1_id), CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`t1_id`) REFERENCES `t1` (`id`), CONSTRAINT `t3_ibfk_2` FOREIGN KEY (`t2_id`) REFERENCES `t2` (`id`)) ENGINE=innodb;
INSERT INTO t1 VALUES (1,'me'); INSERT INTO t1 VALUES (1,'me');
INSERT INTO t2 VALUES (1,'you'); INSERT INTO t2 VALUES (1,'you');
INSERT INTO t3 VALUES (2,1,1,2); INSERT INTO t3 VALUES (2,1,1,2);
......
...@@ -161,13 +161,16 @@ vreplace() ...@@ -161,13 +161,16 @@ vreplace()
done done
} }
for d in 4.1.XX-gpl 4.1.XX-pro 4.1.XX-classic if test -d $BASE/InstallShield
do then
cd $BASE/InstallShield/$d/String\ Tables/0009-English for d in 4.1.XX-gpl 4.1.XX-pro 4.1.XX-classic
vreplace value.shl do
cd ../../Setup\ Files/Compressed\ Files/Language\ Independent/OS\ Independent cd $BASE/InstallShield/$d/String\ Tables/0009-English
vreplace infolist.txt vreplace value.shl
done cd ../../Setup\ Files/Compressed\ Files/Language\ Independent/OS\ Independent
vreplace infolist.txt
done
fi
# #
# Move all error message files to root directory # Move all error message files to root directory
......
...@@ -160,7 +160,6 @@ then ...@@ -160,7 +160,6 @@ then
INSERT INTO user (host,user) values ('localhost','');" INSERT INTO user (host,user) values ('localhost','');"
else else
i_u="$i_u i_u="$i_u
INSERT INTO user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0);
INSERT INTO user VALUES ('%','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0); INSERT INTO user VALUES ('%','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0);
INSERT INTO user VALUES ('localhost','','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0); INSERT INTO user VALUES ('localhost','','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0);
INSERT INTO user VALUES ('%','','','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','','','','',0,0,0);" INSERT INTO user VALUES ('%','','','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','','','','',0,0,0);"
......
...@@ -1583,18 +1583,12 @@ int ha_berkeley::index_last(byte * buf) ...@@ -1583,18 +1583,12 @@ int ha_berkeley::index_last(byte * buf)
int ha_berkeley::rnd_init(bool scan) int ha_berkeley::rnd_init(bool scan)
{ {
DBUG_ENTER("rnd_init"); DBUG_ENTER("rnd_init");
#ifdef NOT_YET
DBUG_ASSERT(active_index == MAX_KEY);
#endif
current_row.flags=DB_DBT_REALLOC; current_row.flags=DB_DBT_REALLOC;
DBUG_RETURN(index_init(primary_key)); DBUG_RETURN(index_init(primary_key));
} }
int ha_berkeley::rnd_end() int ha_berkeley::rnd_end()
{ {
#ifdef NOT_YET
DBUG_ASSERT(active_index == MAX_KEY);
#endif
return index_end(); return index_end();
} }
......
...@@ -716,9 +716,6 @@ int SQL_SELECT::test_quick_select(THD *thd, key_map keys_to_use, ...@@ -716,9 +716,6 @@ int SQL_SELECT::test_quick_select(THD *thd, key_map keys_to_use,
key++,idx++) key++,idx++)
{ {
ha_rows found_records; ha_rows found_records;
#if defined(__GNUC__) && (__GNUC__ == 2 && __GNUC_MINOR__ == 95) && defined(__OPTIMIZE__)
volatile // gcc 2.95.3 bug in -O3 mode
#endif
double found_read_time; double found_read_time;
if (*key) if (*key)
{ {
......
...@@ -2278,12 +2278,13 @@ add_key_fields(JOIN_TAB *stat,KEY_FIELD **key_fields,uint *and_level, ...@@ -2278,12 +2278,13 @@ add_key_fields(JOIN_TAB *stat,KEY_FIELD **key_fields,uint *and_level,
case Item_func::OPTIMIZE_NONE: case Item_func::OPTIMIZE_NONE:
break; break;
case Item_func::OPTIMIZE_KEY: case Item_func::OPTIMIZE_KEY:
// BETWEEN or IN // BETWEEN, IN, NOT
if (cond_func->key_item()->real_item()->type() == Item::FIELD_ITEM && if (cond_func->key_item()->real_item()->type() == Item::FIELD_ITEM &&
!(cond_func->used_tables() & OUTER_REF_TABLE_BIT)) !(cond_func->used_tables() & OUTER_REF_TABLE_BIT))
add_key_field(key_fields,*and_level,cond_func, add_key_field(key_fields,*and_level,cond_func,
((Item_field*) (cond_func->key_item()->real_item()))-> ((Item_field*)(cond_func->key_item()->real_item()))->field,
field, cond_func->argument_count() == 2, cond_func->argument_count() == 2 &&
cond_func->functype() == Item_func::IN_FUNC,
cond_func->arguments()+1, cond_func->argument_count()-1, cond_func->arguments()+1, cond_func->argument_count()-1,
usable_tables); usable_tables);
break; break;
...@@ -4128,6 +4129,8 @@ return_zero_rows(JOIN *join, select_result *result,TABLE_LIST *tables, ...@@ -4128,6 +4129,8 @@ return_zero_rows(JOIN *join, select_result *result,TABLE_LIST *tables,
DBUG_RETURN(0); DBUG_RETURN(0);
} }
join->join_free(0);
if (send_row) if (send_row)
{ {
for (TABLE_LIST *table=tables; table ; table=table->next) for (TABLE_LIST *table=tables; table ; table=table->next)
......
...@@ -602,7 +602,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); ...@@ -602,7 +602,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
opt_table_alias opt_table_alias
%type <table> %type <table>
table_ident table_ident_ref references table_ident table_ident_nodb references
%type <simple_string> %type <simple_string>
remember_name remember_end opt_ident opt_db text_or_password remember_name remember_end opt_ident opt_db text_or_password
...@@ -4874,9 +4874,8 @@ table_ident: ...@@ -4874,9 +4874,8 @@ table_ident:
| '.' ident { $$=new Table_ident($2);} /* For Delphi */ | '.' ident { $$=new Table_ident($2);} /* For Delphi */
; ;
table_ident_ref: table_ident_nodb:
ident { LEX_STRING db={(char*) any_db,3}; $$=new Table_ident(YYTHD, db,$1,0); } ident { LEX_STRING db={(char*) any_db,3}; $$=new Table_ident(YYTHD, db,$1,0); }
| ident '.' ident { $$=new Table_ident(YYTHD, $1,$3,0);}
; ;
IDENT_sys: IDENT_sys:
...@@ -5410,14 +5409,14 @@ handler: ...@@ -5410,14 +5409,14 @@ handler:
if (!lex->current_select->add_table_to_list(lex->thd, $2, $4, 0)) if (!lex->current_select->add_table_to_list(lex->thd, $2, $4, 0))
YYABORT; YYABORT;
} }
| HANDLER_SYM table_ident_ref CLOSE_SYM | HANDLER_SYM table_ident_nodb CLOSE_SYM
{ {
LEX *lex= Lex; LEX *lex= Lex;
lex->sql_command = SQLCOM_HA_CLOSE; lex->sql_command = SQLCOM_HA_CLOSE;
if (!lex->current_select->add_table_to_list(lex->thd, $2, 0, 0)) if (!lex->current_select->add_table_to_list(lex->thd, $2, 0, 0))
YYABORT; YYABORT;
} }
| HANDLER_SYM table_ident_ref READ_SYM | HANDLER_SYM table_ident_nodb READ_SYM
{ {
LEX *lex=Lex; LEX *lex=Lex;
lex->sql_command = SQLCOM_HA_READ; lex->sql_command = SQLCOM_HA_READ;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment