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
3c427341
Commit
3c427341
authored
Jul 05, 2005
by
mats@mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge mysql.com:/home/bkroot/mysql-4.1
into mysql.com:/home/bk/b11401-mysql-4.1
parents
57be8f42
6d924c82
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
100 additions
and
0 deletions
+100
-0
mysql-test/r/rpl_innodb.result
mysql-test/r/rpl_innodb.result
+37
-0
mysql-test/std_data/loaddata_pair.dat
mysql-test/std_data/loaddata_pair.dat
+2
-0
mysql-test/t/rpl_innodb.test
mysql-test/t/rpl_innodb.test
+46
-0
sql/log_event.cc
sql/log_event.cc
+15
-0
No files found.
mysql-test/r/rpl_innodb.result
0 → 100644
View file @
3c427341
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;
CREATE TABLE t4 (
id INT(5) unsigned NOT NULL auto_increment,
name varchar(15) NOT NULL default '',
number varchar(35) NOT NULL default 'default',
PRIMARY KEY (id),
UNIQUE KEY unique_rec (name,number)
) ENGINE=InnoDB;
LOAD DATA
INFILE '../../std_data/loaddata_pair.dat'
REPLACE INTO TABLE t4
(name,number);
SELECT * FROM t4;
id name number
1 XXX 12345
2 XXY 12345
SELECT * FROM t4;
id name number
1 XXX 12345
2 XXY 12345
LOAD DATA
INFILE '../../std_data/loaddata_pair.dat'
REPLACE INTO TABLE t4
(name,number);
SELECT * FROM t4;
id name number
3 XXX 12345
4 XXY 12345
SELECT * FROM t4;
id name number
3 XXX 12345
4 XXY 12345
mysql-test/std_data/loaddata_pair.dat
0 → 100644
View file @
3c427341
XXX 12345
XXY 12345
mysql-test/t/rpl_innodb.test
0 → 100644
View file @
3c427341
# File for specialities regarding replication from or to InnoDB
# tables.
source
include
/
master
-
slave
.
inc
;
source
include
/
have_innodb
.
inc
;
#
# Bug#11401: Load data infile 'REPLACE INTO' fails on slave.
#
connection
master
;
CREATE
TABLE
t4
(
id
INT
(
5
)
unsigned
NOT
NULL
auto_increment
,
name
varchar
(
15
)
NOT
NULL
default
''
,
number
varchar
(
35
)
NOT
NULL
default
'default'
,
PRIMARY
KEY
(
id
),
UNIQUE
KEY
unique_rec
(
name
,
number
)
)
ENGINE
=
InnoDB
;
--
disable_warnings
LOAD
DATA
INFILE
'../../std_data/loaddata_pair.dat'
REPLACE
INTO
TABLE
t4
(
name
,
number
);
--
enable_warnings
SELECT
*
FROM
t4
;
sync_slave_with_master
;
SELECT
*
FROM
t4
;
connection
master
;
--
disable_warnings
LOAD
DATA
INFILE
'../../std_data/loaddata_pair.dat'
REPLACE
INTO
TABLE
t4
(
name
,
number
);
--
enable_warnings
SELECT
*
FROM
t4
;
sync_slave_with_master
;
SELECT
*
FROM
t4
;
connection
master
;
--
disable_query_log
DROP
TABLE
t4
;
--
enable_query_log
sync_slave_with_master
;
sql/log_event.cc
View file @
3c427341
...
...
@@ -1809,11 +1809,25 @@ int Load_log_event::exec_event(NET* net, struct st_relay_log_info* rli,
"` <...>"
,
NullS
)
-
load_data_query
);
thd
->
query
=
load_data_query
;
}
/*
We need to set thd->lex->sql_command and thd->lex->duplicates
since InnoDB tests these variables to decide if this is a LOAD
DATA ... REPLACE INTO ... statement even though mysql_parse()
is not called. This is not needed in 5.0 since there the LOAD
DATA ... statement is replicated using mysql_parse(), which
sets the thd->lex fields correctly.
*/
thd
->
lex
->
sql_command
=
SQLCOM_LOAD
;
if
(
sql_ex
.
opt_flags
&
REPLACE_FLAG
)
{
thd
->
lex
->
duplicates
=
DUP_REPLACE
;
handle_dup
=
DUP_REPLACE
;
}
else
if
(
sql_ex
.
opt_flags
&
IGNORE_FLAG
)
{
ignore
=
1
;
thd
->
lex
->
duplicates
=
DUP_ERROR
;
handle_dup
=
DUP_ERROR
;
}
else
...
...
@@ -1831,6 +1845,7 @@ int Load_log_event::exec_event(NET* net, struct st_relay_log_info* rli,
If reading from net (a 3.23 master), mysql_load() will change this
to IGNORE.
*/
thd
->
lex
->
duplicates
=
DUP_ERROR
;
handle_dup
=
DUP_ERROR
;
}
...
...
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