mirror of
https://github.com/MariaDB/server.git
synced 2025-01-23 23:34:34 +01:00
Merge paul@bk-internal.mysql.com:/home/bk/mysql-4.1
into ice.snake.net:/Volumes/ice2/MySQL/bk/mysql-4.1
This commit is contained in:
commit
1308ed1bef
13 changed files with 41 additions and 155 deletions
|
@ -791,3 +791,4 @@ sql/my_time.c
|
|||
libmysql/my_time.c
|
||||
libmysqld/my_time.c
|
||||
sql/mysql_tzinfo_to_sql
|
||||
sql/mysql_tzinfo_to_sql.cc
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
drop table if exists t1;
|
||||
drop table if exists t1,t2;
|
||||
create table t1 (a int not null auto_increment primary key);
|
||||
insert into t1 values(0);
|
||||
lock table t1 read;
|
||||
|
@ -7,60 +7,6 @@ check table t1;
|
|||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
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 t2(table_id char(20) primary key);
|
||||
insert into t1 values ('test.t1');
|
||||
|
@ -84,11 +30,11 @@ test.t2
|
|||
|
||||
flush tables;
|
||||
handler a1 read first limit 9;
|
||||
Unknown table 'a1' in HANDLER
|
||||
ERROR 42S02: Unknown table 'a1' in HANDLER
|
||||
handler a2 read first limit 9;
|
||||
Unknown table 'a2' in HANDLER
|
||||
ERROR 42S02: Unknown table 'a2' in HANDLER
|
||||
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 a2;
|
||||
handler t2 open;
|
||||
|
@ -106,15 +52,15 @@ test.t2
|
|||
|
||||
flush table t1;
|
||||
handler a1 read first limit 9;
|
||||
Unknown table 'a1' in HANDLER
|
||||
ERROR 42S02: Unknown table 'a1' in HANDLER
|
||||
handler a2 read first limit 9;
|
||||
Unknown table 'a2' in HANDLER
|
||||
ERROR 42S02: Unknown table 'a2' in HANDLER
|
||||
handler t2 read first limit 9;
|
||||
table_id
|
||||
test.t2
|
||||
|
||||
flush table t2;
|
||||
handler t2 close;
|
||||
Unknown table 't2' in HANDLER
|
||||
ERROR 42S02: Unknown table 't2' in HANDLER
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
|
|
|
@ -576,7 +576,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
explain
|
||||
select min(a1) from t1 where a1 != 'KKK';
|
||||
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
|
||||
select max(a3) from t1 where a2 < 2 and a3 < 'SEA';
|
||||
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
|
||||
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
|
||||
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
|
||||
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;
|
||||
|
|
|
@ -109,9 +109,9 @@ count(*)
|
|||
1
|
||||
drop table t1;
|
||||
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 t2 ( id int(10) NOT NULL auto_increment, b varchar(25) default NULL, PRIMARY KEY (id), UNIQUE KEY b (b)) 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`)) 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)) 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`)) ENGINE=innodb;
|
||||
INSERT INTO t1 VALUES (1,'me');
|
||||
INSERT INTO t2 VALUES (1,'you');
|
||||
INSERT INTO t3 VALUES (2,1,1,2);
|
||||
|
@ -121,7 +121,7 @@ id a
|
|||
begin;
|
||||
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;
|
||||
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
|
||||
|
|
|
@ -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
|
||||
explain select count(*) from t1 where x in (1);
|
||||
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);
|
||||
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
|
||||
|
|
|
@ -4,7 +4,9 @@
|
|||
# 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);
|
||||
insert into t1 values(0);
|
||||
lock table t1 read;
|
||||
|
@ -12,68 +14,10 @@ flush table t1;
|
|||
check 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
|
||||
# (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 t2(table_id char(20) primary key);
|
||||
insert into t1 values ('test.t1');
|
||||
|
|
|
@ -64,9 +64,9 @@ drop table t1;
|
|||
# one statement roll back inside transation
|
||||
#
|
||||
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 t2 ( id int(10) NOT NULL auto_increment, b varchar(25) default NULL, PRIMARY KEY (id), UNIQUE KEY b (b)) 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`)) 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)) 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`)) ENGINE=innodb;
|
||||
INSERT INTO t1 VALUES (1,'me');
|
||||
INSERT INTO t2 VALUES (1,'you');
|
||||
INSERT INTO t3 VALUES (2,1,1,2);
|
||||
|
|
|
@ -161,13 +161,16 @@ vreplace()
|
|||
done
|
||||
}
|
||||
|
||||
for d in 4.1.XX-gpl 4.1.XX-pro 4.1.XX-classic
|
||||
do
|
||||
cd $BASE/InstallShield/$d/String\ Tables/0009-English
|
||||
vreplace value.shl
|
||||
cd ../../Setup\ Files/Compressed\ Files/Language\ Independent/OS\ Independent
|
||||
vreplace infolist.txt
|
||||
done
|
||||
if test -d $BASE/InstallShield
|
||||
then
|
||||
for d in 4.1.XX-gpl 4.1.XX-pro 4.1.XX-classic
|
||||
do
|
||||
cd $BASE/InstallShield/$d/String\ Tables/0009-English
|
||||
vreplace value.shl
|
||||
cd ../../Setup\ Files/Compressed\ Files/Language\ Independent/OS\ Independent
|
||||
vreplace infolist.txt
|
||||
done
|
||||
fi
|
||||
|
||||
#
|
||||
# Move all error message files to root directory
|
||||
|
|
|
@ -160,7 +160,6 @@ then
|
|||
INSERT INTO user (host,user) values ('localhost','');"
|
||||
else
|
||||
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 ('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);"
|
||||
|
|
|
@ -1583,18 +1583,12 @@ int ha_berkeley::index_last(byte * buf)
|
|||
int ha_berkeley::rnd_init(bool scan)
|
||||
{
|
||||
DBUG_ENTER("rnd_init");
|
||||
#ifdef NOT_YET
|
||||
DBUG_ASSERT(active_index == MAX_KEY);
|
||||
#endif
|
||||
current_row.flags=DB_DBT_REALLOC;
|
||||
DBUG_RETURN(index_init(primary_key));
|
||||
}
|
||||
|
||||
int ha_berkeley::rnd_end()
|
||||
{
|
||||
#ifdef NOT_YET
|
||||
DBUG_ASSERT(active_index == MAX_KEY);
|
||||
#endif
|
||||
return index_end();
|
||||
}
|
||||
|
||||
|
|
|
@ -716,9 +716,6 @@ int SQL_SELECT::test_quick_select(THD *thd, key_map keys_to_use,
|
|||
key++,idx++)
|
||||
{
|
||||
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;
|
||||
if (*key)
|
||||
{
|
||||
|
|
|
@ -2278,12 +2278,13 @@ add_key_fields(JOIN_TAB *stat,KEY_FIELD **key_fields,uint *and_level,
|
|||
case Item_func::OPTIMIZE_NONE:
|
||||
break;
|
||||
case Item_func::OPTIMIZE_KEY:
|
||||
// BETWEEN or IN
|
||||
// BETWEEN, IN, NOT
|
||||
if (cond_func->key_item()->real_item()->type() == Item::FIELD_ITEM &&
|
||||
!(cond_func->used_tables() & OUTER_REF_TABLE_BIT))
|
||||
add_key_field(key_fields,*and_level,cond_func,
|
||||
((Item_field*) (cond_func->key_item()->real_item()))->
|
||||
field, cond_func->argument_count() == 2,
|
||||
((Item_field*)(cond_func->key_item()->real_item()))->field,
|
||||
cond_func->argument_count() == 2 &&
|
||||
cond_func->functype() == Item_func::IN_FUNC,
|
||||
cond_func->arguments()+1, cond_func->argument_count()-1,
|
||||
usable_tables);
|
||||
break;
|
||||
|
@ -4128,6 +4129,8 @@ return_zero_rows(JOIN *join, select_result *result,TABLE_LIST *tables,
|
|||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
join->join_free(0);
|
||||
|
||||
if (send_row)
|
||||
{
|
||||
for (TABLE_LIST *table=tables; table ; table=table->next)
|
||||
|
|
|
@ -602,7 +602,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
|
|||
opt_table_alias
|
||||
|
||||
%type <table>
|
||||
table_ident table_ident_ref references
|
||||
table_ident table_ident_nodb references
|
||||
|
||||
%type <simple_string>
|
||||
remember_name remember_end opt_ident opt_db text_or_password
|
||||
|
@ -4874,9 +4874,8 @@ table_ident:
|
|||
| '.' 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 '.' ident { $$=new Table_ident(YYTHD, $1,$3,0);}
|
||||
;
|
||||
|
||||
IDENT_sys:
|
||||
|
@ -5410,14 +5409,14 @@ handler:
|
|||
if (!lex->current_select->add_table_to_list(lex->thd, $2, $4, 0))
|
||||
YYABORT;
|
||||
}
|
||||
| HANDLER_SYM table_ident_ref CLOSE_SYM
|
||||
| HANDLER_SYM table_ident_nodb CLOSE_SYM
|
||||
{
|
||||
LEX *lex= Lex;
|
||||
lex->sql_command = SQLCOM_HA_CLOSE;
|
||||
if (!lex->current_select->add_table_to_list(lex->thd, $2, 0, 0))
|
||||
YYABORT;
|
||||
}
|
||||
| HANDLER_SYM table_ident_ref READ_SYM
|
||||
| HANDLER_SYM table_ident_nodb READ_SYM
|
||||
{
|
||||
LEX *lex=Lex;
|
||||
lex->sql_command = SQLCOM_HA_READ;
|
||||
|
|
Loading…
Add table
Reference in a new issue