diff options
author | gkodinov/kgeorge@magare.gmz <> | 2007-07-04 11:46:45 +0300 |
---|---|---|
committer | gkodinov/kgeorge@magare.gmz <> | 2007-07-04 11:46:45 +0300 |
commit | 66bfc2136270d2d508bcb3e6cd87624722ea69c2 (patch) | |
tree | f0577c58f0635bb6dd887750a45091691f20c1db /sql/sql_class.cc | |
parent | da7e78cead5415200d357245734a2f55d35f9105 (diff) | |
parent | 79622efe7c6f84f0347456f5c05326239e042c48 (diff) | |
download | mariadb-git-66bfc2136270d2d508bcb3e6cd87624722ea69c2.tar.gz |
Merge magare.gmz:/home/kgeorge/mysql/work/mysql-5.0-opt
into magare.gmz:/home/kgeorge/mysql/work/merge-5.1-opt
Diffstat (limited to 'sql/sql_class.cc')
-rw-r--r-- | sql/sql_class.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 40b37ed7405..677454d5b6a 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -1445,6 +1445,7 @@ select_export::prepare(List<Item> &list, SELECT_LEX_UNIT *u) field_sep_char= (exchange->enclosed->length() ? (*exchange->enclosed)[0] : field_term_length ? (*exchange->field_term)[0] : INT_MAX); escape_char= (exchange->escaped->length() ? (*exchange->escaped)[0] : -1); + is_ambiguous_field_sep= test(strchr(ESCAPE_CHARS, field_sep_char)); line_sep_char= (exchange->line_term->length() ? (*exchange->line_term)[0] : INT_MAX); if (!field_term_length) @@ -1585,7 +1586,9 @@ bool select_export::send_data(List<Item> &items) NEED_ESCAPING(pos[1]))) { char tmp_buff[2]; - tmp_buff[0]= escape_char; + tmp_buff[0]= ((int) *pos == field_sep_char && + is_ambiguous_field_sep) ? + field_sep_char : escape_char; tmp_buff[1]= *pos ? *pos : '0'; if (my_b_write(&cache,(uchar*) start,(uint) (pos-start)) || my_b_write(&cache,(uchar*) tmp_buff,2)) |