Removed not used functions from sql_cache
Added new tests to testsuite. extra/resolveip.c: Portabilit fix. mysql-test/create-test-result: Fix for new mysql-test-run mysql-test/r/query_cache.result: Updated benchmarks mysql-test/t/query_cache-master.opt: Updated benchmarks mysql-test/t/query_cache.test: Updated benchmarks sql/sql_cache.cc: Removed not used functions sql/sql_cache.h: Removed not used functions
This commit is contained in:
parent
8dca301f4b
commit
c03330d584
@ -22,9 +22,7 @@
|
||||
#include <m_ctype.h>
|
||||
#include <my_net.h>
|
||||
#include <my_sys.h>
|
||||
#ifndef SCO
|
||||
#include <m_string.h>
|
||||
#endif
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#ifndef HAVE_BROKEN_NETINET_INCLUDES
|
||||
@ -34,10 +32,16 @@
|
||||
#include <netdb.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)
|
||||
extern int h_errno;
|
||||
#endif
|
||||
|
||||
|
||||
static int silent=0;
|
||||
|
||||
static struct option long_options[] =
|
||||
|
@ -5,7 +5,7 @@
|
||||
# If you have a spare moment feel free to improve it - the right way is
|
||||
# to start mysqld yourself and run mysqltest -r
|
||||
|
||||
RESULT_DIR=r/3.23
|
||||
RESULT_DIR=r
|
||||
if [ -z $EDITOR] ; then
|
||||
EDITOR=vi
|
||||
fi
|
||||
@ -32,7 +32,7 @@ result_file=$RESULT_DIR/$test_name.result
|
||||
|
||||
touch $result_file
|
||||
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
|
||||
|
||||
|
@ -2,7 +2,7 @@ flush query cache;
|
||||
flush query cache;
|
||||
reset query cache;
|
||||
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);
|
||||
insert into t1 values (1),(2),(3);
|
||||
select * from t1;
|
||||
@ -173,6 +173,59 @@ show status like "Qcache_free_blocks";
|
||||
Variable_name Value
|
||||
Qcache_free_blocks 1
|
||||
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;
|
||||
create table t1 (a int not null);
|
||||
insert into t1 values (1),(2),(3);
|
||||
@ -264,7 +317,6 @@ insert into t2 select * from t1;
|
||||
insert into t1 select * from t2;
|
||||
insert into t2 select * from t1;
|
||||
insert into t1 select * from t2;
|
||||
drop table t2;
|
||||
show status like "Qcache_hits";
|
||||
Variable_name Value
|
||||
Qcache_hits 4
|
||||
@ -279,4 +331,48 @@ show status like "Qcache_queries_in_cache";
|
||||
Variable_name Value
|
||||
Qcache_queries_in_cache 2
|
||||
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;
|
||||
|
@ -1 +1 @@
|
||||
--set-variable=query_cache_size=1M
|
||||
--set-variable=query_cache_size=1355776
|
||||
|
@ -8,7 +8,7 @@ flush query cache; # This crashed in some versions
|
||||
flush query cache; # This crashed in some versions
|
||||
reset query cache;
|
||||
flush status;
|
||||
drop table if exists t1,t2,t3;
|
||||
drop table if exists t1,t2,t3,t11,t21;
|
||||
|
||||
#
|
||||
# First simple test
|
||||
@ -86,6 +86,53 @@ show status like "Qcache_free_blocks";
|
||||
flush query cache;
|
||||
show status like "Qcache_free_blocks";
|
||||
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 ...
|
||||
#
|
||||
@ -154,7 +201,6 @@ insert into t2 select * from t1; # 987
|
||||
insert into t1 select * from t2; # 1597
|
||||
insert into t2 select * from t1; # 2584
|
||||
insert into t1 select * from t2; # 4181
|
||||
drop table t2;
|
||||
|
||||
show status like "Qcache_hits";
|
||||
disable_result_log;
|
||||
@ -167,6 +213,50 @@ enable_result_log;
|
||||
show status like "Qcache_hits";
|
||||
show status like "Qcache_queries_in_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;
|
||||
|
||||
# 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)
|
||||
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)
|
||||
{
|
||||
Query_cache_block_table *list_root = table_block->table(0);
|
||||
|
@ -268,8 +268,6 @@ protected:
|
||||
Query_cache_block *query_block);
|
||||
void invalidate_table(TABLE_LIST *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);
|
||||
my_bool register_all_tables(Query_cache_block *block,
|
||||
TABLE_LIST *tables_used,
|
||||
|
Loading…
x
Reference in New Issue
Block a user