History

Properly determine CSV delimiter (#17459)

* Fixes #16558 CSV delimiter determiner * Fixes #16558 - properly determine CSV delmiiter * Moves quoteString to a new function * Adds big test with lots of commas for tab delimited csv * Adds comments * Shortens the text of the test * Removes single quotes from regexp as only double quotes need to be searched * Fixes spelling * Fixes check of length as it probalby will only be 1e4, not greater * Makes sample size a const, properly removes truncated line * Makes sample size a const, properly removes truncated line * Fixes comment * Fixes comment * tests for FormatError() function * Adds logic to find the limiter before or after a quoted value * Simplifies regex * Error tests * Error tests * Update modules/csv/csv.go Co-authored-by: delvh <dev.lh@web.de> * Update modules/csv/csv.go Co-authored-by: delvh <dev.lh@web.de> * Adds comments * Update modules/csv/csv.go Co-authored-by: delvh <dev.lh@web.de>

Richard Mahn committed 5 years ago

Commit 40c84511 parent 63c0dc85 files · +642 −94Browse files

Showing the changes to services/gitdiff (1 of 5 files). Show all

Unified · Split

services/gitdiff/csv_test.go+4−4
@@ -194,16 +194,16 @@ c,d,e`, · 193 unmodified lines
194 194
195 var baseReader *csv.Reader195 var baseReader *csv.Reader
196 if len(c.base) > 0 {196 if len(c.base) > 0 {
197 baseReader, err = csv_module.CreateReaderAndGuessDelimiter(strings.NewReader(c.base))197 baseReader, err = csv_module.CreateReaderAndDetermineDelimiter(nil, strings.NewReader(c.base))
198 if err != nil {198 if err != nil {
199 t.Errorf("CreateReaderAndGuessDelimiter failed: %s", err)199 t.Errorf("CreateReaderAndDetermineDelimiter failed: %s", err)
200 }200 }
201 }201 }
202 var headReader *csv.Reader202 var headReader *csv.Reader
203 if len(c.head) > 0 {203 if len(c.head) > 0 {
204 headReader, err = csv_module.CreateReaderAndGuessDelimiter(strings.NewReader(c.head))204 headReader, err = csv_module.CreateReaderAndDetermineDelimiter(nil, strings.NewReader(c.head))
205 if err != nil {205 if err != nil {
206 t.Errorf("CreateReaderAndGuessDelimiter failed: %s", err)206 t.Errorf("CreateReaderAndDetermineDelimiter failed: %s", err)
207 }207 }
208 }208 }
209 209