[ 
https://issues.apache.org/jira/browse/NIFI-9547?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Joe Gresock updated NIFI-9547:
------------------------------
    Description: 
LookupRecord can currently only replace values with numeric, boolean, or string 
data types.  If a timestamp field, for example, is configured as a dynamic 
property, LookupRecord will pass a string value to the LookupService.  In 
implementations like KuduLookupService, this can cause an exception such as the 
following, if the field is actually a timestamp column in Kudu:

{code:java}
Caused by: java.lang.IllegalArgumentException: deactivationdate's type isn't 
[Type: string, Type: varchar], it's unixtime_micros
        at 
org.apache.kudu.client.KuduPredicate.checkColumn(KuduPredicate.java:1171)
        at 
org.apache.kudu.client.KuduPredicate.newComparisonPredicate(KuduPredicate.java:434)
        at 
org.apache.kudu.client.KuduPredicate.newComparisonPredicate(KuduPredicate.java:547)
        at 
org.apache.nifi.controller.kudu.KuduLookupService.lambda$lookup$1(KuduLookupService.java:260)
{code}

We should add support for more data types using something like 
DataTypeUtils.convertType.

  was:
LookupRecord can currently only replace values with numeric, boolean, or string 
data types.  If a timestamp field, for example, is configured as a dynamic 
property, LookupRecord will pass a string value to the LookupService.  In 
implementations like KuduLookupService, this causes an exception such as:

{code:java}
Caused by: java.lang.IllegalArgumentException: deactivationdate's type isn't 
[Type: string, Type: varchar], it's unixtime_micros
        at 
org.apache.kudu.client.KuduPredicate.checkColumn(KuduPredicate.java:1171)
        at 
org.apache.kudu.client.KuduPredicate.newComparisonPredicate(KuduPredicate.java:434)
        at 
org.apache.kudu.client.KuduPredicate.newComparisonPredicate(KuduPredicate.java:547)
        at 
org.apache.nifi.controller.kudu.KuduLookupService.lambda$lookup$1(KuduLookupService.java:260)
{code}

We should add support for more data types using something like 
DataTypeUtils.convertType.


> LookupRecord could support more data types in replacements
> ----------------------------------------------------------
>
>                 Key: NIFI-9547
>                 URL: https://issues.apache.org/jira/browse/NIFI-9547
>             Project: Apache NiFi
>          Issue Type: Improvement
>          Components: Extensions
>            Reporter: Joe Gresock
>            Priority: Major
>
> LookupRecord can currently only replace values with numeric, boolean, or 
> string data types.  If a timestamp field, for example, is configured as a 
> dynamic property, LookupRecord will pass a string value to the LookupService. 
>  In implementations like KuduLookupService, this can cause an exception such 
> as the following, if the field is actually a timestamp column in Kudu:
> {code:java}
> Caused by: java.lang.IllegalArgumentException: deactivationdate's type isn't 
> [Type: string, Type: varchar], it's unixtime_micros
>         at 
> org.apache.kudu.client.KuduPredicate.checkColumn(KuduPredicate.java:1171)
>         at 
> org.apache.kudu.client.KuduPredicate.newComparisonPredicate(KuduPredicate.java:434)
>         at 
> org.apache.kudu.client.KuduPredicate.newComparisonPredicate(KuduPredicate.java:547)
>         at 
> org.apache.nifi.controller.kudu.KuduLookupService.lambda$lookup$1(KuduLookupService.java:260)
> {code}
> We should add support for more data types using something like 
> DataTypeUtils.convertType.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to