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
f5dab36a
Commit
f5dab36a
authored
Nov 25, 2002
by
bell@sanja.is.com.ua
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
merging tests
parent
d40bec68
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
150 additions
and
152 deletions
+150
-152
mysql-test/r/innodb-deadlock.result
mysql-test/r/innodb-deadlock.result
+77
-0
mysql-test/r/innodb-non-simple.result
mysql-test/r/innodb-non-simple.result
+0
-76
mysql-test/t/innodb-deadlock.test
mysql-test/t/innodb-deadlock.test
+73
-0
mysql-test/t/innodb-non-simple.test
mysql-test/t/innodb-non-simple.test
+0
-76
No files found.
mysql-test/r/innodb-deadlock.result
View file @
f5dab36a
...
...
@@ -18,3 +18,80 @@ id x
0 2
commit;
drop table t1;
drop table if exists t1, t2;
create table t1 (id integer, x integer) type=INNODB;
create table t2 (b integer, a integer) type=INNODB;
insert into t1 values(0, 0), (300, 300);
insert into t2 values(0, 10), (1, 20), (2, 30);
commit;
set autocommit=0;
select * from t2;
b a
0 10
1 20
2 30
update t2 set a=100 where b=(SELECT x from t1 where id = b FOR UPDATE);
select * from t2;
b a
0 100
1 20
2 30
select * from t1;
id x
0 0
300 300
set autocommit=0;
update t1 set x=2 where id = 0;
update t1 set x=1 where id = 0;
select * from t1;
id x
0 1
300 300
commit;
commit;
select * from t1;
id x
0 2
300 300
commit;
drop table t1, t2;
create table t1 (id integer, x integer) type=INNODB;
create table t2 (b integer, a integer) type=INNODB;
insert into t1 values(0, 0), (300, 300);
insert into t2 values(0, 0), (1, 20), (2, 30);
commit;
select a,b from t2 UNION SELECT id, x from t1 FOR UPDATE;
a b
0 0
20 1
30 2
300 300
select * from t2;
b a
0 0
1 20
2 30
select * from t1;
id x
0 0
300 300
update t2 set a=2 where b = 0;
select * from t2;
b a
0 2
1 20
2 30
update t1 set x=2 where id = 0;
update t1 set x=1 where id = 0;
select * from t1;
id x
0 1
300 300
commit;
commit;
select * from t1;
id x
0 2
300 300
commit;
drop table t1, t2;
mysql-test/r/innodb-non-simple.result
deleted
100644 → 0
View file @
d40bec68
drop table if exists t1, t2;
create table t1 (id integer, x integer) type=INNODB;
create table t2 (b integer, a integer) type=INNODB;
insert into t1 values(0, 0), (300, 300);
insert into t2 values(0, 10), (1, 20), (2, 30);
set autocommit=0;
select * from t2;
b a
0 10
1 20
2 30
update t2 set a=100 where b=(SELECT x from t1 where id = b FOR UPDATE);
select * from t2;
b a
0 100
1 20
2 30
select * from t1;
id x
0 0
300 300
set autocommit=0;
update t1 set x=2 where id = 0;
update t1 set x=1 where id = 0;
select * from t1;
id x
0 1
300 300
commit;
commit;
select * from t1;
id x
0 2
300 300
commit;
drop table t1, t2;
create table t1 (id integer, x integer) type=INNODB;
create table t2 (b integer, a integer) type=INNODB;
insert into t1 values(0, 0), (300, 300);
insert into t2 values(0, 0), (1, 20), (2, 30);
commit;
select a,b from t2 UNION SELECT id, x from t1 FOR UPDATE;
a b
0 0
20 1
30 2
300 300
select * from t2;
b a
0 0
1 20
2 30
select * from t1;
id x
0 0
300 300
update t2 set a=2 where b = 0;
select * from t2;
b a
0 2
1 20
2 30
update t1 set x=2 where id = 0;
update t1 set x=1 where id = 0;
select * from t1;
id x
0 1
300 300
commit;
commit;
select * from t1;
id x
0 2
300 300
commit;
drop table t1, t2;
mysql-test/t/innodb-deadlock.test
View file @
f5dab36a
...
...
@@ -36,3 +36,76 @@ select * from t1;
commit
;
drop
table
t1
;
drop
table
if
exists
t1
,
t2
;
#
# Testing of FOR UPDATE
#
connection
con1
;
create
table
t1
(
id
integer
,
x
integer
)
type
=
INNODB
;
create
table
t2
(
b
integer
,
a
integer
)
type
=
INNODB
;
insert
into
t1
values
(
0
,
0
),
(
300
,
300
);
insert
into
t2
values
(
0
,
10
),
(
1
,
20
),
(
2
,
30
);
commit
;
set
autocommit
=
0
;
select
*
from
t2
;
update
t2
set
a
=
100
where
b
=
(
SELECT
x
from
t1
where
id
=
b
FOR
UPDATE
);
select
*
from
t2
;
select
*
from
t1
;
connection
con2
;
set
autocommit
=
0
;
# The following query should hang because con1 is locking the page
--
send
update
t1
set
x
=
2
where
id
=
0
;
--
sleep
2
;
connection
con1
;
update
t1
set
x
=
1
where
id
=
0
;
select
*
from
t1
;
commit
;
connection
con2
;
reap
;
commit
;
connection
con1
;
select
*
from
t1
;
commit
;
drop
table
t1
,
t2
;
create
table
t1
(
id
integer
,
x
integer
)
type
=
INNODB
;
create
table
t2
(
b
integer
,
a
integer
)
type
=
INNODB
;
insert
into
t1
values
(
0
,
0
),
(
300
,
300
);
insert
into
t2
values
(
0
,
0
),
(
1
,
20
),
(
2
,
30
);
commit
;
connection
con1
;
select
a
,
b
from
t2
UNION
SELECT
id
,
x
from
t1
FOR
UPDATE
;
select
*
from
t2
;
select
*
from
t1
;
connection
con2
;
# The following query should hang because con1 is locking the page
update
t2
set
a
=
2
where
b
=
0
;
select
*
from
t2
;
--
send
update
t1
set
x
=
2
where
id
=
0
;
--
sleep
2
;
connection
con1
;
update
t1
set
x
=
1
where
id
=
0
;
select
*
from
t1
;
commit
;
connection
con2
;
reap
;
commit
;
connection
con1
;
select
*
from
t1
;
commit
;
drop
table
t1
,
t2
;
mysql-test/t/innodb-non-simple.test
deleted
100644 → 0
View file @
d40bec68
--
source
include
/
have_innodb
.
inc
connect
(
con1
,
localhost
,
root
,,);
connect
(
con2
,
localhost
,
root
,,);
drop
table
if
exists
t1
,
t2
;
#
# Testing of FOR UPDATE
#
connection
con1
;
create
table
t1
(
id
integer
,
x
integer
)
type
=
INNODB
;
create
table
t2
(
b
integer
,
a
integer
)
type
=
INNODB
;
insert
into
t1
values
(
0
,
0
),
(
300
,
300
);
insert
into
t2
values
(
0
,
10
),
(
1
,
20
),
(
2
,
30
);
set
autocommit
=
0
;
select
*
from
t2
;
update
t2
set
a
=
100
where
b
=
(
SELECT
x
from
t1
where
id
=
b
FOR
UPDATE
);
select
*
from
t2
;
select
*
from
t1
;
connection
con2
;
set
autocommit
=
0
;
# The following query should hang because con1 is locking the page
--
send
update
t1
set
x
=
2
where
id
=
0
;
--
sleep
2
;
connection
con1
;
update
t1
set
x
=
1
where
id
=
0
;
select
*
from
t1
;
commit
;
connection
con2
;
reap
;
commit
;
connection
con1
;
select
*
from
t1
;
commit
;
drop
table
t1
,
t2
;
create
table
t1
(
id
integer
,
x
integer
)
type
=
INNODB
;
create
table
t2
(
b
integer
,
a
integer
)
type
=
INNODB
;
insert
into
t1
values
(
0
,
0
),
(
300
,
300
);
insert
into
t2
values
(
0
,
0
),
(
1
,
20
),
(
2
,
30
);
commit
;
connection
con1
;
select
a
,
b
from
t2
UNION
SELECT
id
,
x
from
t1
FOR
UPDATE
;
select
*
from
t2
;
select
*
from
t1
;
connection
con2
;
# The following query should hang because con1 is locking the page
update
t2
set
a
=
2
where
b
=
0
;
select
*
from
t2
;
--
send
update
t1
set
x
=
2
where
id
=
0
;
--
sleep
2
;
connection
con1
;
update
t1
set
x
=
1
where
id
=
0
;
select
*
from
t1
;
commit
;
connection
con2
;
reap
;
commit
;
connection
con1
;
select
*
from
t1
;
commit
;
drop
table
t1
,
t2
;
\ No newline at end of file
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