You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sqoop.apache.org by ja...@apache.org on 2014/10/06 15:47:16 UTC

git commit: SQOOP-1562: Sqoop2: BIT handling in CSV IDF

Repository: sqoop
Updated Branches:
  refs/heads/SQOOP-1367 3cb981d48 -> d8bd2a9c2


SQOOP-1562: Sqoop2: BIT handling in CSV IDF

(Abraham Elmahrek via Jarek Jarcec Cecho)


Project: http://git-wip-us.apache.org/repos/asf/sqoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/sqoop/commit/d8bd2a9c
Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/d8bd2a9c
Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/d8bd2a9c

Branch: refs/heads/SQOOP-1367
Commit: d8bd2a9c2faf5d0781d2f4a7f302257786d71215
Parents: 3cb981d
Author: Jarek Jarcec Cecho <ja...@apache.org>
Authored: Mon Oct 6 06:46:46 2014 -0700
Committer: Jarek Jarcec Cecho <ja...@apache.org>
Committed: Mon Oct 6 06:46:46 2014 -0700

----------------------------------------------------------------------
 .../idf/CSVIntermediateDataFormat.java          |  3 ++-
 .../idf/TestCSVIntermediateDataFormat.java      | 25 +++++++++++++++++++-
 2 files changed, 26 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/sqoop/blob/d8bd2a9c/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/CSVIntermediateDataFormat.java
----------------------------------------------------------------------
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 3c3543c..7eb1d8d 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
@@ -223,7 +223,8 @@ public class CSVIntermediateDataFormat extends IntermediateDataFormat<String> {
           out[i] = LocalDateTime.parse(fields[i]);
           break;
         case BIT:
-          out[i] = fields[i];
+          out[i] = Boolean.valueOf(fields[i].equals("1")
+              || fields[i].toLowerCase().equals("true"));
           break;
         default:
           throw new SqoopException(IntermediateDataFormatError.INTERMEDIATE_DATA_FORMAT_0004, "Column type from schema was not recognized for " + colType);

http://git-wip-us.apache.org/repos/asf/sqoop/blob/d8bd2a9c/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/idf/TestCSVIntermediateDataFormat.java
----------------------------------------------------------------------
diff --git a/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/idf/TestCSVIntermediateDataFormat.java b/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/idf/TestCSVIntermediateDataFormat.java
index 3159883..74f2e07 100644
--- a/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/idf/TestCSVIntermediateDataFormat.java
+++ b/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/idf/TestCSVIntermediateDataFormat.java
@@ -19,6 +19,7 @@
 package org.apache.sqoop.connector.idf;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
@@ -28,6 +29,7 @@ import java.util.Arrays;
 import org.apache.sqoop.common.SqoopException;
 import org.apache.sqoop.schema.Schema;
 import org.apache.sqoop.schema.type.Binary;
+import org.apache.sqoop.schema.type.Bit;
 import org.apache.sqoop.schema.type.Date;
 import org.apache.sqoop.schema.type.DateTime;
 import org.apache.sqoop.schema.type.FixedPoint;
@@ -195,7 +197,7 @@ public class TestCSVIntermediateDataFormat {
 
     Object[] in = {strData};
     Object[] inCopy = new Object[1];
-    System.arraycopy(in,0,inCopy,0,in.length);
+    System.arraycopy(in, 0, inCopy, 0, in.length);
 
     // Modifies the input array, so we use the copy to confirm
     data.setObjectData(in);
@@ -249,6 +251,27 @@ public class TestCSVIntermediateDataFormat {
     }
   }
 
+  @Test
+  public void testBit() {
+    Schema schema = new Schema("test");
+    schema.addColumn(new Bit("1"));
+    data.setSchema(schema);
+
+    for (String trueBit : new String[]{
+        "true", "TRUE", "1"
+    }) {
+      data.setTextData(trueBit);
+      assertTrue((Boolean) data.getObjectData()[0]);
+    }
+
+    for (String falseBit : new String[]{
+        "false", "FALSE", "0"
+    }) {
+      data.setTextData(falseBit);
+      assertFalse((Boolean) data.getObjectData()[0]);
+    }
+  }
+
   @Test(expected=SqoopException.class)
   public void testEmptySchema() {
     String testData = "10,34,'54','random data'," + getByteFieldString(new byte[] { (byte) -112, (byte) 54})