diff --git a/parser/parser.y b/parser/parser.y index fdf7a637c6095..1721e01a487ff 100644 --- a/parser/parser.y +++ b/parser/parser.y @@ -7058,10 +7058,14 @@ Fields: }else if len(str) != 0 { enclosed = str[0] } + var escaped byte + if len(escape) > 0 { + escaped = escape[0] + } $$ = &ast.FieldsClause{ Terminated: $2.(string), Enclosed: enclosed, - Escaped: escape[0], + Escaped: escaped, } } diff --git a/parser/parser_test.go b/parser/parser_test.go index b369b0f268a8b..85d5d7d3ade4f 100644 --- a/parser/parser_test.go +++ b/parser/parser_test.go @@ -394,6 +394,7 @@ func (s *testParserSuite) TestDMLStmt(c *C) { {"load data local infile '/tmp/t.csv' into table t fields terminated by 'ab' enclosed by 'b' (a,b) ignore 1 lines", false}, {"load data local infile '/tmp/t.csv' into table t lines starting by 'ab' terminated by 'xy' ignore 1 lines", true}, {"load data local infile '/tmp/t.csv' into table t fields terminated by 'ab' enclosed by 'b' escaped by '*' ignore 1 lines (a,b)", true}, + {"load data local infile '/tmp/t.csv' into table t fields terminated by 'ab' enclosed by 'b' escaped by ''", true}, // select for update {"SELECT * from t for update", true},