From 27d87b4f2f7fcbcdb52503016446b4de1dd5709a Mon Sep 17 00:00:00 2001 From: Abraham Elmahrek Date: Tue, 3 Feb 2015 13:58:36 -0800 Subject: [PATCH] SQOOP-1862: Sqoop2: JDBC Connector To side needs to handle converting JODA objects to sql date (Veena Basavaraj via Abraham Elmahrek) --- .../common/test/asserts/ProviderAsserts.java | 2 +- .../connector/jdbc/GenericJdbcExecutor.java | 44 ++++++++++++++++--- .../connector/jdbc/GenericJdbcLoader.java | 3 +- .../sqoop/connector/jdbc/TestLoader.java | 36 +++++++++++++-- .../idf/TestCSVIntermediateDataFormat.java | 2 +- .../org/apache/sqoop/test/data/Cities.java | 9 ++-- .../jdbc/generic/FromHDFSToRDBMSTest.java | 16 +++---- .../jdbc/generic/FromRDBMSToHDFSTest.java | 8 ++-- .../jdbc/generic/TableStagedRDBMSTest.java | 18 ++++---- .../connector/kafka/FromRDBMSToKafkaTest.java | 8 ++-- 10 files changed, 102 insertions(+), 44 deletions(-) diff --git a/common-test/src/main/java/org/apache/sqoop/common/test/asserts/ProviderAsserts.java b/common-test/src/main/java/org/apache/sqoop/common/test/asserts/ProviderAsserts.java index fb4e7af4..d8c3c8eb 100644 --- a/common-test/src/main/java/org/apache/sqoop/common/test/asserts/ProviderAsserts.java +++ b/common-test/src/main/java/org/apache/sqoop/common/test/asserts/ProviderAsserts.java @@ -53,7 +53,7 @@ public static void assertRow(DatabaseProvider provider, String tableName, Objec int i = 1; for(Object expectedValue : values) { Object actualValue = rs.getObject(i); - assertEquals("Columns do not match on position: " + i, expectedValue, actualValue); + assertEquals("Columns do not match on position: " + i, expectedValue.toString(), actualValue.toString()); i++; } 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 5e7e4e60..7a01992e 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 @@ -17,6 +17,15 @@ */ package org.apache.sqoop.connector.jdbc; +import org.apache.log4j.Logger; +import org.apache.sqoop.common.SqoopException; +import org.apache.sqoop.error.code.GenericJdbcConnectorError; +import org.apache.sqoop.schema.Schema; +import org.apache.sqoop.schema.type.Column; +import org.joda.time.DateTime; +import org.joda.time.LocalDate; +import org.joda.time.LocalTime; + import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; @@ -25,10 +34,7 @@ import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; - -import org.apache.log4j.Logger; -import org.apache.sqoop.common.SqoopException; -import org.apache.sqoop.error.code.GenericJdbcConnectorError; +import java.sql.Timestamp; public class GenericJdbcExecutor { @@ -167,10 +173,34 @@ public void beginBatch(String sql) { } } - public void addBatch(Object[] array) { + public void addBatch(Object[] array, Schema schema) { try { - for (int i=0; i