1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

Fix LOAD DATA to handle having the escape and enclosed-by character

be the same. (Bug #11203)


mysql-test/r/loaddata.result:
  Update results
mysql-test/t/loaddata.test:
  Add new test
sql/sql_load.cc:
  Handle having escape_char and enclosed_char the same when loading
  data.
mysql-test/std_data/loaddata5.dat:
  New BitKeeper file ``mysql-test/std_data/loaddata5.dat''
This commit is contained in:
unknown
2005-06-22 16:14:14 -07:00
parent 31d0786687
commit c686f699b2
4 changed files with 36 additions and 2 deletions

View File

@ -799,8 +799,23 @@ int READ_INFO::read_field()
*to++= (byte) escape_char;
goto found_eof;
}
*to++ = (byte) unescape((char) chr);
continue;
/*
When escape_char == enclosed_char, we treat it like we do for
handling quotes in SQL parsing -- you can double-up the
escape_char to include it literally, but it doesn't do escapes
like \n. This allows: LOAD DATA ... ENCLOSED BY '"' ESCAPED BY '"'
with data like: "fie""ld1", "field2"
*/
if (escape_char != enclosed_char || chr == escape_char)
{
*to++ = (byte) unescape((char) chr);
continue;
}
else
{
PUSH(chr);
chr= escape_char;
}
}
#ifdef ALLOW_LINESEPARATOR_IN_STRINGS
if (chr == line_term_char)