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
48a40e2e
Commit
48a40e2e
authored
Oct 03, 2008
by
Andrei Elkin
Browse files
Options
Browse Files
Download
Plain Diff
merge with the main 5.1-bugteam
parents
b41e0818
30d46cac
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
37 additions
and
22 deletions
+37
-22
mysql-test/r/status.result
mysql-test/r/status.result
+13
-1
mysql-test/t/status.test
mysql-test/t/status.test
+21
-20
sql/sql_base.cc
sql/sql_base.cc
+3
-1
No files found.
mysql-test/r/status.result
View file @
48a40e2e
set @old_concurrent_insert= @@global.concurrent_insert;
set @@global.concurrent_insert= 0;
flush status;
show status like 'Table_lock%';
Variable_name Value
...
...
@@ -7,22 +9,31 @@ select * from information_schema.session_status where variable_name like 'Table_
VARIABLE_NAME VARIABLE_VALUE
TABLE_LOCKS_IMMEDIATE 2
TABLE_LOCKS_WAITED 0
SET SQL_LOG_BIN=0;
# Switched to connection: con1
set sql_log_bin=0;
set @old_general_log = @@global.general_log;
set global general_log = 'OFF';
drop table if exists t1;
create table t1(n int) engine=myisam;
insert into t1 values(1);
select 1;
1
1
# Switched to connection: con2
lock tables t1 read;
unlock tables;
lock tables t1 read;
# Switched to connection: con1
update t1 set n = 3;
# Switched to connection: con2
unlock tables;
# Switched to connection: con1
show status like 'Table_locks_waited';
Variable_name Value
Table_locks_waited 1
drop table t1;
set global general_log = @old_general_log;
# Switched to connection: default
select 1;
1
1
...
...
@@ -198,3 +209,4 @@ ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table '
drop database db37908;
drop procedure proc37908;
drop function func37908;
set @@global.concurrent_insert= @old_concurrent_insert;
mysql-test/t/status.test
View file @
48a40e2e
...
...
@@ -4,6 +4,11 @@
# embedded server causes different stat
--
source
include
/
not_embedded
.
inc
# Disable concurrent inserts to avoid sporadic test failures as it might
# affect the the value of variables used throughout the test case.
set
@
old_concurrent_insert
=
@@
global
.
concurrent_insert
;
set
@@
global
.
concurrent_insert
=
0
;
# PS causes different statistics
--
disable_ps_protocol
...
...
@@ -12,54 +17,45 @@ connect (con2,localhost,root,,);
flush
status
;
# Logging to the general query log table (--log-output=table --log) increments
# Table_locks_immediate with each query, so here Immediate becomes 1
show
status
like
'Table_lock%'
;
# ++Immediate = 2
select
*
from
information_schema
.
session_status
where
variable_name
like
'Table_lock%'
;
connection
con1
;
# ++Immediate = 3
SET
SQL_LOG_BIN
=
0
;
set
@
old_general_log
=
@@
global
.
general_log
;
--
echo
# Switched to connection: con1
set
sql_log_bin
=
0
;
set
@
old_general_log
=
@@
global
.
general_log
;
set
global
general_log
=
'OFF'
;
--
disable_warnings
# ++Immediate = 4
drop
table
if
exists
t1
;
--
enable_warnings
# ++Immediate = 5
create
table
t1
(
n
int
)
engine
=
myisam
;
# Immediate + 2 = 7
insert
into
t1
values
(
1
);
# Execute dummy select in order to ensure that tables used in the
# previous statement are unlocked and closed.
select
1
;
connection
con2
;
# Immediate + 2 = 9
--
echo
# Switched to connection: con2
lock
tables
t1
read
;
# ++Immediate = 10
unlock
tables
;
# Immediate + 2 = 12
lock
tables
t1
read
;
connection
con1
;
# ++Immediate = 13
--
echo
# Switched to connection: con1
let
$ID
=
`select connection_id()`
;
# ++Immediate = 14 (Not +2, because this increments Table_locks_waited)
--
send
update
t1
set
n
=
3
;
--
send
update
t1
set
n
=
3
connection
con2
;
--
echo
# Switched to connection: con2
# wait for the other query to start executing
let
$wait_condition
=
select
1
from
INFORMATION_SCHEMA
.
PROCESSLIST
where
ID
=
$ID
and
STATE
=
"Locked"
;
# Immediate = 14 + $wait_condition_reps ($wait_timeout is 0, so no extra select
# is done inside wait_condition.inc)
--
source
include
/
wait_condition
.
inc
# ++Immediate = 15 + $wait_condition_reps
unlock
tables
;
connection
con1
;
--
echo
# Switched to connection: con1
reap
;
# ++Immediate = 16 + $wait_condition_reps
show
status
like
'Table_locks_waited'
;
drop
table
t1
;
set
global
general_log
=
@
old_general_log
;
...
...
@@ -67,6 +63,7 @@ set global general_log = @old_general_log;
disconnect
con2
;
disconnect
con1
;
connection
default
;
--
echo
# Switched to connection: default
# End of 4.1 tests
...
...
@@ -295,3 +292,7 @@ drop database db37908;
drop
procedure
proc37908
;
drop
function
func37908
;
# End of 5.1 tests
# Restore global concurrent_insert value. Keep in the end of the test file.
--
connection
default
set
@@
global
.
concurrent_insert
=
@
old_concurrent_insert
;
sql/sql_base.cc
View file @
48a40e2e
...
...
@@ -3720,8 +3720,9 @@ void assign_new_table_id(TABLE_SHARE *share)
DBUG_VOID_RETURN
;
}
#ifndef DBUG_OFF
/* Cause a spurious statement reprepare for debug purposes. */
static
inline
bool
inject_reprepare
(
THD
*
thd
)
static
bool
inject_reprepare
(
THD
*
thd
)
{
if
(
thd
->
m_reprepare_observer
&&
thd
->
stmt_arena
->
is_reprepared
==
FALSE
)
{
...
...
@@ -3731,6 +3732,7 @@ static inline bool inject_reprepare(THD *thd)
return
FALSE
;
}
#endif
/**
Compare metadata versions of an element obtained from the table
...
...
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