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
2fbdc548
Commit
2fbdc548
authored
Jan 26, 2006
by
aelkin@mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
BUG#15699 importing the fix from 5.0
parent
5c302783
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
96 additions
and
5 deletions
+96
-5
mysql-test/r/rpl_ignore_table.result
mysql-test/r/rpl_ignore_table.result
+16
-0
mysql-test/r/rpl_multi_update4.result
mysql-test/r/rpl_multi_update4.result
+25
-0
mysql-test/t/rpl_multi_update4-slave.opt
mysql-test/t/rpl_multi_update4-slave.opt
+1
-0
mysql-test/t/rpl_multi_update4.test
mysql-test/t/rpl_multi_update4.test
+44
-0
sql/sql_parse.cc
sql/sql_parse.cc
+10
-5
No files found.
mysql-test/r/rpl_ignore_table.result
0 → 100644
View file @
2fbdc548
stop slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
reset master;
reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
**** Test case for BUG#16487 ****
**** Master ****
CREATE TABLE test.t4 (a int);
CREATE TABLE test.t1 (a int);
UPDATE test.t4 NATURAL JOIN test.t1 SET t1.a=5;
**** Slave ****
SELECT * FROM t4;
a
DROP TABLE t1;
DROP TABLE t4;
mysql-test/r/rpl_multi_update4.result
0 → 100644
View file @
2fbdc548
stop slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
reset master;
reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
drop database if exists d1;
drop database if exists d2;
drop database if exists d2;
create database d1;
create table d1.t0 (id int);
create database d2;
use d2;
create table t1 (id int);
create table t2 (id int);
insert into t1 values (1), (2), (3), (4), (5);
insert into t2 select id + 3 from t1;
update t1 join t2 using (id) set t1.id = 0;
insert into d1.t0 values (0);
use d1;
select * from t0 where id=0;
id
0
drop database d1;
drop database d2;
mysql-test/t/rpl_multi_update4-slave.opt
0 → 100644
View file @
2fbdc548
--replicate-wild-do-table=d1.%
mysql-test/t/rpl_multi_update4.test
0 → 100644
View file @
2fbdc548
# Let's verify that multi-update is not always skipped by slave if
# some replicate-* rules exist.
# (BUG#15699)
source
include
/
master
-
slave
.
inc
;
### Clean-up
connection
master
;
--
disable_warnings
drop
database
if
exists
d1
;
drop
database
if
exists
d2
;
connection
slave
;
drop
database
if
exists
d2
;
--
enable_warnings
### Test
connection
master
;
create
database
d1
;
# accepted by slave
create
table
d1
.
t0
(
id
int
);
create
database
d2
;
# ignored by slave
use
d2
;
create
table
t1
(
id
int
);
create
table
t2
(
id
int
);
insert
into
t1
values
(
1
),
(
2
),
(
3
),
(
4
),
(
5
);
insert
into
t2
select
id
+
3
from
t1
;
# a problematic query which must be filter out by slave
update
t1
join
t2
using
(
id
)
set
t1
.
id
=
0
;
insert
into
d1
.
t0
values
(
0
);
# replication works
sync_slave_with_master
;
use
d1
;
#connection slave;
select
*
from
t0
where
id
=
0
;
# must find
### Clean-up
connection
master
;
drop
database
d1
;
drop
database
d2
;
# End of test
sql/sql_parse.cc
View file @
2fbdc548
...
...
@@ -2840,21 +2840,26 @@ mysql_execute_command(THD *thd)
if
((
res
=
multi_update_precheck
(
thd
,
tables
)))
break
;
if
((
res
=
mysql_multi_update_lock
(
thd
,
tables
,
&
select_lex
->
item_list
,
select_lex
)))
break
;
res
=
mysql_multi_update_lock
(
thd
,
tables
,
&
select_lex
->
item_list
,
select_lex
);
#ifdef HAVE_REPLICATION
/* Check slave filtering rules */
if
(
thd
->
slave_thread
)
if
(
all_tables_not_ok
(
thd
,
tables
))
{
if
(
res
!=
0
)
{
res
=
0
;
/* don't care of prev failure */
thd
->
clear_error
();
/* filters are of highest prior */
}
/* we warn the slave SQL thread */
my_error
(
ER_SLAVE_IGNORED_TABLE
,
MYF
(
0
));
break
;
}
#endif
/* HAVE_REPLICATION */
if
(
res
)
break
;
res
=
mysql_multi_update
(
thd
,
tables
,
&
select_lex
->
item_list
,
&
lex
->
value_list
,
...
...
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