[
https://issues.apache.org/jira/browse/SQOOP-1846?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Veena Basavaraj updated SQOOP-1846:
-----------------------------------
Summary: Sqoop2: DateTime support in CSV IDF (was: Sqoop2: Update
CSVIntermediateFormat DateTime tests to use modified ISO-8601 format)
> Sqoop2: DateTime support in CSV IDF
> -----------------------------------
>
> Key: SQOOP-1846
> URL: https://issues.apache.org/jira/browse/SQOOP-1846
> Project: Sqoop
> Issue Type: Sub-task
> Components: sqoop2-framework
> Reporter: Veena Basavaraj
> Assignee: Veena Basavaraj
> Fix For: 1.99.5
>
> Attachments: SQOOP-1846-v1.patch, SQOOP-1846-v2.patch,
> SQOOP-1846.patch
>
>
> I saw this test case I partially was responsible for and it does not make any
> sense to me anymore...
> {code}
> @Test
> public void testDateTimePrecisionWithCSVTextInObjectArrayOut() {
> Schema schema = new Schema("test");
> schema.addColumn(new DateTime("1"));
> dataFormat.setSchema(schema);
> dataFormat.setTextData("'2014-10-01 12:00:00.000'");
> assertEquals("2014-10-01T12:00:00.000-07:00",
> dataFormat.getObjectData()[0].toString());
> }
> {code}
> the spec in
> https://cwiki.apache.org/confluence/display/SQOOP/Sqoop2+CSV+Intermediate+representation
> does not mention / say that the date time has to be in iso8601 format. but
> with us using JODA for parsing datetime objects, it becomes imminent that the
> text representation of date-time has to have iso8601 format, see details here
> https://github.com/JodaOrg/joda-time/issues/11
> FIrst, are we ok with this?
> If so, then the following code replacing space to T in CSVIDF should be
> removed.
> {code}
> case DATE_TIME:
> // A datetime string with a space as date-time separator will not be
> // parsed expectedly. The expected separator is "T". See also:
> // https://github.com/JodaOrg/joda-time/issues/11
> String dateTime = removeQuotes(fieldString).replace(" ", "T");
>
> {code}
> then the test case will be like this, that makes sense now, because the FROM
> connector will set data in iso8601 format and it can expect it to be returned
> bacl in the dateTime format with the timezone that sqoop is prescribing it
> will support.
> {code}
> @Test
> public void testDateTimePrecisionWithCSVTextInObjectArrayOut() {
> Schema schema = new Schema("test");
> schema.addColumn(new DateTime("1"));
> dataFormat.setSchema(schema);
> dataFormat.setTextData("'2014-10-01T12:00:00.000'");
> assertEquals("2014-10-01T12:00:00.000-07:00",
> dataFormat.getObjectData()[0].toString());
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)