mirror of
https://github.com/minio/minio.git
synced 2025-11-21 10:16:03 -05:00
sql: Add support of escape quote in CSV (#9231)
This commit modifies csv parser, a fork of golang csv parser to support a custom quote escape character. The quote escape character is used to escape the quote character when a csv field contains a quote character as part of data.
This commit is contained in:
@@ -63,7 +63,13 @@ func TestRead(t *testing.T) {
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
record.WriteCSV(&result, []rune(c.fieldDelimiter)[0], '"', false)
|
||||
opts := sql.WriteCSVOpts{
|
||||
FieldDelimiter: []rune(c.fieldDelimiter)[0],
|
||||
Quote: '"',
|
||||
QuoteEscape: '"',
|
||||
AlwaysQuote: false,
|
||||
}
|
||||
record.WriteCSV(&result, opts)
|
||||
result.Truncate(result.Len() - 1)
|
||||
result.WriteString(c.recordDelimiter)
|
||||
}
|
||||
@@ -242,8 +248,14 @@ func TestReadExtended(t *testing.T) {
|
||||
break
|
||||
}
|
||||
if fields < 10 {
|
||||
opts := sql.WriteCSVOpts{
|
||||
FieldDelimiter: ',',
|
||||
Quote: '"',
|
||||
QuoteEscape: '"',
|
||||
AlwaysQuote: false,
|
||||
}
|
||||
// Write with fixed delimiters, newlines.
|
||||
err := record.WriteCSV(&result, ',', '"', false)
|
||||
err := record.WriteCSV(&result, opts)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
@@ -453,8 +465,15 @@ func TestReadFailures(t *testing.T) {
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
|
||||
opts := sql.WriteCSVOpts{
|
||||
FieldDelimiter: ',',
|
||||
Quote: '"',
|
||||
QuoteEscape: '"',
|
||||
AlwaysQuote: false,
|
||||
}
|
||||
// Write with fixed delimiters, newlines.
|
||||
err := record.WriteCSV(&result, ',', '"', false)
|
||||
err := record.WriteCSV(&result, opts)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user