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
51ef885c
Commit
51ef885c
authored
Jul 16, 2008
by
Kristofer Pettersson
Browse files
Options
Browse Files
Download
Plain Diff
merge
parents
d56f9ab7
f81c2f07
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
44 additions
and
29 deletions
+44
-29
mysql-test/r/query_cache.result
mysql-test/r/query_cache.result
+4
-4
sql/set_var.cc
sql/set_var.cc
+1
-13
sql/share/errmsg.txt
sql/share/errmsg.txt
+7
-7
sql/sql_cache.cc
sql/sql_cache.cc
+30
-5
sql/sql_cache.h
sql/sql_cache.h
+2
-0
No files found.
mysql-test/r/query_cache.result
View file @
51ef885c
...
@@ -566,7 +566,7 @@ select * from t1;
...
@@ -566,7 +566,7 @@ select * from t1;
a
a
set GLOBAL query_cache_size=1024;
set GLOBAL query_cache_size=1024;
Warnings:
Warnings:
Warning 1282 Query cache failed to set size 1024; new query cache size is 0
Warning 1282 Query cache failed to set size 1024
(minimal value: 41297)
; new query cache size is 0
show global variables like "query_cache_size";
show global variables like "query_cache_size";
Variable_name Value
Variable_name Value
query_cache_size 0
query_cache_size 0
...
@@ -574,7 +574,7 @@ select * from t1;
...
@@ -574,7 +574,7 @@ select * from t1;
a
a
set GLOBAL query_cache_size=10240;
set GLOBAL query_cache_size=10240;
Warnings:
Warnings:
Warning 1282 Query cache failed to set size 10240; new query cache size is 0
Warning 1282 Query cache failed to set size 10240
(minimal value: 41297)
; new query cache size is 0
show global variables like "query_cache_size";
show global variables like "query_cache_size";
Variable_name Value
Variable_name Value
query_cache_size 0
query_cache_size 0
...
@@ -582,7 +582,7 @@ select * from t1;
...
@@ -582,7 +582,7 @@ select * from t1;
a
a
set GLOBAL query_cache_size=20480;
set GLOBAL query_cache_size=20480;
Warnings:
Warnings:
Warning 1282 Query cache failed to set size 20480; new query cache size is 0
Warning 1282 Query cache failed to set size 20480
(minimal value: 41297)
; new query cache size is 0
show global variables like "query_cache_size";
show global variables like "query_cache_size";
Variable_name Value
Variable_name Value
query_cache_size 0
query_cache_size 0
...
@@ -590,7 +590,7 @@ select * from t1;
...
@@ -590,7 +590,7 @@ select * from t1;
a
a
set GLOBAL query_cache_size=40960;
set GLOBAL query_cache_size=40960;
Warnings:
Warnings:
Warning 1282 Query cache failed to set size 40960; new query cache size is 0
Warning 1282 Query cache failed to set size 40960
(minimal value: 41297)
; new query cache size is 0
show global variables like "query_cache_size";
show global variables like "query_cache_size";
Variable_name Value
Variable_name Value
query_cache_size 0
query_cache_size 0
...
...
sql/set_var.cc
View file @
51ef885c
...
@@ -1046,19 +1046,7 @@ static void fix_net_retry_count(THD *thd __attribute__((unused)),
...
@@ -1046,19 +1046,7 @@ static void fix_net_retry_count(THD *thd __attribute__((unused)),
static
void
fix_query_cache_size
(
THD
*
thd
,
enum_var_type
type
)
static
void
fix_query_cache_size
(
THD
*
thd
,
enum_var_type
type
)
{
{
#ifdef HAVE_QUERY_CACHE
#ifdef HAVE_QUERY_CACHE
ulong
new_cache_size
=
query_cache
.
resize
(
query_cache_size
);
query_cache_size
=
query_cache
.
resize
(
query_cache_size
);
/*
Note: query_cache_size is a global variable reflecting the
requested cache size. See also query_cache_size_arg
*/
if
(
query_cache_size
!=
new_cache_size
)
push_warning_printf
(
current_thd
,
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
ER_WARN_QC_RESIZE
,
ER
(
ER_WARN_QC_RESIZE
),
query_cache_size
,
new_cache_size
);
query_cache_size
=
new_cache_size
;
#endif
#endif
}
}
...
...
sql/share/errmsg.txt
View file @
51ef885c
...
@@ -4995,13 +4995,13 @@ ER_WRONG_NAME_FOR_CATALOG 42000
...
@@ -4995,13 +4995,13 @@ ER_WRONG_NAME_FOR_CATALOG 42000
spa "Nombre de catalog incorrecto '%-.100s'"
spa "Nombre de catalog incorrecto '%-.100s'"
swe "Felaktigt katalog namn '%-.100s'"
swe "Felaktigt katalog namn '%-.100s'"
ER_WARN_QC_RESIZE
ER_WARN_QC_RESIZE
eng "Query cache failed to set size %lu
; new query cache size is %lu"
eng "Query cache failed to set size %lu (minimal value: %lu)
; new query cache size is %lu"
ger "nderung der Query-Cache-Gre auf %lu
fehlgeschlagen; neue Query-Cache-Gre ist %lu"
ger "nderung der Query-Cache-Gre auf %lu (Minimale Zahl: %lu)
fehlgeschlagen; neue Query-Cache-Gre ist %lu"
por "Falha em Query cache para configurar tamanho %lu
, novo tamanho de query cache %lu"
por "Falha em Query cache para configurar tamanho %lu (Nmero mnimo: %lu)
, novo tamanho de query cache %lu"
rus " %lu
, - %lu"
rus " %lu (minimal value: %lu)
, - %lu"
spa "Query cache fallada para configurar tamao %lu
, nuevo tamao de query cache es %lu"
spa "Query cache fallada para configurar tamao %lu (Nmero mnimo: %lu)
, nuevo tamao de query cache es %lu"
swe "Storleken av "Query cache" kunde inte sttas till %lu,
ny storlek r %lu"
swe "Storleken av "Query cache" kunde inte sttas till %lu (minsta vrde: %lu);
ny storlek r %lu"
ukr " Ԧ ͦ %lu
, ͦ Ԧ - %lu"
ukr " Ԧ ͦ %lu (minimal value: %lu)
, ͦ Ԧ - %lu"
ER_BAD_FT_COLUMN
ER_BAD_FT_COLUMN
eng "Column '%-.192s' cannot be part of FULLTEXT index"
eng "Column '%-.192s' cannot be part of FULLTEXT index"
ger "Feld '%-.192s' kann nicht Teil eines FULLTEXT-Index sein"
ger "Feld '%-.192s' kann nicht Teil eines FULLTEXT-Index sein"
...
...
sql/sql_cache.cc
View file @
51ef885c
...
@@ -942,18 +942,25 @@ ulong Query_cache::resize(ulong query_cache_size_arg)
...
@@ -942,18 +942,25 @@ ulong Query_cache::resize(ulong query_cache_size_arg)
}
while
(
block
!=
queries_blocks
);
}
while
(
block
!=
queries_blocks
);
}
}
free_cache
();
free_cache
();
query_cache_size
=
query_cache_size_arg
;
query_cache_size
=
query_cache_size_arg
;
new_query_cache_size
=
init_cache
();
::
query_cache_size
=
init_cache
();
if
(
::
query_cache_size
!=
query_cache_size_arg
)
{
push_warning_printf
(
current_thd
,
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
ER_WARN_QC_RESIZE
,
ER
(
ER_WARN_QC_RESIZE
),
query_cache_size_arg
,
get_minimal_size_limit
(),
::
query_cache_size
);
}
STRUCT_LOCK
(
&
structure_guard_mutex
);
STRUCT_LOCK
(
&
structure_guard_mutex
);
m_cache_status
=
Query_cache
::
NO_FLUSH_IN_PROGRESS
;
m_cache_status
=
Query_cache
::
NO_FLUSH_IN_PROGRESS
;
pthread_cond_signal
(
&
COND_cache_status_changed
);
pthread_cond_signal
(
&
COND_cache_status_changed
);
if
(
new_query_cache_size
)
DBUG_EXECUTE
(
"check_querycache"
,
check_integrity
(
1
););
STRUCT_UNLOCK
(
&
structure_guard_mutex
);
STRUCT_UNLOCK
(
&
structure_guard_mutex
);
DBUG_RETURN
(
new_
query_cache_size
);
DBUG_RETURN
(
::
query_cache_size
);
}
}
...
@@ -1816,6 +1823,24 @@ void Query_cache::init()
...
@@ -1816,6 +1823,24 @@ void Query_cache::init()
DBUG_VOID_RETURN
;
DBUG_VOID_RETURN
;
}
}
/**
Return the lowest possible query cache size.
*/
ulong
Query_cache
::
get_minimal_size_limit
()
{
ulong
approx_additional_data_size
=
(
sizeof
(
Query_cache
)
+
sizeof
(
void
*
)
*
(
def_query_hash_size
+
def_table_hash_size
));
ulong
data_size
=
(
min_allocation_unit
<<
QUERY_CACHE_MEM_BIN_STEP_PWR2
<<
QUERY_CACHE_MEM_BIN_FIRST_STEP_PWR2
)
+
ALIGN_SIZE
(
1
)
-
1
+
(
1
<<
QUERY_CACHE_MEM_BIN_STEP_PWR2
)
-
1
+
(
1
<<
QUERY_CACHE_MEM_BIN_FIRST_STEP_PWR2
)
-
1
;
return
(
data_size
+
approx_additional_data_size
);
}
ulong
Query_cache
::
init_cache
()
ulong
Query_cache
::
init_cache
()
{
{
...
...
sql/sql_cache.h
View file @
51ef885c
...
@@ -282,6 +282,8 @@ class Query_cache
...
@@ -282,6 +282,8 @@ class Query_cache
void
free_query_internal
(
Query_cache_block
*
point
);
void
free_query_internal
(
Query_cache_block
*
point
);
void
invalidate_table_internal
(
THD
*
thd
,
uchar
*
key
,
uint32
key_length
);
void
invalidate_table_internal
(
THD
*
thd
,
uchar
*
key
,
uint32
key_length
);
ulong
get_minimal_size_limit
();
protected:
protected:
/*
/*
The following mutex is locked when searching or changing global
The following mutex is locked when searching or changing global
...
...
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