Github user mattyb149 commented on a diff in the pull request:
https://github.com/apache/nifi/pull/2625#discussion_r180767606
--- Diff:
nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractDatabaseFetchProcessor.java
---
@@ -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?
---