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
a6a589ef
Commit
a6a589ef
authored
May 24, 2005
by
acurtis@xiphis.org
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug#7241 - Invalid response when DELETE .. USING and LOCK TABLES used.
Only acquire necessary write lock for multi-delete
parent
76a20eb3
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
30 additions
and
0 deletions
+30
-0
mysql-test/r/lock.result
mysql-test/r/lock.result
+10
-0
mysql-test/t/lock.test
mysql-test/t/lock.test
+14
-0
sql/sql_parse.cc
sql/sql_parse.cc
+6
-0
No files found.
mysql-test/r/lock.result
View file @
a6a589ef
...
...
@@ -47,3 +47,13 @@ unlock tables;
lock tables t1 write, t1 as t1_alias read;
insert into t1 select index1,nr from t1 as t1_alias;
drop table t1,t2;
create table t1 ( a int(11) not null auto_increment, primary key(a));
create table t2 ( a int(11) not null auto_increment, primary key(a));
lock tables t1 write, t2 read;
delete from t1 using t1,t2 where t1.a=t2.a;
delete t1 from t1,t2 where t1.a=t2.a;
delete from t2 using t1,t2 where t1.a=t2.a;
ERROR HY000: Table 't2' was locked with a READ lock and can't be updated
delete t2 from t1,t2 where t1.a=t2.a;
ERROR HY000: Table 't2' was locked with a READ lock and can't be updated
drop table t1,t2;
mysql-test/t/lock.test
View file @
a6a589ef
...
...
@@ -59,3 +59,17 @@ unlock tables;
lock
tables
t1
write
,
t1
as
t1_alias
read
;
insert
into
t1
select
index1
,
nr
from
t1
as
t1_alias
;
drop
table
t1
,
t2
;
#
# Bug7241 - Invalid response when DELETE .. USING and LOCK TABLES used.
#
create
table
t1
(
a
int
(
11
)
not
null
auto_increment
,
primary
key
(
a
));
create
table
t2
(
a
int
(
11
)
not
null
auto_increment
,
primary
key
(
a
));
lock
tables
t1
write
,
t2
read
;
delete
from
t1
using
t1
,
t2
where
t1
.
a
=
t2
.
a
;
delete
t1
from
t1
,
t2
where
t1
.
a
=
t2
.
a
;
--
error
1099
delete
from
t2
using
t1
,
t2
where
t1
.
a
=
t2
.
a
;
--
error
1099
delete
t2
from
t1
,
t2
where
t1
.
a
=
t2
.
a
;
drop
table
t1
,
t2
;
sql/sql_parse.cc
View file @
a6a589ef
...
...
@@ -4141,6 +4141,7 @@ void mysql_init_multi_delete(LEX *lex)
lex
->
select_lex
.
select_limit
=
lex
->
unit
.
select_limit_cnt
=
HA_POS_ERROR
;
lex
->
select_lex
.
table_list
.
save_and_clear
(
&
lex
->
auxilliary_table_list
);
lex
->
lock_option
=
using_update_log
?
TL_READ_NO_INSERT
:
TL_READ
;
}
...
...
@@ -5437,6 +5438,11 @@ int multi_delete_precheck(THD *thd, TABLE_LIST *tables, uint *table_count)
}
walk
->
lock_type
=
target_tbl
->
lock_type
;
target_tbl
->
table_list
=
walk
;
// Remember corresponding table
if
(
walk
->
table_list
)
{
target_tbl
->
table_list
=
walk
->
table_list
;
walk
->
table_list
->
lock_type
=
walk
->
lock_type
;
}
}
DBUG_RETURN
(
0
);
}
...
...
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