You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sqoop.apache.org by ab...@apache.org on 2015/01/23 07:51:18 UTC

sqoop git commit: SQOOP-1988: Sqoop2: isNull handling should be moved to CSVIntermediateDataFormat

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 <ab...@apache.org>
Authored: Thu Jan 22 22:50:39 2015 -0800
Committer: Abraham Elmahrek <ab...@apache.org>
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.
    */