cryptoe commented on code in PR #12770:
URL: https://github.com/apache/druid/pull/12770#discussion_r927778144


##########
sql/src/main/java/org/apache/druid/sql/calcite/external/ExternalTableMacro.java:
##########
@@ -59,6 +63,15 @@ public TranslatableTable apply(final List<Object> arguments)
       final InputFormat inputFormat = jsonMapper.readValue((String) 
arguments.get(1), InputFormat.class);
       final RowSignature signature = jsonMapper.readValue((String) 
arguments.get(2), RowSignature.class);
 
+      // Prevent a RowSignature that has a ColumnSignature with name "__time" 
and type that is not LONG because it
+      // will be automatically casted to LONG while processing in 
RowBasedColumnSelectorFactory.
+      // This can cause an issue when the incorrectly typecasted data is 
ingested or processed upon. One such example
+      // of inconsistency is that functions such as TIME_PARSE evaluate 
incorrectly
+      Optional<ColumnType> timestampColumnTypeOptional = 
signature.getColumnType(ColumnHolder.TIME_COLUMN_NAME);
+      if (timestampColumnTypeOptional.isPresent() && 
!timestampColumnTypeOptional.get().equals(ColumnType.LONG)) {
+        throw new ISE("Unable to use EXTERN function with data containing a 
__time column of any type other than long");

Review Comment:
   ```suggestion
           throw new ISE("EXTERN function with __time column can be used when 
__time column is of type long. Please change the column name to something other 
than __time ");
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to