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 2015/09/28 19:57:53 UTC

sqoop git commit: SQOOP-2586: Sqoop2: Oracle DATE type error

Repository: sqoop
Updated Branches:
  refs/heads/sqoop2 52e9c11ad -> 2ee3bdd34


SQOOP-2586: Sqoop2: Oracle DATE type error

(lvchuanwen 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/2ee3bdd3
Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/2ee3bdd3
Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/2ee3bdd3

Branch: refs/heads/sqoop2
Commit: 2ee3bdd34213be9c62f9f99fd75df9dd3502c0b6
Parents: 52e9c11
Author: Jarek Jarcec Cecho <ja...@apache.org>
Authored: Mon Sep 28 10:56:33 2015 -0700
Committer: Jarek Jarcec Cecho <ja...@apache.org>
Committed: Mon Sep 28 10:56:33 2015 -0700

----------------------------------------------------------------------
 .../sqoop/connector/jdbc/GenericJdbcExecutor.java       |  7 ++++++-
 .../org/apache/sqoop/connector/jdbc/TestLoader.java     | 12 +++++++-----
 2 files changed, 13 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/sqoop/blob/2ee3bdd3/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/GenericJdbcExecutor.java
----------------------------------------------------------------------
diff --git a/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/GenericJdbcExecutor.java b/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/GenericJdbcExecutor.java
index ee31b4a..ad6f649 100644
--- a/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/GenericJdbcExecutor.java
+++ b/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/GenericJdbcExecutor.java
@@ -301,7 +301,12 @@ public class GenericJdbcExecutor {
           break;
         case DATE_TIME:
           // convert the JODA date time to sql date
-          DateTime dateTime = (DateTime) array[i];
+          DateTime dateTime = null;
+          if (array[i] instanceof org.joda.time.LocalDateTime) {
+            dateTime = ((org.joda.time.LocalDateTime) array[i]).toDateTime();
+          } else {
+            dateTime = (DateTime) array[i];
+          }
           Timestamp timestamp = new Timestamp(dateTime.getMillis());
           preparedStatement.setObject(i + 1, timestamp);
           break;

http://git-wip-us.apache.org/repos/asf/sqoop/blob/2ee3bdd3/connector/connector-generic-jdbc/src/test/java/org/apache/sqoop/connector/jdbc/TestLoader.java
----------------------------------------------------------------------
diff --git a/connector/connector-generic-jdbc/src/test/java/org/apache/sqoop/connector/jdbc/TestLoader.java b/connector/connector-generic-jdbc/src/test/java/org/apache/sqoop/connector/jdbc/TestLoader.java
index 65e2a4b..dfacc20 100644
--- a/connector/connector-generic-jdbc/src/test/java/org/apache/sqoop/connector/jdbc/TestLoader.java
+++ b/connector/connector-generic-jdbc/src/test/java/org/apache/sqoop/connector/jdbc/TestLoader.java
@@ -74,7 +74,7 @@ public class TestLoader {
 
     if (!executor.existTable(tableName)) {
       executor.executeUpdate("CREATE TABLE " + executor.encloseIdentifier(tableName)
-          + "(ICOL INTEGER PRIMARY KEY, DCOL DOUBLE, VCOL VARCHAR(20), DATECOL DATE, DATETIMECOL TIMESTAMP, TIMECOL TIME)");
+          + "(ICOL INTEGER PRIMARY KEY, DCOL DOUBLE, VCOL VARCHAR(20), DATECOL DATE, DATETIMECOL TIMESTAMP, TIMECOL TIME , LOCALDATETIMECOL TIMESTAMP)");
     } else {
       executor.deleteTableData(tableName);
     }
@@ -98,7 +98,7 @@ public class TestLoader {
     ToJobConfiguration jobConfig = new ToJobConfiguration();
 
     context.setString(GenericJdbcConnectorConstants.CONNECTOR_JDBC_TO_DATA_SQL,
-        "INSERT INTO " + executor.encloseIdentifier(tableName) + " VALUES (?,?,?,?,?,?)");
+        "INSERT INTO " + executor.encloseIdentifier(tableName) + " VALUES (?,?,?,?,?,?,?)");
 
 
     Loader loader = new GenericJdbcLoader();
@@ -106,7 +106,7 @@ public class TestLoader {
     Schema schema = new Schema("TestLoader");
     schema.addColumn(new FixedPoint("c1", 2L, true)).addColumn(new Decimal("c2", 5, 2))
         .addColumn(new Text("c3")).addColumn(new Date("c4"))
-        .addColumn(new DateTime("c5", false, false)).addColumn(new Time("c6", false));
+        .addColumn(new DateTime("c5", false, false)).addColumn(new Time("c6", false)).addColumn(new DateTime("c7", false, false));
     LoaderContext loaderContext = new LoaderContext(context, reader, schema);
     loader.load(loaderContext, linkConfig, jobConfig);
 
@@ -122,7 +122,7 @@ public class TestLoader {
         assertEquals("2004-10-19", rs.getObject(4).toString());
         assertEquals("2004-10-19 10:23:34.0", rs.getObject(5).toString());
         assertEquals("11:33:59", rs.getObject(6).toString());
-
+        assertEquals("2004-10-19 10:23:34.0", rs.getObject(7).toString());
         index++;
       }
       assertEquals(numberOfRows, index - START);
@@ -136,6 +136,7 @@ public class TestLoader {
     public Object[] readArrayRecord() {
       LocalDate jodaDate= new LocalDate(2004, 10, 19);
       org.joda.time.DateTime jodaDateTime= new org.joda.time.DateTime(2004, 10, 19, 10, 23, 34);
+      org.joda.time.LocalDateTime LocalJodaDateTime= new org.joda.time.LocalDateTime(2004, 10, 19, 10, 23, 34);
       LocalTime time= new LocalTime(11, 33, 59);
 
       if (index < numberOfRows) {
@@ -145,7 +146,8 @@ public class TestLoader {
             String.valueOf(START+index),
             jodaDate,
             jodaDateTime,
-            time};
+            time,
+            LocalJodaDateTime};
         index++;
         return array;
       } else {