Skip to content

Commit

Permalink
0001159: PostgresBulkDatabaseWriter using the wrong escape character …
Browse files Browse the repository at this point in the history
…for bulk CSV
  • Loading branch information
chenson42 committed Apr 4, 2013
1 parent f133808 commit 8537527
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -99,9 +99,13 @@ public static String escapeCsvData(String[] data) {
}

public static String escapeCsvData(String[] data, char recordDelimiter, char textQualifier) {
return escapeCsvData(data, recordDelimiter, textQualifier, CsvWriter.ESCAPE_MODE_BACKSLASH);
}

public static String escapeCsvData(String[] data, char recordDelimiter, char textQualifier, int escapeMode) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
CsvWriter writer = new CsvWriter(new OutputStreamWriter(out), ',');
writer.setEscapeMode(CsvWriter.ESCAPE_MODE_BACKSLASH);
writer.setEscapeMode(escapeMode);
writer.setRecordDelimiter(recordDelimiter);
writer.setTextQualifier(textQualifier);
writer.setUseTextQualifier(true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,12 @@ public void testLastElementIsNull() {
Assert.assertNull("Expected null. Instead received: " + expectedNull, expectedNull);
}

@Test
public void testEscapeSingleQuote() {
Assert.assertEquals("'L\\'' Hospitalet',,'277000043'", CsvUtils.escapeCsvData(new String[] {"L\\' Hospitalet",null,"277000043"}, '\n', '\''));

}

@Test
public void testLineFeedsInCsv() {
String line = "\"test\",\"line\nfeed\"";
Expand Down

0 comments on commit 8537527

Please sign in to comment.