diff --git a/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/GenericJdbcImportPartitioner.java b/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/GenericJdbcImportPartitioner.java index 0bb979e9..74dd1b87 100644 --- a/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/GenericJdbcImportPartitioner.java +++ b/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/GenericJdbcImportPartitioner.java @@ -128,10 +128,9 @@ protected List partitionDateTimeColumn() { break; } - long tzOffset = TimeZone.getDefault().getRawOffset(); - minDateValue += tzOffset; - maxDateValue += tzOffset; + minDateValue += TimeZone.getDefault().getOffset(minDateValue); + maxDateValue += TimeZone.getDefault().getOffset(maxDateValue); sdf.setTimeZone(TimeZone.getTimeZone("GMT")); diff --git a/connector/connector-generic-jdbc/src/test/java/org/apache/sqoop/connector/jdbc/TestImportPartitioner.java b/connector/connector-generic-jdbc/src/test/java/org/apache/sqoop/connector/jdbc/TestImportPartitioner.java index 1a3601a2..d46e4dde 100644 --- a/connector/connector-generic-jdbc/src/test/java/org/apache/sqoop/connector/jdbc/TestImportPartitioner.java +++ b/connector/connector-generic-jdbc/src/test/java/org/apache/sqoop/connector/jdbc/TestImportPartitioner.java @@ -268,9 +268,10 @@ public void testDatePartition() throws Exception { context.setString(GenericJdbcConnectorConstants .CONNECTOR_JDBC_PARTITION_COLUMNTYPE, String.valueOf(Types.DATE)); context.setString(GenericJdbcConnectorConstants.CONNECTOR_JDBC_PARTITION_MINVALUE, - Date.valueOf("2013-01-01").toString()); + Date.valueOf("2004-10-20").toString()); context.setString(GenericJdbcConnectorConstants - .CONNECTOR_JDBC_PARTITION_MAXVALUE, Date.valueOf("2013-12-31").toString()); + .CONNECTOR_JDBC_PARTITION_MAXVALUE, Date.valueOf("2013-10-17") + .toString()); ConnectionConfiguration connConf = new ConnectionConfiguration(); @@ -280,10 +281,12 @@ public void testDatePartition() throws Exception { PartitionerContext partitionerContext = new PartitionerContext(context, 3); List partitions = partitioner.getPartitions(partitionerContext, connConf, jobConf); + + verifyResult(partitions, new String[]{ - "'2013-01-01' <= DCOL AND DCOL < '2013-05-02'", - "'2013-05-02' <= DCOL AND DCOL < '2013-08-31'", - "'2013-08-31' <= DCOL AND DCOL <= '2013-12-31'", + "'2004-10-20' <= DCOL AND DCOL < '2007-10-19'", + "'2007-10-19' <= DCOL AND DCOL < '2010-10-18'", + "'2010-10-18' <= DCOL AND DCOL <= '2013-10-17'", }); } @@ -307,6 +310,7 @@ public void testTimePartition() throws Exception { PartitionerContext partitionerContext = new PartitionerContext(context, 3); List partitions = partitioner.getPartitions(partitionerContext, connConf, jobConf); + verifyResult(partitions, new String[]{ "'01:01:01' <= TCOL AND TCOL < '04:14:17'", "'04:14:17' <= TCOL AND TCOL < '07:27:33'",