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/22 03:32:35 UTC

sqoop git commit: SQOOP-2022: Sqoop2: SqoopIDFUtils uses bit size instead of byteSize to check for INT/LONG/FLOAT/Double

Repository: sqoop
Updated Branches:
  refs/heads/sqoop2 9deed1c2c -> 4ac3c3862


SQOOP-2022: Sqoop2: SqoopIDFUtils uses bit size instead of byteSize to check for INT/LONG/FLOAT/Double

(Veena Basavaraj 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/4ac3c386
Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/4ac3c386
Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/4ac3c386

Branch: refs/heads/sqoop2
Commit: 4ac3c3862bb0a7af3d300badbfe51cb43e0d097c
Parents: 9deed1c
Author: Abraham Elmahrek <ab...@apache.org>
Authored: Wed Jan 21 18:30:39 2015 -0800
Committer: Abraham Elmahrek <ab...@apache.org>
Committed: Wed Jan 21 18:32:08 2015 -0800

----------------------------------------------------------------------
 .../sqoop/json/util/SchemaSerialization.java    |  10 +-
 .../apache/sqoop/schema/type/FixedPoint.java    |  34 ++----
 .../apache/sqoop/schema/type/FloatingPoint.java |  10 +-
 .../json/util/TestSchemaSerialization.java      |   4 +-
 .../connector/jdbc/util/SqlTypesUtils.java      |  13 +-
 .../sqoop/connector/jdbc/TestExtractor.java     |   4 +-
 .../connector/jdbc/TestFromInitializer.java     |   4 +-
 .../connector/common/AvroDataTypeUtil.java      |   5 +-
 .../sqoop/connector/common/SqoopAvroUtils.java  |   4 +-
 .../sqoop/connector/common/SqoopIDFUtils.java   |  23 +++-
 .../connector/common/TestSqoopIDFUtils.java     | 118 +++++++++++++++++--
 .../idf/TestAVROIntermediateDataFormat.java     |  16 +--
 .../idf/TestCSVIntermediateDataFormat.java      |  90 +++++++-------
 .../idf/TestJSONIntermediateDataFormat.java     |  16 +--
 .../java/org/apache/sqoop/job/TestMatching.java |  10 +-
 .../apache/sqoop/job/util/MRJobTestUtil.java    |   2 +-
 16 files changed, 232 insertions(+), 131 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/sqoop/blob/4ac3c386/common/src/main/java/org/apache/sqoop/json/util/SchemaSerialization.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/sqoop/json/util/SchemaSerialization.java b/common/src/main/java/org/apache/sqoop/json/util/SchemaSerialization.java
index a6425fe..4ec2f65 100644
--- a/common/src/main/java/org/apache/sqoop/json/util/SchemaSerialization.java
+++ b/common/src/main/java/org/apache/sqoop/json/util/SchemaSerialization.java
@@ -80,7 +80,7 @@ public class SchemaSerialization {
   private static final String TIMEZONE = "timezone";
   private static final String PRECISION = "precision";
   private static final String SCALE = "scale";
-  private static final String UNSIGNED = "unsigned";
+  private static final String SIGNED = "signed";
   private static final String JDBC_TYPE = "jdbc-type";
 
   @SuppressWarnings("unchecked")
@@ -166,7 +166,7 @@ public class SchemaSerialization {
       break;
     case FIXED_POINT:
       ret.put(BYTE_SIZE, ((FixedPoint) column).getByteSize());
-      ret.put(UNSIGNED, ((FixedPoint) column).getUnsigned());
+      ret.put(SIGNED, ((FixedPoint) column).isSigned());
       break;
     case FLOATING_POINT:
       ret.put(BYTE_SIZE, ((FloatingPoint) column).getByteSize());
@@ -251,13 +251,13 @@ public class SchemaSerialization {
       output = new Enum(name, options);
       break;
     case FIXED_POINT:
-      Boolean unsigned = (Boolean) obj.get(UNSIGNED);
+      Boolean signed = (Boolean) obj.get(SIGNED);
       Long fixedPointByteSize = (Long) obj.get(BYTE_SIZE);
-      output = new FixedPoint(name).setByteSize(fixedPointByteSize).setUnsigned(unsigned);
+      output = new FixedPoint(name, fixedPointByteSize, signed);
       break;
     case FLOATING_POINT:
       Long floatingPointByteSize = (Long) obj.get(BYTE_SIZE);
-      output = new FloatingPoint(name).setByteSize(floatingPointByteSize);
+      output = new FloatingPoint(name, floatingPointByteSize);
       break;
     case MAP:
       output = new Map(name, key, value);

http://git-wip-us.apache.org/repos/asf/sqoop/blob/4ac3c386/common/src/main/java/org/apache/sqoop/schema/type/FixedPoint.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/sqoop/schema/type/FixedPoint.java b/common/src/main/java/org/apache/sqoop/schema/type/FixedPoint.java
index 84a76ae..7488ae9 100644
--- a/common/src/main/java/org/apache/sqoop/schema/type/FixedPoint.java
+++ b/common/src/main/java/org/apache/sqoop/schema/type/FixedPoint.java
@@ -41,40 +41,26 @@ public class FixedPoint extends AbstractNumber {
    */
   private Long byteSize;
 
-  private Boolean unsigned;
+  private Boolean signed;
 
-  public FixedPoint(String name) {
-    super(name);
-  }
-
-  public FixedPoint(String name, Long byteSize, Boolean unsigned) {
+  public FixedPoint(String name, Long byteSize, Boolean signed) {
     super(name);
     this.byteSize = byteSize;
-    this.unsigned = unsigned;
+    this.signed = signed;
   }
 
-  public FixedPoint(String name, Boolean nullable, Long byteSize, Boolean unsigned) {
+  public FixedPoint(String name, Boolean nullable, Long byteSize, Boolean signed) {
     super(name, nullable);
     this.byteSize = byteSize;
-    this.unsigned = unsigned;
+    this.signed = signed;
   }
 
   public Long getByteSize() {
     return byteSize;
   }
 
-  public FixedPoint setByteSize(Long byteSize) {
-    this.byteSize = byteSize;
-    return this;
-  }
-
-  public Boolean getUnsigned() {
-    return unsigned;
-  }
-
-  public FixedPoint setUnsigned(Boolean unsigned) {
-    this.unsigned = unsigned;
-    return this;
+  public Boolean isSigned() {
+    return signed;
   }
 
   @Override
@@ -87,7 +73,7 @@ public class FixedPoint extends AbstractNumber {
     return new StringBuilder("FixedPoint{")
       .append(super.toString())
       .append(",byteSize=").append(byteSize)
-      .append(",unsigned=").append(unsigned)
+      .append(",signed=").append(signed)
       .append("}")
       .toString();
   }
@@ -102,7 +88,7 @@ public class FixedPoint extends AbstractNumber {
 
     if (byteSize != null ? !byteSize.equals(that.byteSize) : that.byteSize != null)
       return false;
-    if (unsigned != null ? !unsigned.equals(that.unsigned) : that.unsigned != null)
+    if (signed != null ? !signed.equals(that.signed) : that.signed != null)
       return false;
 
     return true;
@@ -112,7 +98,7 @@ public class FixedPoint extends AbstractNumber {
   public int hashCode() {
     int result = super.hashCode();
     result = 31 * result + (byteSize != null ? byteSize.hashCode() : 0);
-    result = 31 * result + (unsigned != null ? unsigned.hashCode() : 0);
+    result = 31 * result + (signed != null ? signed.hashCode() : 0);
     return result;
   }
 }

http://git-wip-us.apache.org/repos/asf/sqoop/blob/4ac3c386/common/src/main/java/org/apache/sqoop/schema/type/FloatingPoint.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/sqoop/schema/type/FloatingPoint.java b/common/src/main/java/org/apache/sqoop/schema/type/FloatingPoint.java
index 4fa0c30..5f359e1 100644
--- a/common/src/main/java/org/apache/sqoop/schema/type/FloatingPoint.java
+++ b/common/src/main/java/org/apache/sqoop/schema/type/FloatingPoint.java
@@ -32,13 +32,10 @@ public class FloatingPoint extends AbstractNumber {
   /**
   This field will come handy in connector that might require to use the
   size information on the schema object to do additional type mappings in their source
-  Read more infomration : https://issues.apache.org/jira/secure/attachment/12589331/Sqoop2Datatypes.pdf
+  Read more information : https://issues.apache.org/jira/secure/attachment/12589331/Sqoop2Datatypes.pdf
   */
   private Long byteSize;
 
-  public FloatingPoint(String name) {
-    super(name);
-  }
   public FloatingPoint(String name, Long byteSize) {
     super(name);
     this.byteSize = byteSize;
@@ -53,11 +50,6 @@ public class FloatingPoint extends AbstractNumber {
     return byteSize;
   }
 
-  public FloatingPoint setByteSize(Long byteSize) {
-    this.byteSize = byteSize;
-    return this;
-  }
-
   @Override
   public ColumnType getType() {
     return ColumnType.FLOATING_POINT;

http://git-wip-us.apache.org/repos/asf/sqoop/blob/4ac3c386/common/src/test/java/org/apache/sqoop/json/util/TestSchemaSerialization.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/sqoop/json/util/TestSchemaSerialization.java b/common/src/test/java/org/apache/sqoop/json/util/TestSchemaSerialization.java
index 0cb7175..b7741ec 100644
--- a/common/src/test/java/org/apache/sqoop/json/util/TestSchemaSerialization.java
+++ b/common/src/test/java/org/apache/sqoop/json/util/TestSchemaSerialization.java
@@ -193,8 +193,8 @@ public class TestSchemaSerialization {
       .addColumn(new DateTime("e", true, true))
       .addColumn(new Decimal("f"))
       .addColumn(new Enum("g", Collections.unmodifiableSet(new HashSet<String>(Arrays.asList(new String[] { "X", "Y" })))))
-      .addColumn(new FixedPoint("h"))
-      .addColumn(new FloatingPoint("i"))
+      .addColumn(new FixedPoint("h", 2L, false))
+      .addColumn(new FloatingPoint("i", 4L))
       .addColumn(new Map("j", new Text("j1"), new Text("j2")))
       .addColumn(new Set("k", new Text("k1")))
       .addColumn(new Text("l"))

http://git-wip-us.apache.org/repos/asf/sqoop/blob/4ac3c386/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/util/SqlTypesUtils.java
----------------------------------------------------------------------
diff --git a/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/util/SqlTypesUtils.java b/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/util/SqlTypesUtils.java
index 8228397..d84498e 100644
--- a/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/util/SqlTypesUtils.java
+++ b/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/util/SqlTypesUtils.java
@@ -48,9 +48,13 @@ public class SqlTypesUtils {
     switch (sqlType) {
       case Types.SMALLINT:
       case Types.TINYINT:
-        return new FixedPoint(columnName).setByteSize(2L);
+        // only supports signed values
+        return new FixedPoint(columnName, 2L, true);
       case Types.INTEGER:
-        return new FixedPoint(columnName).setByteSize(4L);
+        // only supports signed values
+        return new FixedPoint(columnName, 4L, true);
+      case Types.BIGINT:
+        return new FixedPoint(columnName, 8L, true);
 
       case Types.CLOB:
       case Types.VARCHAR:
@@ -72,12 +76,13 @@ public class SqlTypesUtils {
 
       case Types.FLOAT:
       case Types.REAL:
+        return new FloatingPoint(columnName, 4L);
       case Types.DOUBLE:
-        return new FloatingPoint(columnName);
+        return new FloatingPoint(columnName, 8L);
 
+      //TODO:SQOOP-2027 The following mapping needs to be revisited
       case Types.NUMERIC:
       case Types.DECIMAL:
-      case Types.BIGINT:
         return new Decimal(columnName);
 
       case Types.BIT:

http://git-wip-us.apache.org/repos/asf/sqoop/blob/4ac3c386/connector/connector-generic-jdbc/src/test/java/org/apache/sqoop/connector/jdbc/TestExtractor.java
----------------------------------------------------------------------
diff --git a/connector/connector-generic-jdbc/src/test/java/org/apache/sqoop/connector/jdbc/TestExtractor.java b/connector/connector-generic-jdbc/src/test/java/org/apache/sqoop/connector/jdbc/TestExtractor.java
index 83599d3..f3ec607 100644
--- a/connector/connector-generic-jdbc/src/test/java/org/apache/sqoop/connector/jdbc/TestExtractor.java
+++ b/connector/connector-generic-jdbc/src/test/java/org/apache/sqoop/connector/jdbc/TestExtractor.java
@@ -100,7 +100,7 @@ public class TestExtractor {
     Schema schema = new Schema("TestExtractor");
     // dummy columns added, all we need is the column count to match to the
     // result set
-    schema.addColumn(new FixedPoint("c1")).addColumn(new Decimal("c2")).addColumn(new Text("c3")).addColumn(new Date("c4"));
+    schema.addColumn(new FixedPoint("c1",2L, true)).addColumn(new Decimal("c2")).addColumn(new Text("c3")).addColumn(new Date("c4"));
 
     ExtractorContext extractorContext = new ExtractorContext(context, writer, schema);
 
@@ -140,7 +140,7 @@ public class TestExtractor {
     Schema schema = new Schema("TestExtractor");
     // dummy columns added, all we need is the column count to match to the
     // result set
-    schema.addColumn(new FixedPoint("c1")).addColumn(new Text("c2")).addColumn(new Date("c3"));
+    schema.addColumn(new FixedPoint("c1", 2L, true)).addColumn(new Text("c2")).addColumn(new Date("c3"));
 
     ExtractorContext extractorContext = new ExtractorContext(context, writer, schema);
 

http://git-wip-us.apache.org/repos/asf/sqoop/blob/4ac3c386/connector/connector-generic-jdbc/src/test/java/org/apache/sqoop/connector/jdbc/TestFromInitializer.java
----------------------------------------------------------------------
diff --git a/connector/connector-generic-jdbc/src/test/java/org/apache/sqoop/connector/jdbc/TestFromInitializer.java b/connector/connector-generic-jdbc/src/test/java/org/apache/sqoop/connector/jdbc/TestFromInitializer.java
index 249cd34..52003ab 100644
--- a/connector/connector-generic-jdbc/src/test/java/org/apache/sqoop/connector/jdbc/TestFromInitializer.java
+++ b/connector/connector-generic-jdbc/src/test/java/org/apache/sqoop/connector/jdbc/TestFromInitializer.java
@@ -102,8 +102,8 @@ public class TestFromInitializer {
    */
   public Schema getSchema(String name) {
     return new Schema(name)
-      .addColumn(new FixedPoint("ICOL").setByteSize(4L))
-      .addColumn(new FloatingPoint("DCOL"))
+      .addColumn(new FixedPoint("ICOL", 4L, true))
+      .addColumn(new FloatingPoint("DCOL", 8L))
       .addColumn(new Text("VCOL"))
     ;
   }

http://git-wip-us.apache.org/repos/asf/sqoop/blob/4ac3c386/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/AvroDataTypeUtil.java
----------------------------------------------------------------------
diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/AvroDataTypeUtil.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/AvroDataTypeUtil.java
index 759bd9f..43469a6 100644
--- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/AvroDataTypeUtil.java
+++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/AvroDataTypeUtil.java
@@ -76,12 +76,13 @@ public class AvroDataTypeUtil {
     assert type != Schema.Type.UNION;
     switch (type) {
       case INT:
+        return new FixedPoint(name, 4L, true);
       case LONG:
-        return new FixedPoint(name);
+        return new FixedPoint(name, 8L, true);
       case STRING:
         return new Text(name);
       case DOUBLE:
-        return new FloatingPoint(name);
+        return new FloatingPoint(name, 8L);
       case BOOLEAN:
         return new Bit(name);
       case BYTES:

http://git-wip-us.apache.org/repos/asf/sqoop/blob/4ac3c386/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/SqoopAvroUtils.java
----------------------------------------------------------------------
diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/SqoopAvroUtils.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/SqoopAvroUtils.java
index d62a8a4..5e6f238 100644
--- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/SqoopAvroUtils.java
+++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/SqoopAvroUtils.java
@@ -94,14 +94,14 @@ public class SqoopAvroUtils {
       return createEnumSchema(column);
     case FIXED_POINT:
       Long byteSize = ((FixedPoint) column).getByteSize();
-      if (byteSize != null && byteSize <= Integer.SIZE) {
+      if (SqoopIDFUtils.isInteger(column)) {
         return Schema.create(Schema.Type.INT);
       } else {
         return Schema.create(Schema.Type.LONG);
       }
     case FLOATING_POINT:
       byteSize = ((FloatingPoint) column).getByteSize();
-      if (byteSize != null && byteSize <= Float.SIZE) {
+      if (byteSize != null && byteSize <= (Float.SIZE/Byte.SIZE)) {
         return Schema.create(Schema.Type.FLOAT);
       } else {
         return Schema.create(Schema.Type.DOUBLE);

http://git-wip-us.apache.org/repos/asf/sqoop/blob/4ac3c386/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/SqoopIDFUtils.java
----------------------------------------------------------------------
diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/SqoopIDFUtils.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/SqoopIDFUtils.java
index 8630369..32f6a86 100644
--- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/SqoopIDFUtils.java
+++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/SqoopIDFUtils.java
@@ -97,9 +97,21 @@ public class SqoopIDFUtils {
 
   // ******** Number Column Type utils***********
 
-  public static String toCSVFixedPoint(Object obj, Column column) {
+  public static boolean isInteger(Column column) {
     Long byteSize = ((FixedPoint) column).getByteSize();
-    if (byteSize != null && byteSize <= Integer.SIZE) {
+    Boolean signed = ((FixedPoint) column).isSigned();
+
+    if (byteSize == null) {
+      return false;
+    }
+    if (signed != null && !signed) {
+      byteSize *= 2;
+    }
+    return byteSize <= (Integer.SIZE / Byte.SIZE);
+  }
+
+  public static String toCSVFixedPoint(Object obj, Column column) {
+    if (isInteger(column)) {
       return ((Integer) obj).toString();
     } else {
       return ((Long) obj).toString();
@@ -108,8 +120,7 @@ public class SqoopIDFUtils {
 
   public static Object toFixedPoint(String csvString, Column column) {
     Object returnValue;
-    Long byteSize = ((FixedPoint) column).getByteSize();
-    if (byteSize != null && byteSize <= Integer.SIZE) {
+    if (isInteger(column)) {
       returnValue = Integer.valueOf(csvString);
     } else {
       returnValue = Long.valueOf(csvString);
@@ -119,7 +130,7 @@ public class SqoopIDFUtils {
 
   public static String toCSVFloatingPoint(Object obj, Column column) {
     Long byteSize = ((FloatingPoint) column).getByteSize();
-    if (byteSize != null && byteSize <= Float.SIZE) {
+    if (byteSize != null && byteSize <= (Float.SIZE/Byte.SIZE)) {
       return ((Float) obj).toString();
     } else {
       return ((Double) obj).toString();
@@ -129,7 +140,7 @@ public class SqoopIDFUtils {
   public static Object toFloatingPoint(String csvString, Column column) {
     Object returnValue;
     Long byteSize = ((FloatingPoint) column).getByteSize();
-    if (byteSize != null && byteSize <= Float.SIZE) {
+    if (byteSize != null && byteSize <= (Float.SIZE/Byte.SIZE)) {
       returnValue = Float.valueOf(csvString);
     } else {
       returnValue = Double.valueOf(csvString);

http://git-wip-us.apache.org/repos/asf/sqoop/blob/4ac3c386/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/common/TestSqoopIDFUtils.java
----------------------------------------------------------------------
diff --git a/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/common/TestSqoopIDFUtils.java b/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/common/TestSqoopIDFUtils.java
index 1cef714..63c9535 100644
--- a/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/common/TestSqoopIDFUtils.java
+++ b/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/common/TestSqoopIDFUtils.java
@@ -20,8 +20,12 @@ package org.apache.sqoop.connector.common;
 import static org.testng.Assert.*;
 import static org.apache.sqoop.connector.common.SqoopIDFUtils.*;
 
+import org.apache.sqoop.common.SqoopException;
 import org.apache.sqoop.schema.type.AbstractComplexListType;
 import org.apache.sqoop.schema.type.Array;
+import org.apache.sqoop.schema.type.Column;
+import org.apache.sqoop.schema.type.FixedPoint;
+import org.apache.sqoop.schema.type.FloatingPoint;
 import org.apache.sqoop.schema.type.Text;
 import org.testng.annotations.Test;
 
@@ -35,7 +39,8 @@ public class TestSqoopIDFUtils {
 
   public static String getByteFieldString(byte[] byteFieldData) {
     try {
-      return new StringBuilder("'").append(new String(byteFieldData, BYTE_FIELD_CHARSET)).append("'").toString();
+      return new StringBuilder("'").append(new String(byteFieldData, BYTE_FIELD_CHARSET))
+          .append("'").toString();
     } catch (UnsupportedEncodingException e) {
       // Should never get to this point because ISO-8859-1 is a standard codec.
       return null;
@@ -115,12 +120,14 @@ public class TestSqoopIDFUtils {
     assertEquals(toString, expectedString);
   }
 
+  @Test
   public void testExample5EncodeToCSVString() {
     String test = new String(new char[] { 0x0A });
     String encodedText = toCSVString(test);
     assertEquals(encodedText, "'\\n'");
   }
 
+  @Test
   public void testExample5ToString() {
     String test = "'\\n'";
     String expectedString = new String(new char[] { 0x0A });
@@ -128,6 +135,7 @@ public class TestSqoopIDFUtils {
     assertEquals(toString, expectedString);
   }
 
+  @Test
   public void testExample6EncodeToCSVString() {
     String test = new String(new char[] { 0x0D });
     String encodedText = toCSVString(test);
@@ -135,6 +143,101 @@ public class TestSqoopIDFUtils {
   }
 
   @Test
+  public void testToCSVFixedPointWithIntSignedAsInteger() {
+    Column col = new FixedPoint("ft", 2L, true);
+    String encodedText = toCSVFixedPoint(1, col);
+    assertTrue(Integer.valueOf(encodedText) instanceof Integer);
+  }
+
+  @Test
+  public void testToCSVFixedPointWithIntSize4SignedAsInteger() {
+    Column col = new FixedPoint("ft", 4L, true);
+    String encodedText = toCSVFixedPoint(1, col);
+    assertTrue(Integer.valueOf(encodedText) instanceof Integer);
+  }
+
+  @Test(expectedExceptions = Exception.class)
+  public void testToCSVFixedPointWithLongSignedAsInteger() {
+    Column col = new FixedPoint("ft", 4L, true);
+    Long test = 459999999444L;
+    String encodedText = toCSVFixedPoint(test, col);
+    // should be a long
+    assertTrue(Integer.valueOf(encodedText) instanceof Integer);
+  }
+
+  @Test
+  public void testToCSVFixedPointWithIntSize2UnSignedAsInteger() {
+    Column col = new FixedPoint("ft", 2L, false);
+    Integer test = 45999999;
+    String encodedText = toCSVFixedPoint(test, col);
+    assertTrue(Integer.valueOf(encodedText) instanceof Integer);
+  }
+
+  @Test
+  public void testToCSVFixedPointWithIntSize16UnSignedAsLong() {
+    Column col = new FixedPoint("ft", 16L, false);
+    Long test = 1000000000L;
+    String encodedText = toCSVFixedPoint(test, col);
+    assertTrue(Long.valueOf(encodedText) instanceof Long);
+  }
+
+  @Test
+  public void testToCSVFixedPointWithIntUnSignedAsLong() {
+    Column col = new FixedPoint("ft", 4L, false);
+    // java does not have a concept of unsigned int, so it has to be a long for
+    // testing
+    long test = 100000000900000L;
+    String encodedText = toCSVFixedPoint(test, col);
+    assertTrue(Long.valueOf(encodedText) instanceof Long);
+  }
+
+  @Test
+  public void testToFixedPointReturnsInt() {
+    Column col = new FixedPoint("fixt", 4L, true);
+    assertTrue(toFixedPoint("233", col) instanceof Integer);
+  }
+
+  @Test
+  public void testToFixedPointReturnsLong() {
+    Column col = new FixedPoint("fixt", 8L, true);
+    assertTrue(toFixedPoint("233", col) instanceof Long);
+  }
+
+  @Test
+  public void testToFixedPointUnsignedReturnsLong() {
+    Column col = new FixedPoint("fixt", 4L, false);
+    assertTrue(toFixedPoint("2333333333333333", col) instanceof Long);
+  }
+
+  @Test
+  public void testToCSVFloatingPointAsFloat() {
+    Column col = new FloatingPoint("ft", 2L);
+    Float test = 2.3F;
+    String encodedText = toCSVFloatingPoint(test, col);
+    assertTrue(Float.valueOf(encodedText) instanceof Float);
+  }
+
+  @Test
+  public void testToFloatingPointReturnsFloat() {
+    Column col = new FloatingPoint("ft", 4L);
+    assertTrue(toFloatingPoint("2.33", col) instanceof Float);
+  }
+
+  @Test
+  public void testToCSVFloatingPointAsDouble() {
+    Column col = new FloatingPoint("ft", 5L);
+    Double test = 2.3D;
+    String encodedText = toCSVFloatingPoint(test, col);
+    assertTrue(Double.valueOf(encodedText) instanceof Double);
+  }
+
+  @Test
+  public void testToFloatingPointReturnsDouble() {
+    Column col = new FloatingPoint("ft", 8L);
+    assertTrue(toFloatingPoint("2.33", col) instanceof Double);
+  }
+
+  @Test
   public void testEncodeByteToCSVString() {
     // byte[0] = \r byte[1] = -112, byte[1] = 54 - 2's complements
     byte[] bytes = new byte[] { (byte) 0x0D, (byte) -112, (byte) 54 };
@@ -170,23 +273,22 @@ public class TestSqoopIDFUtils {
     list.add("B");
     Map<Object, Object> map = new HashMap<Object, Object>();
     map.put("A", list);
-    org.apache.sqoop.schema.type.Map mapCol = new org.apache.sqoop.schema.type.Map("a", new Text("t"), new Array("r", new Text(
-        "tr")));
+    org.apache.sqoop.schema.type.Map mapCol = new org.apache.sqoop.schema.type.Map("a", new Text(
+        "t"), new Array("r", new Text("tr")));
     String encodedText = toCSVMap(map, mapCol);
     assertEquals(encodedText, "'{\"A\":[\"A\",\"B\"]}'");
   }
-  
+
   @Test
   public void testParseCSVString() {
 
-    String csv= "'hello, world','34',45";
+    String csv = "'hello, world','34',45";
     String[] arr = parseCSVString(csv);
     assertEquals(arr.length, 3);
     assertEquals(arr[0], "'hello, world'");
     assertEquals(arr[1], "'34'");
     assertEquals(arr[2], "45");
-    
-  }
 
+  }
 
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/sqoop/blob/4ac3c386/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/idf/TestAVROIntermediateDataFormat.java
----------------------------------------------------------------------
diff --git a/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/idf/TestAVROIntermediateDataFormat.java b/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/idf/TestAVROIntermediateDataFormat.java
index dd7a3e1..b9a5ea1 100644
--- a/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/idf/TestAVROIntermediateDataFormat.java
+++ b/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/idf/TestAVROIntermediateDataFormat.java
@@ -79,22 +79,22 @@ public class TestAVROIntermediateDataFormat {
     options.add("NUME");
     enumCol = new org.apache.sqoop.schema.type.Enum("seven").setOptions(options);
     sqoopSchema
-        .addColumn(new FixedPoint("one"))
-        .addColumn(new FixedPoint("two", 2L, false))
+        .addColumn(new FixedPoint("one", 8L, true))
+        .addColumn(new FixedPoint("two", 2L, true))
         .addColumn(new Text("three"))
         .addColumn(new Text("four"))
         .addColumn(new Binary("five"))
         .addColumn(new Text("six"))
         .addColumn(enumCol)
-        .addColumn(new Array("eight", new Array("array", new FixedPoint("ft"))))
+        .addColumn(new Array("eight", new Array("array", new FixedPoint("ft",2L, false))))
         .addColumn(new org.apache.sqoop.schema.type.Map("nine", new Text("t1"), new Text("t2")))
         .addColumn(new Bit("ten"))
         .addColumn(new org.apache.sqoop.schema.type.DateTime("eleven", true, false))
         .addColumn(new org.apache.sqoop.schema.type.Time("twelve", false))
         .addColumn(new org.apache.sqoop.schema.type.Date("thirteen"))
-        .addColumn(new org.apache.sqoop.schema.type.FloatingPoint("fourteen"))
+        .addColumn(new org.apache.sqoop.schema.type.FloatingPoint("fourteen", 4L))
         .addColumn(
-            new org.apache.sqoop.schema.type.Set("fifteen", new Array("set", new FixedPoint("ftw"))));
+            new org.apache.sqoop.schema.type.Set("fifteen", new Array("set", new FixedPoint("ftw", 2L, false))));
     dataFormat = new AVROIntermediateDataFormat(sqoopSchema);
     avroSchema = SqoopAvroUtils.createAvroSchema(sqoopSchema);
   }
@@ -165,7 +165,7 @@ public class TestAVROIntermediateDataFormat {
     assertEquals(dateTime, out[10]);
     assertEquals(time, out[11]);
     assertEquals(date, out[12]);
-    assertEquals(13.44, out[13]);
+    assertEquals(13.44f, out[13]);
     assertEquals(set.length, 2);
     assertEquals(Arrays.deepToString(set), Arrays.deepToString((Object[]) out[14]));
 
@@ -215,7 +215,7 @@ public class TestAVROIntermediateDataFormat {
     avroObject.put("eleven", dateTime.toDate().getTime());
     avroObject.put("twelve", time.toDateTimeToday().getMillis());
     avroObject.put("thirteen", date.toDate().getTime());
-    avroObject.put("fourteen", 13.44);
+    avroObject.put("fourteen", 13.44f);
     List<Object> givenSetOne = new ArrayList<Object>();
     givenSetOne.add(11);
     givenSetOne.add(12);
@@ -288,7 +288,7 @@ public class TestAVROIntermediateDataFormat {
     out[11] = time;
     out[12] = date;
 
-    out[13] = 13.44;
+    out[13] = 13.44f;
     Object[] set0 = new Object[2];
     set0[0] = 11;
     set0[1] = 12;

http://git-wip-us.apache.org/repos/asf/sqoop/blob/4ac3c386/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 2556711..cbbbd44 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
@@ -43,6 +43,7 @@ import org.apache.sqoop.schema.type.Date;
 import org.apache.sqoop.schema.type.DateTime;
 import org.apache.sqoop.schema.type.Decimal;
 import org.apache.sqoop.schema.type.FixedPoint;
+import org.apache.sqoop.schema.type.FloatingPoint;
 import org.apache.sqoop.schema.type.Text;
 import org.apache.sqoop.schema.type.Time;
 import org.joda.time.DateTimeZone;
@@ -63,8 +64,8 @@ public class TestCSVIntermediateDataFormat {
   @Test
   public void testNullInputAsCSVTextInObjectArrayOut() {
     Schema schema = new Schema("test");
-    schema.addColumn(new FixedPoint("1"))
-        .addColumn(new FixedPoint("2"))
+    schema.addColumn(new FixedPoint("1", 2L, true))
+        .addColumn(new FixedPoint("2", 4L, false))
         .addColumn(new Text("3"))
         .addColumn(new Text("4"))
         .addColumn(new Binary("5"))
@@ -78,7 +79,7 @@ public class TestCSVIntermediateDataFormat {
   @Test(expectedExceptions = SqoopException.class)
   public void testEmptyInputAsCSVTextInObjectArrayOut() {
     Schema schema = new Schema("test");
-    schema.addColumn(new FixedPoint("1")).addColumn(new FixedPoint("2")).addColumn(new Text("3")).addColumn(new Text("4"))
+    schema.addColumn(new FixedPoint("1", 2L, false)).addColumn(new FixedPoint("2", 2L, false)).addColumn(new Text("3")).addColumn(new Text("4"))
         .addColumn(new Binary("5")).addColumn(new Text("6"));
     dataFormat = new CSVIntermediateDataFormat(schema);
     dataFormat.setCSVTextData("");
@@ -88,12 +89,12 @@ public class TestCSVIntermediateDataFormat {
   @Test
   public void testNullValueAsObjectArrayInAndCSVTextOut() {
     Schema schema = new Schema("test");
-    schema.addColumn(new FixedPoint("1")).addColumn(new Decimal("2")).addColumn(new Text("3"))
+    schema.addColumn(new FixedPoint("1", 2L, false)).addColumn(new Decimal("2")).addColumn(new Text("3"))
         .addColumn(new Array("4", new Text("t"))).addColumn(new Binary("5"))
         .addColumn(new org.apache.sqoop.schema.type.Map("6", new Text("t1"), new Text("t2"))).addColumn(new Bit("7"))
         .addColumn(new org.apache.sqoop.schema.type.DateTime("8", false, false))
         .addColumn(new org.apache.sqoop.schema.type.Time("9", false)).addColumn(new org.apache.sqoop.schema.type.Date("10"))
-        .addColumn(new org.apache.sqoop.schema.type.FloatingPoint("11"))
+        .addColumn(new org.apache.sqoop.schema.type.FloatingPoint("11", 4L))
         .addColumn(new org.apache.sqoop.schema.type.Set("12", new Text("t4")))
         .addColumn(new org.apache.sqoop.schema.type.Enum("13")).addColumn(new org.apache.sqoop.schema.type.Unknown("14"));
 
@@ -112,12 +113,12 @@ public class TestCSVIntermediateDataFormat {
   @Test
   public void testNullValueAsObjectArrayInAndObjectArrayOut() {
     Schema schema = new Schema("test");
-    schema.addColumn(new FixedPoint("1")).addColumn(new Decimal("2")).addColumn(new Text("3"))
+    schema.addColumn(new FixedPoint("1", 2L, true)).addColumn(new Decimal("2")).addColumn(new Text("3"))
         .addColumn(new Array("4", new Text("t"))).addColumn(new Binary("5"))
         .addColumn(new org.apache.sqoop.schema.type.Map("6", new Text("t1"), new Text("t2"))).addColumn(new Bit("7"))
         .addColumn(new org.apache.sqoop.schema.type.DateTime("8", false, false))
         .addColumn(new org.apache.sqoop.schema.type.Time("9", false)).addColumn(new org.apache.sqoop.schema.type.Date("10"))
-        .addColumn(new org.apache.sqoop.schema.type.FloatingPoint("11"))
+        .addColumn(new org.apache.sqoop.schema.type.FloatingPoint("11", 4L))
         .addColumn(new org.apache.sqoop.schema.type.Set("12", new Text("t4")))
         .addColumn(new org.apache.sqoop.schema.type.Enum("13")).addColumn(new org.apache.sqoop.schema.type.Unknown("14"));
 
@@ -135,12 +136,12 @@ public class TestCSVIntermediateDataFormat {
   @Test
   public void testNullValueAsCSVTextInAndObjectArrayOut() {
     Schema schema = new Schema("test");
-    schema.addColumn(new FixedPoint("1")).addColumn(new Decimal("2")).addColumn(new Text("3"))
+    schema.addColumn(new FixedPoint("1", 2L, true)).addColumn(new Decimal("2")).addColumn(new Text("3"))
         .addColumn(new Array("4", new Text("t"))).addColumn(new Binary("5"))
         .addColumn(new org.apache.sqoop.schema.type.Map("6", new Text("t1"), new Text("t2"))).addColumn(new Bit("7"))
         .addColumn(new org.apache.sqoop.schema.type.DateTime("8", false, false))
         .addColumn(new org.apache.sqoop.schema.type.Time("9", false)).addColumn(new org.apache.sqoop.schema.type.Date("10"))
-        .addColumn(new org.apache.sqoop.schema.type.FloatingPoint("11"))
+        .addColumn(new org.apache.sqoop.schema.type.FloatingPoint("11", 4L))
         .addColumn(new org.apache.sqoop.schema.type.Set("12", new Text("t4")))
         .addColumn(new org.apache.sqoop.schema.type.Enum("13")).addColumn(new org.apache.sqoop.schema.type.Unknown("14"));
 
@@ -158,12 +159,12 @@ public class TestCSVIntermediateDataFormat {
   @Test
   public void testNullValueAsCSVTextInAndCSVTextOut() {
     Schema schema = new Schema("test");
-    schema.addColumn(new FixedPoint("1")).addColumn(new Decimal("2")).addColumn(new Text("3"))
+    schema.addColumn(new FixedPoint("1", 2L, true)).addColumn(new Decimal("2")).addColumn(new Text("3"))
         .addColumn(new Array("4", new Text("t"))).addColumn(new Binary("5"))
         .addColumn(new org.apache.sqoop.schema.type.Map("6", new Text("t1"), new Text("t2"))).addColumn(new Bit("7"))
         .addColumn(new org.apache.sqoop.schema.type.DateTime("8", false, false))
         .addColumn(new org.apache.sqoop.schema.type.Time("9", false)).addColumn(new org.apache.sqoop.schema.type.Date("10"))
-        .addColumn(new org.apache.sqoop.schema.type.FloatingPoint("11"))
+        .addColumn(new org.apache.sqoop.schema.type.FloatingPoint("11", 4L))
         .addColumn(new org.apache.sqoop.schema.type.Set("12", new Text("t4")))
         .addColumn(new org.apache.sqoop.schema.type.Enum("13")).addColumn(new org.apache.sqoop.schema.type.Unknown("14"));
 
@@ -184,13 +185,13 @@ public class TestCSVIntermediateDataFormat {
   @Test
   public void testInputAsCSVTextInCSVTextOut() {
     Schema schema = new Schema("test");
-    schema.addColumn(new org.apache.sqoop.schema.type.Enum("1")).addColumn(new FixedPoint("2"))
-        .addColumn(new FixedPoint("3")).addColumn(new Text("4")).addColumn(new Text("5"))
-        .addColumn(new Binary("6")).addColumn(new Text("7"));
+    schema.addColumn(new org.apache.sqoop.schema.type.Enum("1")).addColumn(new FixedPoint("2", 2L, false))
+        .addColumn(new FixedPoint("3", 2L, false)).addColumn(new Text("4")).addColumn(new Text("5"))
+        .addColumn(new Binary("6")).addColumn(new Text("7")).addColumn(new FloatingPoint("ft", 4L));
 
     String testData = "'ENUM',10,34,'54','random data',"
         + getByteFieldString(new byte[] { (byte) -112, (byte) 54 }) + ",'" + String.valueOf(0x0A)
-        + "'";
+        + "',13.44";
     dataFormat = new CSVIntermediateDataFormat(schema);
     dataFormat.setCSVTextData(testData);
     assertEquals(testData, dataFormat.getCSVTextData());
@@ -199,13 +200,13 @@ public class TestCSVIntermediateDataFormat {
   @Test
   public void testInputAsCSVTextInAndDataOut() {
     Schema schema = new Schema("test");
-    schema.addColumn(new org.apache.sqoop.schema.type.Enum("1")).addColumn(new FixedPoint("2"))
-        .addColumn(new FixedPoint("3")).addColumn(new Text("4")).addColumn(new Text("5"))
-        .addColumn(new Binary("6")).addColumn(new Text("7"));
+    schema.addColumn(new org.apache.sqoop.schema.type.Enum("1")).addColumn(new FixedPoint("2",  2L, false))
+        .addColumn(new FixedPoint("3", 2L, false)).addColumn(new Text("4")).addColumn(new Text("5"))
+        .addColumn(new Binary("6")).addColumn(new Text("7")).addColumn(new FloatingPoint("ft", 4L));
 
     String testData = "'ENUM',10,34,'54','random data',"
         + getByteFieldString(new byte[] { (byte) -112, (byte) 54 }) + ",'" + String.valueOf(0x0A)
-        + "'";
+        + "',13.44";
     dataFormat = new CSVIntermediateDataFormat(schema);
     dataFormat.setCSVTextData(testData);
     assertEquals(testData, dataFormat.getData());
@@ -230,36 +231,39 @@ public class TestCSVIntermediateDataFormat {
 
     //byte[0] = -112, byte[1] = 54 - 2's complements
     String testData = "10,34,'54','random data'," + getByteFieldString(new byte[] { (byte) -112, (byte) 54})
-      + ",'\\n','TEST_ENUM'";
+      + ",'\\n','TEST_ENUM',13.44";
     Schema schema = new Schema("test");
-    schema.addColumn(new FixedPoint("1"))
-        .addColumn(new FixedPoint("2"))
+    schema.addColumn(new FixedPoint("1", 8L, true))
+        .addColumn(new FixedPoint("2", 4L, true))
         .addColumn(new Text("3"))
         .addColumn(new Text("4"))
         .addColumn(new Binary("5"))
         .addColumn(new Text("6"))
-        .addColumn(new org.apache.sqoop.schema.type.Enum("7"));
-
+        .addColumn(new org.apache.sqoop.schema.type.Enum("7"))
+        .addColumn(new FloatingPoint("ft", 2L));
     dataFormat = new CSVIntermediateDataFormat(schema);
     dataFormat.setCSVTextData(testData);
 
     Object[] out = dataFormat.getObjectData();
 
-    assertEquals(new Long(10),out[0]);
-    assertEquals(new Long(34),out[1]);
+    // long
+    assertEquals(10L,out[0]);
+    // integer
+    assertEquals(34,out[1]);
     assertEquals("54",out[2]);
     assertEquals("random data",out[3]);
     assertEquals(-112, ((byte[]) out[4])[0]);
     assertEquals(54, ((byte[])out[4])[1]);
     assertEquals("\n", out[5].toString());
     assertEquals("TEST_ENUM", out[6].toString());
+    assertEquals(13.44f, out[7]);
   }
 
   @Test
   public void testInputAsObjectArayInCSVTextOrDataOut() {
     Schema schema = new Schema("test");
-    schema.addColumn(new FixedPoint("1"))
-        .addColumn(new FixedPoint("2"))
+    schema.addColumn(new FixedPoint("1", 8L, true))
+        .addColumn(new FixedPoint("2", 4L, true))
         .addColumn(new Text("3"))
         .addColumn(new Text("4"))
         .addColumn(new Binary("5"))
@@ -270,7 +274,7 @@ public class TestCSVIntermediateDataFormat {
     byte[] byteFieldData = new byte[] { (byte) 0x0D, (byte) -112, (byte) 54};
     Object[] in = new Object[7];
     in[0] = new Long(10);
-    in[1] = new Long(34);
+    in[1] = new Integer(34);
     in[2] = "54";
     in[3] = "random data";
     in[4] = byteFieldData;
@@ -291,8 +295,8 @@ public class TestCSVIntermediateDataFormat {
     //Test escapable sequences too.
     //byte[0] = -112, byte[1] = 54 - 2's complements
     Schema schema = new Schema("test");
-    schema.addColumn(new FixedPoint("1"))
-        .addColumn(new FixedPoint("2"))
+    schema.addColumn(new FixedPoint("1", 8L, true))
+        .addColumn(new FixedPoint("2", 2L, true))
         .addColumn(new Text("3"))
         .addColumn(new Text("4"))
         .addColumn(new Binary("5"))
@@ -303,7 +307,7 @@ public class TestCSVIntermediateDataFormat {
 
     Object[] in = new Object[7];
     in[0] = new Long(10);
-    in[1] = new Long(34);
+    in[1] = new Integer(34);
     in[2] = "54";
     in[3] = "random data";
     in[4] = new byte[] { (byte) -112, (byte) 54};
@@ -321,8 +325,8 @@ public class TestCSVIntermediateDataFormat {
   @Test
   public void testObjectArrayWithNullInCSVTextOut() {
     Schema schema = new Schema("test");
-    schema.addColumn(new FixedPoint("1"))
-        .addColumn(new FixedPoint("2"))
+    schema.addColumn(new FixedPoint("1", 8L, true))
+        .addColumn(new FixedPoint("2", 2L, true))
         .addColumn(new Text("3"))
         .addColumn(new Text("4"))
         .addColumn(new Binary("5"))
@@ -334,7 +338,7 @@ public class TestCSVIntermediateDataFormat {
     byte[] byteFieldData = new byte[] { (byte) 0x0D, (byte) -112, (byte) 54};
     Object[] in = new Object[7];
     in[0] = new Long(10);
-    in[1] = new Long(34);
+    in[1] = new Integer(34);
     in[2] = null;
     in[3] = "random data";
     in[4] = byteFieldData;
@@ -800,7 +804,7 @@ public class TestCSVIntermediateDataFormat {
   @Test
   public void testArrayOfIntegers() {
     Schema schema = new Schema("test");
-    schema.addColumn(new org.apache.sqoop.schema.type.Array("1", new FixedPoint("fn")));
+    schema.addColumn(new org.apache.sqoop.schema.type.Array("1", new FixedPoint("fn", 2L, false)));
     schema.addColumn(new org.apache.sqoop.schema.type.Text("2"));
     dataFormat = new CSVIntermediateDataFormat(schema);
     Object[] givenArray = { 1, 2 };
@@ -817,7 +821,7 @@ public class TestCSVIntermediateDataFormat {
   @Test
   public void testListOfIntegers() {
     Schema schema = new Schema("test");
-    schema.addColumn(new org.apache.sqoop.schema.type.Array("1", new FixedPoint("fn")));
+    schema.addColumn(new org.apache.sqoop.schema.type.Array("1", new FixedPoint("fn", 2L, false)));
     schema.addColumn(new org.apache.sqoop.schema.type.Text("2"));
     dataFormat = new CSVIntermediateDataFormat(schema);
     List<Integer> givenList = new ArrayList<Integer>();
@@ -835,7 +839,7 @@ public class TestCSVIntermediateDataFormat {
 
   public void testSetOfIntegers() {
     Schema schema = new Schema("test");
-    schema.addColumn(new org.apache.sqoop.schema.type.Set("1", new FixedPoint("fn")));
+    schema.addColumn(new org.apache.sqoop.schema.type.Set("1", new FixedPoint("fn", 2L, false)));
     schema.addColumn(new org.apache.sqoop.schema.type.Text("2"));
     dataFormat = new CSVIntermediateDataFormat(schema);
     Set<Integer> givenSet = new HashSet<Integer>();
@@ -873,7 +877,7 @@ public class TestCSVIntermediateDataFormat {
   public void testArrayOfObjectsWithObjectArrayInObjectArrayOut() {
     Schema schema = new Schema("test");
     schema.addColumn(new org.apache.sqoop.schema.type.Array("1",
-        new org.apache.sqoop.schema.type.Array("array", new FixedPoint("ft"))));
+        new org.apache.sqoop.schema.type.Array("array", new FixedPoint("ft", 2L, false))));
     schema.addColumn(new org.apache.sqoop.schema.type.Text("2"));
     dataFormat = new CSVIntermediateDataFormat(schema);
     Object[] givenArrayOne = { 11, 12 };
@@ -899,7 +903,7 @@ public class TestCSVIntermediateDataFormat {
   public void testArrayOfObjectsWithCSVTextInObjectArrayOut() {
     Schema schema = new Schema("test");
     schema.addColumn(new org.apache.sqoop.schema.type.Array("1",
-        new org.apache.sqoop.schema.type.Array("array", new FixedPoint("ft"))));
+        new org.apache.sqoop.schema.type.Array("array", new FixedPoint("ft", 2L, false))));
     schema.addColumn(new org.apache.sqoop.schema.type.Text("2"));
     dataFormat = new CSVIntermediateDataFormat(schema);
     Object[] givenArrayOne = { 11, 12 };
@@ -924,7 +928,7 @@ public class TestCSVIntermediateDataFormat {
   public void testArrayOfObjectsWithCSVTextInCSVTextOut() {
     Schema schema = new Schema("test");
     schema.addColumn(new org.apache.sqoop.schema.type.Array("1",
-        new org.apache.sqoop.schema.type.Array("array", new FixedPoint("ft"))));
+        new org.apache.sqoop.schema.type.Array("array", new FixedPoint("ft", 2L, false))));
     schema.addColumn(new org.apache.sqoop.schema.type.Text("2"));
     dataFormat = new CSVIntermediateDataFormat(schema);
     String input = "'[[11, 12],[14, 15]]','text'";
@@ -938,7 +942,7 @@ public class TestCSVIntermediateDataFormat {
   public void testArrayOfObjectsWithObjectArrayInCSVTextOut() {
     Schema schema = new Schema("test");
     schema.addColumn(new org.apache.sqoop.schema.type.Array("1",
-        new org.apache.sqoop.schema.type.Array("array", new FixedPoint("ft"))));
+        new org.apache.sqoop.schema.type.Array("array", new FixedPoint("ft", 2L, false))));
     schema.addColumn(new org.apache.sqoop.schema.type.Text("2"));
     dataFormat = new CSVIntermediateDataFormat(schema);
     Object[] givenArrayOne = { 11, 12 };
@@ -981,7 +985,7 @@ public class TestCSVIntermediateDataFormat {
   public void testMapWithComplexIntegerListValueWithObjectArrayInObjectArrayOut() {
     Schema schema = new Schema("test");
     schema.addColumn(new org.apache.sqoop.schema.type.Map("1", new Text("key"), new Array("value",
-        new FixedPoint("number"))));
+        new FixedPoint("number", 2L, true))));
     schema.addColumn(new org.apache.sqoop.schema.type.Text("2"));
     dataFormat = new CSVIntermediateDataFormat(schema);
     Map<Object, Object> givenMap = new HashMap<Object, Object>();

http://git-wip-us.apache.org/repos/asf/sqoop/blob/4ac3c386/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/idf/TestJSONIntermediateDataFormat.java
----------------------------------------------------------------------
diff --git a/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/idf/TestJSONIntermediateDataFormat.java b/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/idf/TestJSONIntermediateDataFormat.java
index 12c66c2..0d9a1cf 100644
--- a/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/idf/TestJSONIntermediateDataFormat.java
+++ b/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/idf/TestJSONIntermediateDataFormat.java
@@ -60,22 +60,22 @@ public class TestJSONIntermediateDataFormat {
   private void createJSONIDF() {
     Schema schema = new Schema("test");
     schema
-        .addColumn(new FixedPoint("1"))
-        .addColumn(new FixedPoint("2", 2L, false))
+        .addColumn(new FixedPoint("1", 8L, true))
+        .addColumn(new FixedPoint("2", 4L, true))
         .addColumn(new Text("3"))
         .addColumn(new Text("4"))
         .addColumn(new Binary("5"))
         .addColumn(new Text("6"))
         .addColumn(new org.apache.sqoop.schema.type.Enum("7"))
-        .addColumn(new Array("8", new Array("array", new FixedPoint("ft"))))
+        .addColumn(new Array("8", new Array("array", new FixedPoint("ft", 2L, false))))
         .addColumn(new org.apache.sqoop.schema.type.Map("9", new Text("t1"), new Text("t2")))
         .addColumn(new Bit("10"))
         .addColumn(new org.apache.sqoop.schema.type.DateTime("11", true, false))
         .addColumn(new org.apache.sqoop.schema.type.Time("12", false))
         .addColumn(new org.apache.sqoop.schema.type.Date("13"))
-        .addColumn(new org.apache.sqoop.schema.type.FloatingPoint("14"))
+        .addColumn(new org.apache.sqoop.schema.type.FloatingPoint("14", 4L))
         .addColumn(
-            new org.apache.sqoop.schema.type.Set("15", new Array("set", new FixedPoint("ftw"))));
+            new org.apache.sqoop.schema.type.Set("15", new Array("set", new FixedPoint("ftw", 2L, false))));
     dataFormat = new JSONIntermediateDataFormat(schema);
   }
 
@@ -151,7 +151,7 @@ public class TestJSONIntermediateDataFormat {
     assertEquals(dateTime, out[10]);
     assertEquals(time, out[11]);
     assertEquals(date, out[12]);
-    assertEquals(13.44, out[13]);
+    assertEquals(13.44f, out[13]);
     assertEquals(set.length, 2);
     assertEquals(Arrays.deepToString(set), Arrays.deepToString((Object[]) out[14]));
 
@@ -202,7 +202,7 @@ public class TestJSONIntermediateDataFormat {
     json.put("11", SqoopIDFUtils.removeQuotes(dateTime));
     json.put("12", SqoopIDFUtils.removeQuotes(time));
     json.put("13", SqoopIDFUtils.removeQuotes(date));
-    json.put("14", 13.44);
+    json.put("14", 13.44f);
 
     JSONArray givenSetOne = new JSONArray();
     givenSetOne.add(11);
@@ -282,7 +282,7 @@ public class TestJSONIntermediateDataFormat {
 
     out[12] = date;
 
-    out[13] = 13.44;
+    out[13] = 13.44f;
     Object[] set0 = new Object[2];
     set0[0] = 11;
     set0[1] = 12;

http://git-wip-us.apache.org/repos/asf/sqoop/blob/4ac3c386/execution/mapreduce/src/test/java/org/apache/sqoop/job/TestMatching.java
----------------------------------------------------------------------
diff --git a/execution/mapreduce/src/test/java/org/apache/sqoop/job/TestMatching.java b/execution/mapreduce/src/test/java/org/apache/sqoop/job/TestMatching.java
index 4945584..f658d09 100644
--- a/execution/mapreduce/src/test/java/org/apache/sqoop/job/TestMatching.java
+++ b/execution/mapreduce/src/test/java/org/apache/sqoop/job/TestMatching.java
@@ -88,12 +88,12 @@ public class TestMatching {
     Schema from2 = new Schema("FROM-2");
     Schema to2 = new Schema("TO-2");
 
-    from1.addColumn(new FixedPoint("1").setByteSize(2L)).addColumn(new FloatingPoint("2"))
+    from1.addColumn(new FixedPoint("1", 4L, true)).addColumn(new FloatingPoint("2", 8L))
         .addColumn(new org.apache.sqoop.schema.type.Text("3"));
-    to1.addColumn(new FixedPoint("1").setByteSize(2L)).addColumn(new FloatingPoint("2"))
-      .addColumn(new org.apache.sqoop.schema.type.Text("3"));
-    from2.addColumn(new FixedPoint("1").setByteSize(2L)).addColumn(new FloatingPoint("2"));
-    to2.addColumn(new FixedPoint("1").setByteSize(2L)).addColumn(new FloatingPoint("2"));
+    to1.addColumn(new FixedPoint("1", 4L, true)).addColumn(new FloatingPoint("2", 8L))
+        .addColumn(new org.apache.sqoop.schema.type.Text("3"));
+    from2.addColumn(new FixedPoint("1", 4L, true)).addColumn(new FloatingPoint("2", 8L));
+    to2.addColumn(new FixedPoint("1", 4L, true)).addColumn(new FloatingPoint("2", 8L));
 
     parameters.add(new Object[]{
         emptyFrom,

http://git-wip-us.apache.org/repos/asf/sqoop/blob/4ac3c386/execution/mapreduce/src/test/java/org/apache/sqoop/job/util/MRJobTestUtil.java
----------------------------------------------------------------------
diff --git a/execution/mapreduce/src/test/java/org/apache/sqoop/job/util/MRJobTestUtil.java b/execution/mapreduce/src/test/java/org/apache/sqoop/job/util/MRJobTestUtil.java
index ce39a78..92ad1b8 100644
--- a/execution/mapreduce/src/test/java/org/apache/sqoop/job/util/MRJobTestUtil.java
+++ b/execution/mapreduce/src/test/java/org/apache/sqoop/job/util/MRJobTestUtil.java
@@ -70,7 +70,7 @@ public class MRJobTestUtil {
 
   public static Schema getTestSchema() {
     Schema schema = new Schema("Test");
-    schema.addColumn(new FixedPoint("1").setByteSize(2L)).addColumn(new FloatingPoint("2"))
+    schema.addColumn(new FixedPoint("1", 4L, true)).addColumn(new FloatingPoint("2", 8L))
         .addColumn(new Text("3"));
     return schema;
   }