Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
54662b44
Commit
54662b44
authored
Jul 04, 2005
by
bell@sanja.is.com.ua
Browse files
Options
Browse Files
Download
Plain Diff
merge
parents
b49b5805
28a93877
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
93 additions
and
2 deletions
+93
-2
mysql-test/r/query_cache.result
mysql-test/r/query_cache.result
+53
-0
mysql-test/t/query_cache.test
mysql-test/t/query_cache.test
+25
-0
sql/sql_cache.cc
sql/sql_cache.cc
+15
-2
No files found.
mysql-test/r/query_cache.result
View file @
54662b44
...
...
@@ -1005,5 +1005,58 @@ Qcache_inserts 0
show status like "Qcache_hits";
Variable_name Value
Qcache_hits 0
drop table t1;
create table t1 (a int);
insert into t1 values (1);
reset query cache;
flush status;
select * from (select * from t1) a;
a
1
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 1
show status like "Qcache_inserts";
Variable_name Value
Qcache_inserts 1
show status like "Qcache_hits";
Variable_name Value
Qcache_hits 0
select * from (select * from t1) a;
a
1
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 1
show status like "Qcache_inserts";
Variable_name Value
Qcache_inserts 1
show status like "Qcache_hits";
Variable_name Value
Qcache_hits 1
insert into t1 values (2);
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 0
show status like "Qcache_inserts";
Variable_name Value
Qcache_inserts 1
show status like "Qcache_hits";
Variable_name Value
Qcache_hits 1
select * from (select * from t1) a;
a
1
2
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 1
show status like "Qcache_inserts";
Variable_name Value
Qcache_inserts 2
show status like "Qcache_hits";
Variable_name Value
Qcache_hits 1
drop table t1;
set GLOBAL query_cache_size=0;
mysql-test/t/query_cache.test
View file @
54662b44
...
...
@@ -749,4 +749,29 @@ show status like "Qcache_inserts";
show
status
like
"Qcache_hits"
;
drop
table
t1
;
#
# queries with subquery in the FROM clause (BUG#11522)
#
create
table
t1
(
a
int
);
insert
into
t1
values
(
1
);
reset
query
cache
;
flush
status
;
select
*
from
(
select
*
from
t1
)
a
;
show
status
like
"Qcache_queries_in_cache"
;
show
status
like
"Qcache_inserts"
;
show
status
like
"Qcache_hits"
;
select
*
from
(
select
*
from
t1
)
a
;
show
status
like
"Qcache_queries_in_cache"
;
show
status
like
"Qcache_inserts"
;
show
status
like
"Qcache_hits"
;
insert
into
t1
values
(
2
);
show
status
like
"Qcache_queries_in_cache"
;
show
status
like
"Qcache_inserts"
;
show
status
like
"Qcache_hits"
;
select
*
from
(
select
*
from
t1
)
a
;
show
status
like
"Qcache_queries_in_cache"
;
show
status
like
"Qcache_inserts"
;
show
status
like
"Qcache_hits"
;
drop
table
t1
;
set
GLOBAL
query_cache_size
=
0
;
sql/sql_cache.cc
View file @
54662b44
...
...
@@ -2114,6 +2114,13 @@ my_bool Query_cache::register_all_tables(Query_cache_block *block,
for
(
n
=
0
;
tables_used
;
tables_used
=
tables_used
->
next
,
n
++
,
block_table
++
)
{
if
(
tables_used
->
derived
)
{
DBUG_PRINT
(
"qcache"
,
(
"derived table skipped"
));
n
--
;
block_table
--
;
continue
;
}
DBUG_PRINT
(
"qcache"
,
(
"table %s, db %s, openinfo at 0x%lx, keylen %u, key at 0x%lx"
,
tables_used
->
real_name
,
tables_used
->
db
,
...
...
@@ -2671,7 +2678,8 @@ TABLE_COUNTER_TYPE Query_cache::is_cacheable(THD *thd, uint32 query_len,
table_alias_charset used here because it depends of
lower_case_table_names variable
*/
if
(
tables_used
->
table
->
tmp_table
!=
NO_TMP_TABLE
||
if
((
tables_used
->
table
->
tmp_table
!=
NO_TMP_TABLE
&&
!
tables_used
->
derived
)
||
(
*
tables_type
&
HA_CACHE_TBL_NOCACHE
)
||
(
tables_used
->
db_length
==
5
&&
my_strnncoll
(
table_alias_charset
,
(
uchar
*
)
tables_used
->
db
,
6
,
...
...
@@ -2682,7 +2690,12 @@ TABLE_COUNTER_TYPE Query_cache::is_cacheable(THD *thd, uint32 query_len,
other non-cacheable table(s)"
));
DBUG_RETURN
(
0
);
}
if
(
tables_used
->
table
->
db_type
==
DB_TYPE_MRG_MYISAM
)
if
(
tables_used
->
derived
)
{
table_count
--
;
DBUG_PRINT
(
"qcache"
,
(
"derived table skipped"
));
}
else
if
(
tables_used
->
table
->
db_type
==
DB_TYPE_MRG_MYISAM
)
{
ha_myisammrg
*
handler
=
(
ha_myisammrg
*
)
tables_used
->
table
->
file
;
MYRG_INFO
*
file
=
handler
->
myrg_info
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment