You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sqoop.apache.org by "Veena Basavaraj (JIRA)" <ji...@apache.org> on 2014/12/10 19:56:13 UTC

[jira] [Updated] (SQOOP-1846) Sqoop2: DateTime support in CSV IDF

     [ 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)