stevenzwu commented on code in PR #11775:
URL: https://github.com/apache/iceberg/pull/11775#discussion_r2113243416


##########
api/src/main/java/org/apache/iceberg/expressions/Literals.java:
##########
@@ -300,8 +300,7 @@ public <T> Literal<T> to(Type type) {
         case TIMESTAMP:
           return (Literal<T>) new TimestampLiteral(value());
         case TIMESTAMP_NANO:
-          // assume micros and convert to nanos to match the behavior in the 
timestamp case above
-          return new TimestampLiteral(value()).to(type);
+          return (Literal<T>) new TimestampNanoLiteral(value());

Review Comment:
   long literals is implicit and some precision interpretation rule has to be 
applied. The good practice is probably using the timestamp functions to 
explicit describe the precision, e.g. Spark SQL
   ```
   TIMESTAMP '2021-06-30T02:00:00.000Z'
   timestamp_micros(1230219000123123)
   ```
   
   Until Spark adds timestamp_nano data type and SQL function, maybe Iceberg 
timestamp_nano just doesn't need to work for Spark? Also Spark can't create an 
Iceberg table with timestamp_nano field. probably also reasonable for read to 
fail too.
   



-- 
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: issues-unsubscr...@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to