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 2013/05/21 08:23:07 UTC

git commit: SQOOP-1031: Provide default Java type mapping for MS Sql Datetimeoffset type

Updated Branches:
  refs/heads/trunk e76ee6eea -> 28af5122e


SQOOP-1031: Provide default Java type mapping for MS Sql Datetimeoffset type

(Shuaishuai Nie 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/28af5122
Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/28af5122
Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/28af5122

Branch: refs/heads/trunk
Commit: 28af5122ea8778b5fcd6341a492d64283c706b08
Parents: e76ee6e
Author: Jarek Jarcec Cecho <ja...@apache.org>
Authored: Mon May 20 23:22:04 2013 -0700
Committer: Jarek Jarcec Cecho <ja...@apache.org>
Committed: Mon May 20 23:22:04 2013 -0700

----------------------------------------------------------------------
 .../org/apache/sqoop/manager/SQLServerManager.java |   25 +++++++++++++++
 1 files changed, 25 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/sqoop/blob/28af5122/src/java/org/apache/sqoop/manager/SQLServerManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/sqoop/manager/SQLServerManager.java b/src/java/org/apache/sqoop/manager/SQLServerManager.java
index 88254a8..eea5a1d 100644
--- a/src/java/org/apache/sqoop/manager/SQLServerManager.java
+++ b/src/java/org/apache/sqoop/manager/SQLServerManager.java
@@ -56,6 +56,9 @@ public class SQLServerManager
   private static final String DRIVER_CLASS =
       "com.microsoft.sqlserver.jdbc.SQLServerDriver";
 
+  // Define SQL Server specific types that are not covered by parent classes
+  private static final int DATETIMEOFFSET = -155;
+
   /**
    * Schema name that we will use.
    */
@@ -77,6 +80,28 @@ public class SQLServerManager
     }
   }
 
+  /**
+   * Resolve MS SQL Server specific database type to the Java type that should
+   * contain it.
+   * @param sqlType     sql type
+   * @return the name of a Java type to hold the sql datatype, or null if none.
+   */
+  @Override
+  public String toJavaType(int sqlType) {
+    String javaType;
+
+    if (sqlType == DATETIMEOFFSET) {
+      // We cannot use the TimeStamp class to represent MS SQL Server datetimeoffset
+      // data type since it does not preserve time zone offset values, so use String
+      // instead which would work for import/export
+      javaType = "String";
+    }else {
+      //If none of the above data types match, it returns parent method's
+      //status, which can be null.
+      javaType = super.toJavaType(sqlType);
+    }
+    return javaType;
+  }
 
   /**
    * {@inheritDoc}