Repository: sqoop Updated Branches: refs/heads/sqoop2 6c233b9b5 -> d95e7537a
SQOOP-1988: Sqoop2: isNull handling should be moved to CSVIntermediateDataFormat (Qian Xu via Abraham Elmahrek) Project: http://git-wip-us.apache.org/repos/asf/sqoop/repo Commit: http://git-wip-us.apache.org/repos/asf/sqoop/commit/d95e7537 Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/d95e7537 Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/d95e7537 Branch: refs/heads/sqoop2 Commit: d95e7537a313a02d86a963063e0313f9ed7c04d9 Parents: 6c233b9 Author: Abraham Elmahrek <[email protected]> Authored: Thu Jan 22 22:50:39 2015 -0800 Committer: Abraham Elmahrek <[email protected]> Committed: Thu Jan 22 22:50:39 2015 -0800 ---------------------------------------------------------------------- .../sqoop/connector/matcher/LocationMatcher.java | 3 +-- .../org/apache/sqoop/connector/matcher/Matcher.java | 9 --------- .../apache/sqoop/connector/matcher/NameMatcher.java | 14 ++++---------- .../connector/matcher/TestLocationMatcher.java | 14 -------------- .../sqoop/connector/matcher/TestNameMatcher.java | 16 ---------------- 5 files changed, 5 insertions(+), 51 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/sqoop/blob/d95e7537/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/LocationMatcher.java ---------------------------------------------------------------------- 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 10772d9..917b713 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 @@ -49,8 +49,7 @@ public class LocationMatcher extends Matcher { for (Column col : getToSchema().getColumnsList()) { if (i < fields.length) { - Object value = fields[i]; - out[i] = isNull(value) ? null : value; + out[i] = fields[i]; } // We ran out of fields before we ran out of schema else { http://git-wip-us.apache.org/repos/asf/sqoop/blob/d95e7537/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/Matcher.java ---------------------------------------------------------------------- diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/Matcher.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/Matcher.java index 899f734..bd1ef7e 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/Matcher.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/Matcher.java @@ -66,15 +66,6 @@ public abstract class Matcher { return toSchema; } - protected boolean isNull(Object value) { - if (value == null || value.equals("NULL") - || value.equals("null") || value.equals("'null'") - || value.equals("")) { - return true; - } - return false; - } - protected void tryFillNullInArrayForUnexpectedColumn(Column column, Object[] array, int index) throws SqoopException { if (!column.isNullable()) { http://git-wip-us.apache.org/repos/asf/sqoop/blob/d95e7537/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/NameMatcher.java ---------------------------------------------------------------------- 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 365cb87..9499a99 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 @@ -59,16 +59,10 @@ public class NameMatcher extends Matcher { int i = 0; for (Column toCol : getToSchema().getColumnsList()) { - boolean assigned = false; - if (fromColNameIndexMap.containsKey(toCol.getName())) { - int fromIndex = fromColNameIndexMap.get(toCol.getName()); - if (fromIndex < fields.length) { - Object value = fields[fromIndex]; - out[i] = isNull(value) ? null : value; - assigned = true; - } - } - if (!assigned) { + Integer fromIndex = fromColNameIndexMap.get(toCol.getName()); + if (fromIndex != null && fromIndex < fields.length) { + out[i] = fields[fromIndex]; + } else { tryFillNullInArrayForUnexpectedColumn(toCol, out, i); } i++; http://git-wip-us.apache.org/repos/asf/sqoop/blob/d95e7537/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/matcher/TestLocationMatcher.java ---------------------------------------------------------------------- diff --git a/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/matcher/TestLocationMatcher.java b/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/matcher/TestLocationMatcher.java index f23694d..71b35a9 100644 --- a/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/matcher/TestLocationMatcher.java +++ b/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/matcher/TestLocationMatcher.java @@ -63,20 +63,6 @@ public class TestLocationMatcher { } /** - * If a field contains any "nullable" value, it should be converted to null. - */ - @Test - public void testNullableFieldConvert() { - matcher = new LocationMatcher( - SchemaFixture.createSchema("from", 5), - SchemaFixture.createSchema("to", 5)); - Object[] fields = new Object[] {null, "NULL", "null", "'null'", ""}; - - Object[] actual = matcher.getMatchingData(fields); - assertArrayEquals(new Object[] {null, null, null, null, null}, actual); - } - - /** * If TO schema has more fields than FROM schema, and all of the extra fields * are "nullable", their values will be set to null. */ http://git-wip-us.apache.org/repos/asf/sqoop/blob/d95e7537/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/matcher/TestNameMatcher.java ---------------------------------------------------------------------- diff --git a/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/matcher/TestNameMatcher.java b/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/matcher/TestNameMatcher.java index 742a35c..9c4b1ba 100644 --- a/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/matcher/TestNameMatcher.java +++ b/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/matcher/TestNameMatcher.java @@ -63,22 +63,6 @@ public class TestNameMatcher { } /** - * If a field contains any "nullable" value, it should be converted to null. - */ - @Test - public void testNullableFieldConvert() { - matcher = new NameMatcher( - SchemaFixture.createSchema("from", - new String[]{"text1", "text2", "text3", "text4", "text5"}), - SchemaFixture.createSchema("to", - new String[]{"text5", "text4", "text2", "text3", "text1"})); - Object[] fields = new Object[] {null, "NULL", "null", "'null'", ""}; - - Object[] actual = matcher.getMatchingData(fields); - assertArrayEquals(new Object[] {null, null, null, null, null}, actual); - } - - /** * If TO schema has more fields than FROM schema, and all of the extra fields * are "nullable", their values will be set to null. */
