ASF GitHub Bot commented on NIFI-5049:

Github user mattyb149 commented on a diff in the pull request:

    --- Diff: 
    @@ -436,13 +437,26 @@ protected static String getLiteralByType(int type, 
String value, String database
                 case NVARCHAR:
                 case VARCHAR:
                 case ROWID:
    -            case DATE:
    -            case TIME:
                     return "'" + value + "'";
    +            case TIME:
    +                if (PhoenixDatabaseAdapter.NAME.equals(databaseType)) {
    +                    return "time '" + value + "'";
    +                }
    +            case DATE:
                 case TIMESTAMP:
    -                if (!StringUtils.isEmpty(databaseType) && 
databaseType.contains("Oracle")) {
    -                    // For backwards compatibility, the type might be 
TIMESTAMP but the state value is in DATE format. This should be a one-time 
occurrence as the next maximum value
    -                    // should be stored as a full timestamp. Even so, 
check to see if the value is missing time-of-day information, and use the 
"date" coercion rather than the
    +                // TODO delegate to database adapter the conversion 
instead of using if in this
    --- End diff --
    This might be a good time to do the TODO :) We can add a default method on 
the interface, getTimestampLiteral() or something, that returns the quoted 
value, and put the if/else clause here in the Oracle and Phoenix adapters.
    Also, I assume this same code works for Phoenix, even though the Jira 
mentions TO_TIMESTAMP rather than just timestamp?

> Fix handling of Phonenix datetime columns in QueryDatabaseTable and 
> GenerateTableFetch
> --------------------------------------------------------------------------------------
>                 Key: NIFI-5049
>                 URL: https://issues.apache.org/jira/browse/NIFI-5049
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Core Framework
>    Affects Versions: 1.5.0
>            Reporter: Gardella Juan Pablo
>            Assignee: Matt Burgess
>            Priority: Major
>   Original Estimate: 24h
>  Remaining Estimate: 24h
> QueryDatabaseAdapter does not work against Phoenix DB if it should convert 
> TIMESTAMP. The error is described below:
> [https://stackoverflow.com/questions/45989678/convert-varchar-to-timestamp-in-hbase]
> Basically, it's required to use TO_TIMESTAMP(MAX_COLUMN) to make it work. 
> See 
> [https://lists.apache.org/thread.html/%3cca+kifscje8ay+uxt_d_vst4qgzf4jxwovboynjgztt4dsbs...@mail.gmail.com%3E]

This message was sent by Atlassian JIRA

Reply via email to