From 5abcdd4d6dc7e0f65c0fca7c62d7a81c415cf526 Mon Sep 17 00:00:00 2001 From: Jarek Jarcec Cecho Date: Sun, 14 Dec 2014 22:41:41 -0800 Subject: [PATCH] SQOOP-1899: Minor change to CSVIDF to use Set instead of Lists (Veena Basavaraj via Jarek Jarcec Cecho) --- .../idf/CSVIntermediateDataFormat.java | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/CSVIntermediateDataFormat.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/CSVIntermediateDataFormat.java index 275321a4..73691aed 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/CSVIntermediateDataFormat.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/CSVIntermediateDataFormat.java @@ -37,7 +37,6 @@ import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; -import java.util.ArrayList; import java.util.HashSet; import java.util.LinkedList; import java.util.List; @@ -57,14 +56,14 @@ public class CSVIntermediateDataFormat extends IntermediateDataFormat { public static final Logger LOG = Logger.getLogger(CSVIntermediateDataFormat.class); - private final List stringTypeColumnIndices = new ArrayList(); - private final List bitTypeColumnIndices = new ArrayList(); - private final List byteTypeColumnIndices = new ArrayList(); - private final List listTypeColumnIndices = new ArrayList(); - private final List mapTypeColumnIndices = new ArrayList(); - private final List dateTimeTypeColumnIndices = new ArrayList(); - private final List dateTypeColumnIndices = new ArrayList(); - private final List timeColumnIndices = new ArrayList(); + private final Set stringTypeColumnIndices = new HashSet(); + private final Set bitTypeColumnIndices = new HashSet(); + private final Set byteTypeColumnIndices = new HashSet(); + private final Set listTypeColumnIndices = new HashSet(); + private final Set mapTypeColumnIndices = new HashSet(); + private final Set dateTimeTypeColumnIndices = new HashSet(); + private final Set dateTypeColumnIndices = new HashSet(); + private final Set timeColumnIndices = new HashSet(); private Schema schema; @@ -126,12 +125,11 @@ public void setSchema(Schema schema) { } /** - * Custom CSV parser that honors quoting and escaped quotes. All other - * escaping is handled elsewhere. + * Custom CSV Text parser that honors quoting and escaped quotes. * * @return String[] */ - private String[] getFieldStringArray() { + private String[] parseCSVString() { if (data == null) { return null; } @@ -188,7 +186,7 @@ public Object[] getObjectData() { } // fieldStringArray represents the csv fields parsed into string array - String[] fieldStringArray = getFieldStringArray(); + String[] fieldStringArray = parseCSVString(); if (fieldStringArray == null) { return null; @@ -207,12 +205,12 @@ public Object[] getObjectData() { objectArray[i] = null; continue; } - objectArray[i] = parseCSVStringArrayElement(fieldStringArray[i], columnArray[i]); + objectArray[i] = toObject(fieldStringArray[i], columnArray[i]); } return objectArray; } - private Object parseCSVStringArrayElement(String csvString, Column column) { + private Object toObject(String csvString, Column column) { Object returnValue = null; switch (column.getType()) {