From 1cf075fdff3b685073f6d079f8dee44776701c2e Mon Sep 17 00:00:00 2001 From: Jarek Jarcec Cecho Date: Mon, 5 Jan 2015 12:13:59 +0100 Subject: [PATCH] SQOOP-1969: Support getColumnSize method for Schema class (Qian Xu via Jarek Jarcec Cecho) --- common/src/main/java/org/apache/sqoop/schema/Schema.java | 8 ++++++-- .../sqoop/connector/idf/CSVIntermediateDataFormat.java | 2 +- .../apache/sqoop/connector/matcher/LocationMatcher.java | 2 +- .../org/apache/sqoop/connector/matcher/NameMatcher.java | 2 +- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/common/src/main/java/org/apache/sqoop/schema/Schema.java b/common/src/main/java/org/apache/sqoop/schema/Schema.java index 5951e36a..189dbe91 100644 --- a/common/src/main/java/org/apache/sqoop/schema/Schema.java +++ b/common/src/main/java/org/apache/sqoop/schema/Schema.java @@ -21,9 +21,9 @@ import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.schema.type.Column; +import java.util.ArrayList; import java.util.Date; import java.util.HashSet; -import java.util.LinkedList; import java.util.List; import java.util.Set; @@ -59,7 +59,7 @@ public class Schema { private Schema() { creationDate = new Date(); - columns = new LinkedList(); + columns = new ArrayList(); columNames = new HashSet(); } @@ -123,6 +123,10 @@ public List getColumnsList() { return columns; } + public int getColumnsCount() { + return columns.size(); + } + public boolean isEmpty() { return columns.size() == 0; } 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 846aefdf..ad1dc04f 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 @@ -192,7 +192,7 @@ public Object[] getObjectData() { return null; } - if (fieldStringArray.length != schema.getColumnsArray().length) { + if (fieldStringArray.length != schema.getColumnsCount()) { throw new SqoopException(CSVIntermediateDataFormatError.CSV_INTERMEDIATE_DATA_FORMAT_0005, "The data " + getCSVTextData() + " has the wrong number of fields."); } diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/LocationMatcher.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/LocationMatcher.java index 879684c2..01adaf08 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/LocationMatcher.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/LocationMatcher.java @@ -42,7 +42,7 @@ public LocationMatcher(Schema from, Schema to) { @Override public Object[] getMatchingData(Object[] fields) { - Object[] out = new Object[getToSchema().getColumnsArray().length]; + Object[] out = new Object[getToSchema().getColumnsCount()]; int i = 0; diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/NameMatcher.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/NameMatcher.java index 9c2f7d55..c01b916a 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/NameMatcher.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/NameMatcher.java @@ -35,7 +35,7 @@ public NameMatcher(Schema from, Schema to) { @Override public Object[] getMatchingData(Object[] fields) { - Object[] out = new Object[getToSchema().getColumnsArray().length]; + Object[] out = new Object[getToSchema().getColumnsCount()]; HashMap colNames = new HashMap();