[ 
https://issues.apache.org/jira/browse/NIFI-4882?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16387795#comment-16387795
 ] 

ASF GitHub Bot commented on NIFI-4882:
--------------------------------------

Github user ijokarumawak commented on the issue:

    https://github.com/apache/nifi/pull/2473
  
    @derekstraka Before finalizing this review process, I'd like to analyze 
current NiFi data type conversion capability on Date, Timestamp and Time with 
or without custom format at various places comprehensively. I started analyzing 
that and already found several issues. I can not tell if this change would 
match with the entire NiFi data type conversion theme until that analysis 
finishes, although I believe it does.
    
    So, please let me take few more time to research on this subject. If you 
are interested in what I'm doing, here is a Google spreadsheet you can check. 
    
https://docs.google.com/spreadsheets/d/1EEHGWw7-ZGE9SwOBwQHGUwWFCtuHubz44jTT5qpiCf0/edit?usp=sharing


> CSVRecordReader should utilize specified date/time/timestamp format at its 
> convertSimpleIfPossible method
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: NIFI-4882
>                 URL: https://issues.apache.org/jira/browse/NIFI-4882
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Extensions
>            Reporter: Koji Kawamura
>            Assignee: Derek Straka
>            Priority: Major
>
> CSVRecordReader.convertSimpleIfPossible method is used by ValidateRecord. The 
> method does not coerce values to the target schema field type if the raw 
> string representation in the input CSV file is not compatible.
> The type compatibility check is implemented as follows. But it does not use 
> user specified date/time/timestamp format:
> {code}
>                 // This will return 'false' for input '01/01/1900' when user 
> specified custom format 'MM/dd/YYYY'
>                 if (DataTypeUtils.isCompatibleDataType(trimmed, dataType)) {
>                     // The LAZY_DATE_FORMAT should be used to check 
> compatibility, too.
>                     return DataTypeUtils.convertType(trimmed, dataType, 
> LAZY_DATE_FORMAT, LAZY_TIME_FORMAT, LAZY_TIMESTAMP_FORMAT, fieldName);
>                 } else {
>                     return value;
>                 }
> {code}
> If input date strings have different format than the default format 
> 'yyyy-MM-dd', then ValidateRecord processor can not validate input records.
> JacksonCSVRecordReader has the identical methods with CSVRecordReader. Those 
> classes should have an abstract class.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to