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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
2a32eaf8
Commit
2a32eaf8
authored
Mar 23, 2002
by
bell@sanja.is.com.ua
Browse files
Options
Browse Files
Download
Plain Diff
Merge sanja.is.com.ua:/home/bell/mysql/mysql-4.0
into sanja.is.com.ua:/home/bell/mysql/work-qc-4.0
parents
d2b4eb3e
c5d95b5e
Changes
21
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
114 additions
and
43 deletions
+114
-43
configure.in
configure.in
+12
-0
include/my_global.h
include/my_global.h
+8
-0
mysql-test/include/have_query_cache.inc
mysql-test/include/have_query_cache.inc
+4
-0
mysql-test/r/flush.result
mysql-test/r/flush.result
+0
-5
mysql-test/r/have_query_cache.require
mysql-test/r/have_query_cache.require
+2
-0
mysql-test/t/flush.test
mysql-test/t/flush.test
+0
-8
mysql-test/t/grant_cache.test
mysql-test/t/grant_cache.test
+2
-0
mysql-test/t/query_cache.test
mysql-test/t/query_cache.test
+2
-0
sql/ha_myisammrg.cc
sql/ha_myisammrg.cc
+1
-1
sql/handler.cc
sql/handler.cc
+2
-0
sql/mysql_priv.h
sql/mysql_priv.h
+26
-0
sql/mysqld.cc
sql/mysqld.cc
+22
-7
sql/net_serv.cc
sql/net_serv.cc
+3
-1
sql/sql_cache.cc
sql/sql_cache.cc
+3
-0
sql/sql_class.cc
sql/sql_class.cc
+7
-3
sql/sql_db.cc
sql/sql_db.cc
+1
-1
sql/sql_delete.cc
sql/sql_delete.cc
+3
-3
sql/sql_insert.cc
sql/sql_insert.cc
+5
-5
sql/sql_parse.cc
sql/sql_parse.cc
+7
-5
sql/sql_table.cc
sql/sql_table.cc
+2
-2
sql/sql_update.cc
sql/sql_update.cc
+2
-2
No files found.
configure.in
View file @
2a32eaf8
...
...
@@ -1797,6 +1797,18 @@ AC_ARG_WITH(embedded-server,
[
with_embedded_server
=
no]
)
AC_ARG_WITH
(
query_cache,
[
--without-query-cache
Don
't build query cache in embedded server.],
[with_embedded_server=$withval],
[with_embedded_server=yes]
)
if test "$with_embedded_server" = "yes"
then
CFLAGS="$CFLAGS -DHAVE_QUERY_CACHE"
CXXFLAGS="$CXXFLAGS -DHAVE_QUERY_CACHE"
fi
AC_ARG_WITH(extra-tools,
[ --without-extra-tools Skip building utilites in the tools directory.],
[with_tools=$withval],
...
...
include/my_global.h
View file @
2a32eaf8
...
...
@@ -1023,4 +1023,12 @@ typedef union {
#define C_MODE_END
#endif
/*
Now if query is taken off then tests with query cache fails
SANJA TODO: remove this when problem with mysql-test will be solved
*/
#ifdef MYSQL_SERVER
#define HAVE_QUERY_CACHE
#endif
#endif
/* _global_h */
mysql-test/include/have_query_cache.inc
0 → 100644
View file @
2a32eaf8
--
require
r
/
have_query_cache
.
require
disable_query_log
;
show
variables
like
"have_query_cache"
;
enable_query_log
;
mysql-test/r/flush.result
View file @
2a32eaf8
...
...
@@ -28,8 +28,3 @@ select * from t1;
n
345
drop table t1;
flush query cache;
reset query cache;
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 0
mysql-test/r/have_query_cache.require
0 → 100644
View file @
2a32eaf8
Variable_name Value
have_query_cache YES
mysql-test/t/flush.test
View file @
2a32eaf8
...
...
@@ -67,11 +67,3 @@ insert into t1 values (345);
select
*
from
t1
;
drop
table
t1
;
#
# Test that QUERY CACHE commands doesn't core dump.
# (Normally we don't have a cache active at this point)
#
flush
query
cache
;
reset
query
cache
;
show
status
like
"Qcache_queries_in_cache"
;
mysql-test/t/grant_cache.test
View file @
2a32eaf8
--
source
include
/
have_query_cache
.
inc
#
# Test grants with query cache
#
...
...
mysql-test/t/query_cache.test
View file @
2a32eaf8
--
source
include
/
have_query_cache
.
inc
#
# Tests with query cache
#
...
...
sql/ha_myisammrg.cc
View file @
2a32eaf8
...
...
@@ -46,7 +46,7 @@ int ha_myisammrg::open(const char *name, int mode, uint test_if_locked)
return
(
my_errno
?
my_errno
:
-
1
);
}
DBUG_PRINT
(
"info"
,
(
"ha_myisammrg::open myrg_extrafunc..."
))
myrg_extrafunc
(
file
,
&
query_cache_invalidate_by_MyISAM_filename
);
myrg_extrafunc
(
file
,
query_cache_invalidate_by_MyISAM_filename_ref
);
if
(
!
(
test_if_locked
==
HA_OPEN_WAIT_IF_LOCKED
||
test_if_locked
==
HA_OPEN_ABORT_IF_LOCKED
))
myrg_extra
(
file
,
HA_EXTRA_NO_WAIT_LOCK
);
...
...
sql/handler.cc
View file @
2a32eaf8
...
...
@@ -309,8 +309,10 @@ int ha_commit_trans(THD *thd, THD_TRANS* trans)
}
#endif
#ifdef HAVE_QUERY_CACHE
if
(
transaction_commited
)
query_cache
.
invalidate
(
thd
->
transaction
.
changed_tables
);
#endif
/*HAVE_QUERY_CACHE*/
if
(
error
&&
trans
==
&
thd
->
transaction
.
all
&&
mysql_bin_log
.
is_open
())
sql_print_error
(
"Error: Got error during commit; Binlog is not up to date!"
);
thd
->
tx_isolation
=
thd
->
session_tx_isolation
;
...
...
sql/mysql_priv.h
View file @
2a32eaf8
...
...
@@ -251,7 +251,33 @@ inline THD *_current_thd(void)
#include "item.h"
#include "sql_class.h"
#include "opt_range.h"
#ifdef HAVE_QUERY_CACHE
#include "sql_cache.h"
#define query_cache_store_query(A, B) query_cache.store_query(A, B)
#define query_cache_destroy() query_cache.destroy()
#define query_cache_result_size_limit(A) query_cache.result_size_limit(A)
#define query_cache_resize(A) query_cache.resize(A)
#define query_cache_invalidate3(A, B, C) query_cache.invalidate(A, B, C)
#define query_cache_invalidate1(A) query_cache.invalidate(A)
#define query_cache_send_result_to_client(A, B, C) \
query_cache.send_result_to_client(A, B, C)
#define query_cache_invalidate_by_MyISAM_filename_ref \
&query_cache_invalidate_by_MyISAM_filename
#else
#define query_cache_store_query(A, B)
#define query_cache_destroy()
#define query_cache_result_size_limit(A)
#define query_cache_resize(A)
#define query_cache_invalidate3(A, B, C)
#define query_cache_invalidate1(A)
#define query_cache_send_result_to_client(A, B, C) 0
#define query_cache_invalidate_by_MyISAM_filename_ref NULL
#define query_cache_abort(A)
#define query_cache_end_of_result(A)
#define query_cache_invalidate_by_MyISAM_filename_ref NULL
#endif
/*HAVE_QUERY_CACHE*/
int
mysql_create_db
(
THD
*
thd
,
char
*
db
,
uint
create_info
,
bool
silent
);
int
mysql_rm_db
(
THD
*
thd
,
char
*
db
,
bool
if_exists
,
bool
silent
);
...
...
sql/mysqld.cc
View file @
2a32eaf8
...
...
@@ -209,7 +209,11 @@ SHOW_COMP_OPTION have_openssl=SHOW_OPTION_YES;
SHOW_COMP_OPTION
have_openssl
=
SHOW_OPTION_NO
;
#endif
SHOW_COMP_OPTION
have_symlink
=
SHOW_OPTION_YES
;
#ifdef HAVE_QUERY_CACHE
SHOW_COMP_OPTION
have_query_cache
=
SHOW_OPTION_YES
;
#else
SHOW_COMP_OPTION
have_query_cache
=
SHOW_OPTION_NO
;
#endif
bool
opt_skip_slave_start
=
0
;
// If set, slave is not autostarted
static
bool
opt_do_pstack
=
0
;
...
...
@@ -276,7 +280,11 @@ ulong keybuff_size,sortbuff_size,max_item_sort_length,table_cache_size,
ulong
com_stat
[(
uint
)
SQLCOM_END
],
com_other
;
ulong
slave_net_timeout
;
ulong
thread_cache_size
=
0
,
binlog_cache_size
=
0
,
max_binlog_cache_size
=
0
;
ulong
query_cache_size
=
0
,
query_cache_limit
=
0
,
query_cache_startup_type
=
1
;
#ifdef HAVE_QUERY_CACHE
ulong
query_cache_size
=
0
,
query_cache_limit
=
0
,
query_cache_startup_type
=
1
;
Query_cache
query_cache
;
#endif
volatile
ulong
cached_thread_count
=
0
;
// replication parameters, if master_host is not NULL, we are a slave
...
...
@@ -370,8 +378,6 @@ pthread_mutex_t LOCK_mysql_create_db, LOCK_Acl, LOCK_open, LOCK_thread_count,
LOCK_server_id
,
LOCK_user_conn
,
LOCK_slave_list
,
LOCK_active_mi
;
Query_cache
query_cache
;
pthread_cond_t
COND_refresh
,
COND_thread_count
,
COND_binlog_update
,
COND_slave_stopped
,
COND_slave_start
;
pthread_cond_t
COND_thread_cache
,
COND_flush_thread_cache
;
...
...
@@ -765,7 +771,7 @@ void clean_up(bool print_message)
bitmap_free
(
&
slave_error_mask
);
acl_free
(
1
);
grant_free
();
query_cache
.
destroy
();
query_cache
_
destroy
();
table_cache_free
();
hostname_cache_free
();
item_user_lock_free
();
...
...
@@ -1870,8 +1876,8 @@ int main(int argc, char **argv)
server_init
();
table_cache_init
();
hostname_cache_init
();
query_cache
.
result_size_limit
(
query_cache_limit
);
query_cache
.
resize
(
query_cache_size
);
query_cache
_
result_size_limit
(
query_cache_limit
);
query_cache
_
resize
(
query_cache_size
);
randominit
(
&
sql_rand
,(
ulong
)
start_time
,(
ulong
)
start_time
/
2
);
reset_floating_point_exceptions
();
init_thr_lock
();
...
...
@@ -3001,12 +3007,14 @@ CHANGEABLE_VAR changeable_vars[] = {
0
,
0
,
65535
,
0
,
1
},
{
"query_buffer_size"
,
(
long
*
)
&
query_buff_size
,
0
,
MALLOC_OVERHEAD
,
(
long
)
~
0
,
MALLOC_OVERHEAD
,
IO_SIZE
},
#ifdef HAVE_QUERY_CACHE
{
"query_cache_limit"
,
(
long
*
)
&
query_cache_limit
,
1024
*
1024L
,
0
,
ULONG_MAX
,
0
,
1
},
{
"query_cache_size"
,
(
long
*
)
&
query_cache_size
,
0
,
0
,
ULONG_MAX
,
0
,
1
},
{
"query_cache_startup_type"
,(
long
*
)
&
query_cache_startup_type
,
1
,
0
,
2
,
0
,
1
},
#endif
/*HAVE_QUERY_CACHE*/
{
"record_buffer"
,
(
long
*
)
&
my_default_record_cache_size
,
128
*
1024L
,
IO_SIZE
*
2
+
MALLOC_OVERHEAD
,
~
0L
,
MALLOC_OVERHEAD
,
IO_SIZE
},
{
"record_rnd_buffer"
,
(
long
*
)
&
record_rnd_cache_size
,
...
...
@@ -3068,6 +3076,7 @@ struct show_var_st init_vars[]= {
{
"have_raid"
,
(
char
*
)
&
have_raid
,
SHOW_HAVE
},
{
"have_symlink"
,
(
char
*
)
&
have_symlink
,
SHOW_HAVE
},
{
"have_openssl"
,
(
char
*
)
&
have_openssl
,
SHOW_HAVE
},
{
"have_query_cache"
,
(
char
*
)
&
have_query_cache
,
SHOW_HAVE
},
{
"init_file"
,
(
char
*
)
&
opt_init_file
,
SHOW_CHAR_PTR
},
#ifdef HAVE_INNOBASE_DB
{
"innodb_additional_mem_pool_size"
,
(
char
*
)
&
innobase_additional_mem_pool_size
,
SHOW_LONG
},
...
...
@@ -3135,9 +3144,11 @@ struct show_var_st init_vars[]= {
{
"record_rnd_buffer"
,
(
char
*
)
&
record_rnd_cache_size
,
SHOW_LONG
},
{
"rpl_recovery_rank"
,
(
char
*
)
&
rpl_recovery_rank
,
SHOW_LONG
},
{
"query_buffer_size"
,
(
char
*
)
&
query_buff_size
,
SHOW_LONG
},
#ifdef HAVE_QUERY_CACHE
{
"query_cache_limit"
,
(
char
*
)
&
query_cache
.
query_cache_limit
,
SHOW_LONG
},
{
"query_cache_size"
,
(
char
*
)
&
query_cache
.
query_cache_size
,
SHOW_LONG
},
{
"query_cache_startup_type"
,(
char
*
)
&
query_cache_startup_type
,
SHOW_LONG
},
#endif
/*HAVE_QUERY_CACHE*/
{
"safe_show_database"
,
(
char
*
)
&
opt_safe_show_db
,
SHOW_BOOL
},
{
"server_id"
,
(
char
*
)
&
server_id
,
SHOW_LONG
},
{
"slave_net_timeout"
,
(
char
*
)
&
slave_net_timeout
,
SHOW_LONG
},
...
...
@@ -3268,6 +3279,7 @@ struct show_var_st status_vars[]= {
{
"Open_streams"
,
(
char
*
)
&
my_stream_opened
,
SHOW_INT_CONST
},
{
"Opened_tables"
,
(
char
*
)
&
opened_tables
,
SHOW_LONG
},
{
"Questions"
,
(
char
*
)
0
,
SHOW_QUESTION
},
#ifdef HAVE_QUERY_CACHE
{
"Qcache_queries_in_cache"
,
(
char
*
)
&
query_cache
.
queries_in_cache
,
SHOW_LONG_CONST
},
{
"Qcache_inserts"
,
(
char
*
)
&
query_cache
.
inserts
,
SHOW_LONG
},
{
"Qcache_hits"
,
(
char
*
)
&
query_cache
.
hits
,
SHOW_LONG
},
...
...
@@ -3278,6 +3290,7 @@ struct show_var_st status_vars[]= {
SHOW_LONG_CONST
},
{
"Qcache_total_blocks"
,
(
char
*
)
&
query_cache
.
total_blocks
,
SHOW_LONG_CONST
},
#endif
/*HAVE_QUERY_CACHE*/
{
"Rpl_status"
,
(
char
*
)
0
,
SHOW_RPL_STATUS
},
{
"Select_full_join"
,
(
char
*
)
&
select_full_join_count
,
SHOW_LONG
},
{
"Select_full_range_join"
,
(
char
*
)
&
select_full_range_join_count
,
SHOW_LONG
},
...
...
@@ -3883,7 +3896,9 @@ static void get_options(int argc,char **argv)
my_use_symdir
=
0
;
have_symlink
=
SHOW_OPTION_DISABLED
;
ha_open_options
&=
~
HA_OPEN_ABORT_IF_CRASHED
;
#ifdef HAVE_QUERY_CACHE
query_cache_size
=
0
;
#endif
break
;
case
(
int
)
OPT_SAFE
:
opt_specialflag
|=
SPECIAL_SAFE_MODE
;
...
...
sql/net_serv.cc
View file @
2a32eaf8
...
...
@@ -329,9 +329,11 @@ net_real_write(NET *net,const char *packet,ulong len)
my_bool
net_blocking
=
vio_is_blocking
(
net
->
vio
);
DBUG_ENTER
(
"net_real_write"
);
#ifdef MYSQL_SERVER
#ifdef MYSQL_SERVER
#ifdef HAVE_QUERY_CACHE
if
(
net
->
query_cache_query
!=
0
)
query_cache_insert
(
net
,
packet
,
len
);
#endif
#endif
if
(
net
->
error
==
2
)
...
...
sql/sql_cache.cc
View file @
2a32eaf8
...
...
@@ -281,6 +281,7 @@ TODO list:
*/
#include "mysql_priv.h"
#ifdef HAVE_QUERY_CACHE
#include <m_ctype.h>
#include <my_dir.h>
#include <hash.h>
...
...
@@ -3460,3 +3461,5 @@ my_bool Query_cache::in_table_list(Query_cache_block_table * root,
}
#endif
/* DBUG_OFF */
#endif
/*HAVE_QUERY_CACHE*/
sql/sql_class.cc
View file @
2a32eaf8
...
...
@@ -122,10 +122,14 @@ THD::THD():user_time(0),fatal_error(0),last_insert_id_used(0),
server_id
=
::
server_id
;
slave_net
=
0
;
log_pos
=
0
;
server_status
=
SERVER_STATUS_AUTOCOMMIT
;
server_status
=
SERVER_STATUS_AUTOCOMMIT
;
update_lock_default
=
low_priority_updates
?
TL_WRITE_LOW_PRIORITY
:
TL_WRITE
;
options
=
thd_startup_options
;
query_cache_type
=
(
byte
)
query_cache_startup_type
;
options
=
thd_startup_options
;
#ifdef HAVE_QUERY_CACHE
query_cache_type
=
(
byte
)
query_cache_startup_type
;
#else
query_cache_type
=
0
;
//Safety
#endif
sql_mode
=
(
uint
)
opt_sql_mode
;
inactive_timeout
=
net_wait_timeout
;
open_options
=
ha_open_options
;
...
...
sql/sql_db.cc
View file @
2a32eaf8
...
...
@@ -159,7 +159,7 @@ int mysql_rm_db(THD *thd,char *db,bool if_exists, bool silent)
if
((
deleted
=
mysql_rm_known_files
(
thd
,
dirp
,
db
,
path
,
0
))
>=
0
&&
thd
)
{
ha_drop_database
(
path
);
query_cache
.
invalidate
(
db
);
query_cache
_invalidate1
(
db
);
if
(
!
silent
)
{
if
(
!
thd
->
query
)
...
...
sql/sql_delete.cc
View file @
2a32eaf8
...
...
@@ -182,7 +182,7 @@ int mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds, ORDER *order,
thd
->
lock
=
0
;
}
if
(
deleted
)
query_cache
.
invalidate
(
thd
,
table_list
,
1
);
query_cache
_invalidate3
(
thd
,
table_list
,
1
);
delete
select
;
if
(
error
>=
0
)
// Fatal error
send_error
(
&
thd
->
net
,
thd
->
killed
?
ER_SERVER_SHUTDOWN
:
0
);
...
...
@@ -470,7 +470,7 @@ bool multi_delete::send_eof()
VOID
(
ha_autocommit_or_rollback
(
thd
,
error
>
0
));
}
if
(
deleted
)
query_cache
.
invalidate
(
thd
,
delete_tables
,
1
);
query_cache
_invalidate3
(
thd
,
delete_tables
,
1
);
::
send_ok
(
&
thd
->
net
,
deleted
);
return
0
;
}
...
...
@@ -548,7 +548,7 @@ int mysql_truncate(THD *thd, TABLE_LIST *table_list, bool dont_send_ok)
bzero
((
char
*
)
&
create_info
,
sizeof
(
create_info
));
*
fn_ext
(
path
)
=
0
;
// Remove the .frm extension
error
=
ha_create_table
(
path
,
&
create_info
,
1
)
?
-
1
:
0
;
query_cache
.
invalidate
(
thd
,
table_list
,
0
);
query_cache
_invalidate3
(
thd
,
table_list
,
0
);
if
(
!
dont_send_ok
)
{
...
...
sql/sql_insert.cc
View file @
2a32eaf8
...
...
@@ -311,7 +311,7 @@ int mysql_insert(THD *thd,TABLE_LIST *table_list, List<Item> &fields,
}
thd
->
proc_info
=
"end"
;
if
(
info
.
copied
||
info
.
deleted
)
query_cache
.
invalidate
(
thd
,
table_list
,
1
);
query_cache
_invalidate3
(
thd
,
table_list
,
1
);
table
->
time_stamp
=
save_time_stamp
;
// Restore auto timestamp ptr
table
->
next_number_field
=
0
;
thd
->
count_cuted_fields
=
0
;
...
...
@@ -1217,7 +1217,7 @@ bool delayed_insert::handle_inserts(void)
sql_print_error
(
"%s"
,
thd
.
net
.
last_error
);
goto
err
;
}
query_cache
.
invalidate
(
&
thd
,
table
,
1
);
query_cache
_invalidate3
(
&
thd
,
table
,
1
);
if
(
thr_reschedule_write_lock
(
*
thd
.
lock
->
locks
))
{
/* This should never happen */
...
...
@@ -1242,7 +1242,7 @@ bool delayed_insert::handle_inserts(void)
sql_print_error
(
"%s"
,
thd
.
net
.
last_error
);
goto
err
;
}
query_cache
.
invalidate
(
&
thd
,
table
,
1
);
query_cache
_invalidate3
(
&
thd
,
table
,
1
);
pthread_mutex_lock
(
&
mutex
);
DBUG_RETURN
(
0
);
...
...
@@ -1330,7 +1330,7 @@ void select_insert::send_error(uint errcode,const char *err)
table
->
file
->
activate_all_index
(
thd
);
ha_rollback_stmt
(
thd
);
if
(
info
.
copied
||
info
.
deleted
)
query_cache
.
invalidate
(
thd
,
table
,
1
);
query_cache
_invalidate3
(
thd
,
table
,
1
);
}
...
...
@@ -1343,7 +1343,7 @@ bool select_insert::send_eof()
if
((
error2
=
ha_autocommit_or_rollback
(
thd
,
error
))
&&
!
error
)
error
=
error2
;
if
(
info
.
copied
||
info
.
deleted
)
query_cache
.
invalidate
(
thd
,
table
,
1
);
query_cache
_invalidate3
(
thd
,
table
,
1
);
if
(
error
)
{
...
...
sql/sql_parse.cc
View file @
2a32eaf8
...
...
@@ -1310,7 +1310,7 @@ mysql_execute_command(void)
if
(
!
(
res
=
open_and_lock_tables
(
thd
,
tables
)))
{
query_cache
.
store_query
(
thd
,
tables
);
query_cache
_
store_query
(
thd
,
tables
);
res
=
handle_select
(
thd
,
lex
,
result
);
}
else
...
...
@@ -1630,7 +1630,7 @@ mysql_execute_command(void)
goto
error
;
}
}
query_cache
.
invalidate
(
thd
,
tables
,
0
);
query_cache
_invalidate3
(
thd
,
tables
,
0
);
if
(
end_active_trans
(
thd
))
res
=
-
1
;
else
if
(
mysql_rename_tables
(
thd
,
tables
))
...
...
@@ -1669,7 +1669,7 @@ mysql_execute_command(void)
check_table_access
(
thd
,
SELECT_ACL
|
INSERT_ACL
,
tables
))
goto
error
;
/* purecov: inspected */
res
=
mysql_repair_table
(
thd
,
tables
,
&
lex
->
check_opt
);
query_cache
.
invalidate
(
thd
,
tables
,
0
);
query_cache
_invalidate3
(
thd
,
tables
,
0
);
break
;
}
case
SQLCOM_CHECK
:
...
...
@@ -1678,7 +1678,7 @@ mysql_execute_command(void)
check_table_access
(
thd
,
SELECT_ACL
|
EXTRA_ACL
,
tables
))
goto
error
;
/* purecov: inspected */
res
=
mysql_check_table
(
thd
,
tables
,
&
lex
->
check_opt
);
query_cache
.
invalidate
(
thd
,
tables
,
0
);
query_cache
_invalidate3
(
thd
,
tables
,
0
);
break
;
}
case
SQLCOM_ANALYZE
:
...
...
@@ -2722,7 +2722,7 @@ mysql_parse(THD *thd,char *inBuf,uint length)
mysql_init_query
(
thd
);
thd
->
query_length
=
length
;
if
(
query_cache
.
send_result_to_client
(
thd
,
inBuf
,
length
)
<=
0
)
if
(
query_cache
_
send_result_to_client
(
thd
,
inBuf
,
length
)
<=
0
)
{
LEX
*
lex
=
lex_start
(
thd
,
(
uchar
*
)
inBuf
,
length
);
if
(
!
yyparse
()
&&
!
thd
->
fatal_error
)
...
...
@@ -3282,6 +3282,7 @@ bool reload_acl_and_cache(THD *thd, ulong options, TABLE_LIST *tables)
if
(
ha_flush_logs
())
result
=
1
;
}
#ifdef HAVE_QUERY_CACHE
if
(
options
&
REFRESH_QUERY_CACHE_FREE
)
{
query_cache
.
pack
();
// FLUSH QUERY CACHE
...
...
@@ -3291,6 +3292,7 @@ bool reload_acl_and_cache(THD *thd, ulong options, TABLE_LIST *tables)
{
query_cache
.
flush
();
// RESET QUERY CACHE
}
#endif
/*HAVE_QUERY_CACHE*/
if
(
options
&
(
REFRESH_TABLES
|
REFRESH_READ_LOCK
))
{
if
((
options
&
REFRESH_READ_LOCK
)
&&
thd
)
...
...
sql/sql_table.cc
View file @
2a32eaf8
...
...
@@ -161,7 +161,7 @@ int mysql_rm_table_part2(THD *thd, TABLE_LIST *tables, bool if_exists,
}
if
(
some_tables_deleted
)
{
query_cache
.
invalidate
(
thd
,
tables
,
0
);
query_cache
_invalidate3
(
thd
,
tables
,
0
);
if
(
!
dont_log_query
)
{
mysql_update_log
.
write
(
thd
,
thd
->
query
,
thd
->
query_length
);
...
...
@@ -1827,7 +1827,7 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name,
VOID
(
pthread_cond_broadcast
(
&
COND_refresh
));
VOID
(
pthread_mutex_unlock
(
&
LOCK_open
));
table_list
->
table
=
0
;
// For query cache
query_cache
.
invalidate
(
thd
,
table_list
,
0
);
query_cache
_invalidate3
(
thd
,
table_list
,
0
);
end_temporary:
sprintf
(
tmp_name
,
ER
(
ER_INSERT_INFO
),(
ulong
)
(
copied
+
deleted
),
...
...
sql/sql_update.cc
View file @
2a32eaf8
...
...
@@ -324,7 +324,7 @@ int mysql_update(THD *thd,
thd
->
lock
=
0
;
}
if
(
updated
)
query_cache
.
invalidate
(
thd
,
table_list
,
1
);
query_cache
_invalidate3
(
thd
,
table_list
,
1
);
delete
select
;
if
(
error
>=
0
)
...
...
@@ -788,7 +788,7 @@ bool multi_update::send_eof()
sprintf
(
buff
,
ER
(
ER_UPDATE_INFO
),
(
long
)
found
,
(
long
)
updated
,
(
long
)
thd
->
cuted_fields
);
if
(
updated
)
query_cache
.
invalidate
(
thd
,
update_tables
,
1
);
query_cache
_invalidate3
(
thd
,
update_tables
,
1
);
::
send_ok
(
&
thd
->
net
,
(
thd
->
client_capabilities
&
CLIENT_FOUND_ROWS
)
?
found
:
updated
,
...
...
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