summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mysql-test/r/flush_table.result68
-rw-r--r--mysql-test/r/func_group.result4
-rw-r--r--mysql-test/r/innodb_cache.result8
-rw-r--r--mysql-test/r/range.result2
-rw-r--r--mysql-test/t/flush_table.test62
-rw-r--r--mysql-test/t/innodb_cache.test6
-rw-r--r--sql/ha_berkeley.cc6
-rw-r--r--sql/sql_select.cc7
-rw-r--r--sql/sql_yacc.yy9
9 files changed, 28 insertions, 144 deletions
diff --git a/mysql-test/r/flush_table.result b/mysql-test/r/flush_table.result
index cfba428e2e8..257f69fa6d9 100644
--- a/mysql-test/r/flush_table.result
+++ b/mysql-test/r/flush_table.result
@@ -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;
diff --git a/mysql-test/r/func_group.result b/mysql-test/r/func_group.result
index 06259ff4931..35b947c21fb 100644
--- a/mysql-test/r/func_group.result
+++ b/mysql-test/r/func_group.result
@@ -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;
diff --git a/mysql-test/r/innodb_cache.result b/mysql-test/r/innodb_cache.result
index bf981170f7d..ec43cbe10b2 100644
--- a/mysql-test/r/innodb_cache.result
+++ b/mysql-test/r/innodb_cache.result
@@ -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
diff --git a/mysql-test/r/range.result b/mysql-test/r/range.result
index 2f98b05779e..6df76da91d8 100644
--- a/mysql-test/r/range.result
+++ b/mysql-test/r/range.result
@@ -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
diff --git a/mysql-test/t/flush_table.test b/mysql-test/t/flush_table.test
index ad81f266afc..8bee94cf21f 100644
--- a/mysql-test/t/flush_table.test
+++ b/mysql-test/t/flush_table.test
@@ -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;
@@ -13,67 +15,9 @@ 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');
diff --git a/mysql-test/t/innodb_cache.test b/mysql-test/t/innodb_cache.test
index a81aca9b494..101dde37f89 100644
--- a/mysql-test/t/innodb_cache.test
+++ b/mysql-test/t/innodb_cache.test
@@ -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);
diff --git a/sql/ha_berkeley.cc b/sql/ha_berkeley.cc
index ecdf4c60d3e..4bed33af15b 100644
--- a/sql/ha_berkeley.cc
+++ b/sql/ha_berkeley.cc
@@ -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();
}
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 26ee225262b..2f8ede4b4cb 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -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;
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index 6e88247bf32..c971abedfca 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -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;