Commit 61be9477 authored by monty@hundin.mysql.fi's avatar monty@hundin.mysql.fi

Removed not used functions from sql_cache

Added new tests to testsuite.
parent 0a2835a0
...@@ -22,9 +22,7 @@ ...@@ -22,9 +22,7 @@
#include <m_ctype.h> #include <m_ctype.h>
#include <my_net.h> #include <my_net.h>
#include <my_sys.h> #include <my_sys.h>
#ifndef SCO
#include <m_string.h> #include <m_string.h>
#endif
#include <sys/types.h> #include <sys/types.h>
#include <sys/socket.h> #include <sys/socket.h>
#ifndef HAVE_BROKEN_NETINET_INCLUDES #ifndef HAVE_BROKEN_NETINET_INCLUDES
...@@ -34,10 +32,16 @@ ...@@ -34,10 +32,16 @@
#include <netdb.h> #include <netdb.h>
#include <getopt.h> #include <getopt.h>
#ifdef SCO
#undef h_errno
#define h_errno errno
#endif
#if !defined(_AIX) && !defined(HAVE_UNIXWARE7_THREADS) && !defined(HAVE_UNIXWARE7_POSIX) && !defined(h_errno) #if !defined(_AIX) && !defined(HAVE_UNIXWARE7_THREADS) && !defined(HAVE_UNIXWARE7_POSIX) && !defined(h_errno)
extern int h_errno; extern int h_errno;
#endif #endif
static int silent=0; static int silent=0;
static struct option long_options[] = static struct option long_options[] =
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
# If you have a spare moment feel free to improve it - the right way is # If you have a spare moment feel free to improve it - the right way is
# to start mysqld yourself and run mysqltest -r # to start mysqld yourself and run mysqltest -r
RESULT_DIR=r/3.23 RESULT_DIR=r
if [ -z $EDITOR] ; then if [ -z $EDITOR] ; then
EDITOR=vi EDITOR=vi
fi fi
...@@ -32,7 +32,7 @@ result_file=$RESULT_DIR/$test_name.result ...@@ -32,7 +32,7 @@ result_file=$RESULT_DIR/$test_name.result
touch $result_file touch $result_file
echo "Running the test case against empty file, will fail, but don't worry" echo "Running the test case against empty file, will fail, but don't worry"
./mysql-test-run $test_name ./mysql-test-run --do-test=$test_name
reject_file=$result_file.reject reject_file=$result_file.reject
......
...@@ -2,7 +2,7 @@ flush query cache; ...@@ -2,7 +2,7 @@ flush query cache;
flush query cache; flush query cache;
reset query cache; reset query cache;
flush status; flush status;
drop table if exists t1,t2,t3; drop table if exists t1,t2,t3,t11,t21;
create table t1 (a int not null); create table t1 (a int not null);
insert into t1 values (1),(2),(3); insert into t1 values (1),(2),(3);
select * from t1; select * from t1;
...@@ -173,6 +173,59 @@ show status like "Qcache_free_blocks"; ...@@ -173,6 +173,59 @@ show status like "Qcache_free_blocks";
Variable_name Value Variable_name Value
Qcache_free_blocks 1 Qcache_free_blocks 1
drop table t1, t2; drop table t1, t2;
create table t1 (a text not null);
create table t11 (a text not null);
create table t2 (a text not null);
create table t21 (a text not null);
create table t3 (a text not null);
insert into t1 values("1111111111111111111111111111111111111111111111111111");
insert into t11 select * from t1;
insert into t21 select * from t1;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t3 select * from t1;
insert into t3 select * from t2;
insert into t3 select * from t1;
select * from t11;
select * from t21;
show status like "Qcache_total_blocks";
Variable_name Value
Qcache_total_blocks 7
show status like "Qcache_free_blocks";
Variable_name Value
Qcache_free_blocks 1
insert into t11 values("");
select * from t3;
show status like "Qcache_total_blocks";
Variable_name Value
Qcache_total_blocks 8
show status like "Qcache_free_blocks";
Variable_name Value
Qcache_free_blocks 1
flush query cache;
show status like "Qcache_total_blocks";
Variable_name Value
Qcache_total_blocks 7
show status like "Qcache_free_blocks";
Variable_name Value
Qcache_free_blocks 1
drop table t1, t2, t3, t11, t21;
set sql_query_cache_type=demand; set sql_query_cache_type=demand;
create table t1 (a int not null); create table t1 (a int not null);
insert into t1 values (1),(2),(3); insert into t1 values (1),(2),(3);
...@@ -264,7 +317,6 @@ insert into t2 select * from t1; ...@@ -264,7 +317,6 @@ insert into t2 select * from t1;
insert into t1 select * from t2; insert into t1 select * from t2;
insert into t2 select * from t1; insert into t2 select * from t1;
insert into t1 select * from t2; insert into t1 select * from t2;
drop table t2;
show status like "Qcache_hits"; show status like "Qcache_hits";
Variable_name Value Variable_name Value
Qcache_hits 4 Qcache_hits 4
...@@ -279,4 +331,48 @@ show status like "Qcache_queries_in_cache"; ...@@ -279,4 +331,48 @@ show status like "Qcache_queries_in_cache";
Variable_name Value Variable_name Value
Qcache_queries_in_cache 2 Qcache_queries_in_cache 2
reset query cache; reset query cache;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
select * from t1;
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 0
drop table t1,t2;
create database foo;
create table foo.t1 (i int not null auto_increment, a int, primary key (i));
insert into foo.t1 (a) values (1);
select * from foo.t1 where i is null;
i a
1 1
select * from foo.t1;
i a
1 1
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 1
drop database foo;
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 0
create table t1 (a char(1) not null);
insert into t1 values("");
select * from t1;
a
set CHARACTER SET cp1251_koi8;
select * from t1;
a
set CHARACTER SET DEFAULT;
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 2
drop table t1; drop table t1;
--set-variable=query_cache_size=1M --set-variable=query_cache_size=1355776
...@@ -8,7 +8,7 @@ flush query cache; # This crashed in some versions ...@@ -8,7 +8,7 @@ flush query cache; # This crashed in some versions
flush query cache; # This crashed in some versions flush query cache; # This crashed in some versions
reset query cache; reset query cache;
flush status; flush status;
drop table if exists t1,t2,t3; drop table if exists t1,t2,t3,t11,t21;
# #
# First simple test # First simple test
...@@ -86,6 +86,53 @@ show status like "Qcache_free_blocks"; ...@@ -86,6 +86,53 @@ show status like "Qcache_free_blocks";
flush query cache; flush query cache;
show status like "Qcache_free_blocks"; show status like "Qcache_free_blocks";
drop table t1, t2; drop table t1, t2;
# With join results...
create table t1 (a text not null);
create table t11 (a text not null);
create table t2 (a text not null);
create table t21 (a text not null);
create table t3 (a text not null);
insert into t1 values("1111111111111111111111111111111111111111111111111111");
insert into t11 select * from t1;
insert into t21 select * from t1;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
#results of t3 must be > 0.5Mb
insert into t3 select * from t1;
insert into t3 select * from t2;
insert into t3 select * from t1;
disable_result_log;
select * from t11;
select * from t21;
enable_result_log;
show status like "Qcache_total_blocks";
show status like "Qcache_free_blocks";
disable_result_log;
insert into t11 values("");
select * from t3;
enable_result_log;
show status like "Qcache_total_blocks";
show status like "Qcache_free_blocks";
flush query cache;
show status like "Qcache_total_blocks";
show status like "Qcache_free_blocks";
drop table t1, t2, t3, t11, t21;
# #
# SELECT SQL_CACHE ... # SELECT SQL_CACHE ...
# #
...@@ -154,7 +201,6 @@ insert into t2 select * from t1; # 987 ...@@ -154,7 +201,6 @@ insert into t2 select * from t1; # 987
insert into t1 select * from t2; # 1597 insert into t1 select * from t2; # 1597
insert into t2 select * from t1; # 2584 insert into t2 select * from t1; # 2584
insert into t1 select * from t2; # 4181 insert into t1 select * from t2; # 4181
drop table t2;
show status like "Qcache_hits"; show status like "Qcache_hits";
disable_result_log; disable_result_log;
...@@ -167,6 +213,50 @@ enable_result_log; ...@@ -167,6 +213,50 @@ enable_result_log;
show status like "Qcache_hits"; show status like "Qcache_hits";
show status like "Qcache_queries_in_cache"; show status like "Qcache_queries_in_cache";
reset query cache; reset query cache;
#
# Query bigger then query_cache_limit
#
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
disable_result_log;
select * from t1;
enable_result_log;
show status like "Qcache_queries_in_cache";
drop table t1,t2;
#
# noncachable ODBC work around (and prepare cache for drop database)
#
create database foo;
create table foo.t1 (i int not null auto_increment, a int, primary key (i));
insert into foo.t1 (a) values (1);
select * from foo.t1 where i is null;
#
# drop db
#
select * from foo.t1;
show status like "Qcache_queries_in_cache";
drop database foo;
show status like "Qcache_queries_in_cache";
#
# Charset convertion (cp1251_koi8 always present)
#
create table t1 (a char(1) not null);
insert into t1 values("");
select * from t1;
set CHARACTER SET cp1251_koi8;
select * from t1;
set CHARACTER SET DEFAULT;
show status like "Qcache_queries_in_cache";
drop table t1; drop table t1;
# The following tests can't be done as the values differen on 32 and 64 bit # The following tests can't be done as the values differen on 32 and 64 bit
......
...@@ -1737,18 +1737,6 @@ void Query_cache::invalidate_table(TABLE *table) ...@@ -1737,18 +1737,6 @@ void Query_cache::invalidate_table(TABLE *table)
invalidate_table(table_block); invalidate_table(table_block);
} }
void Query_cache::invalidate_table_in_db(Query_cache_block *table_block,
char *db)
{
/*
table key consist of data_base_name + '\0' + table_name +'\0'...
=> we may use strcmp to compare database names.
*/
if (strcmp(db, (char*)(table_block->table()->db())) == 0)
invalidate_table(table_block);
}
void Query_cache::invalidate_table(Query_cache_block *table_block) void Query_cache::invalidate_table(Query_cache_block *table_block)
{ {
Query_cache_block_table *list_root = table_block->table(0); Query_cache_block_table *list_root = table_block->table(0);
......
...@@ -268,8 +268,6 @@ protected: ...@@ -268,8 +268,6 @@ protected:
Query_cache_block *query_block); Query_cache_block *query_block);
void invalidate_table(TABLE_LIST *table); void invalidate_table(TABLE_LIST *table);
void invalidate_table(TABLE *table); void invalidate_table(TABLE *table);
void invalidate_table_in_db(Query_cache_block *table_block,
char *db);
void invalidate_table(Query_cache_block *table_block); void invalidate_table(Query_cache_block *table_block);
my_bool register_all_tables(Query_cache_block *block, my_bool register_all_tables(Query_cache_block *block,
TABLE_LIST *tables_used, TABLE_LIST *tables_used,
......
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