diff options
author | unknown <jimw@mysql.com> | 2005-10-21 17:57:51 -0700 |
---|---|---|
committer | unknown <jimw@mysql.com> | 2005-10-21 17:57:51 -0700 |
commit | 2750dc8766017ddc6cbb13d25198df4477eb2a14 (patch) | |
tree | cea4796a7b3ab7f6b02ae382afb690e76669aa80 /sql/sql_load.cc | |
parent | 07fa475e26e47cc32e4225d1684e877ed19236b3 (diff) | |
parent | c686f699b22c8ff7f3f9f2a6f550cdcb23db4793 (diff) | |
download | mariadb-git-2750dc8766017ddc6cbb13d25198df4477eb2a14.tar.gz |
Merge mysql.com:/home/jimw/my/mysql-4.1-11203
into mysql.com:/home/jimw/my/mysql-4.1-clean
sql/sql_load.cc:
Auto merged
mysql-test/r/loaddata.result:
Resolve conflict
mysql-test/t/loaddata.test:
Resolve conflict
Diffstat (limited to 'sql/sql_load.cc')
-rw-r--r-- | sql/sql_load.cc | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/sql/sql_load.cc b/sql/sql_load.cc index 4d09da70ef7..3b7c6608aef 100644 --- a/sql/sql_load.cc +++ b/sql/sql_load.cc @@ -806,8 +806,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) |