- LOAD DATA LOCAL INFILE .. INTO .. の場合、handle_duplicatesはDUP_ERRORなので、sql/sql_load.ccのここでignoreが設定される。
318 /* We can't give an error in the middle when using LOCAL files */
319 if (read_file_from_client && handle_duplicates == DUP_ERROR)
320 ignore= 1;
Breakpoint 1, mysql_load (thd=0x36c9430, ex=0x7f217c373170, table_list=0x7f217c373200, fields_vars=..., set_fields=...,
set_values=..., handle_duplicates=DUP_ERROR, ignore=false, read_file_from_client=true)
at /home/yoku0825/mysql-5.6.20/sql/sql_load.cc:190
190 {
(gdb) p thd->query_string->string->str
$3 = 0x7f217c373080 "LOAD DATA LOCAL INFILE '/tmp/test' INTO TABLE t1"
- LOAD DATA LOCAL INFILE .. REPLACE INTO .. の場合、handle_duplicatesがDUP_REPLACEなので、↑のifをすり抜けてignoreが0のまま。
Breakpoint 1, mysql_load (thd=0x36c9430, ex=0x7f217c373180, table_list=0x7f217c373210, fields_vars=..., set_fields=...,
set_values=..., handle_duplicates=DUP_REPLACE, ignore=false, read_file_from_client=true)
at /home/yoku0825/mysql-5.6.20/sql/sql_load.cc:190
190 {
(gdb) p thd->query_string->string->str
$2 = 0x7f217c373080 "LOAD DATA LOCAL INFILE '/tmp/test' REPLACE INTO TABLE t1"