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


##########
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:
   I had a chat with @rdblue who reviewed the PR that introduced this, and it 
is actually on purpose. Spark always passes in microseconds, changing this 
would break this assumption with Spark. So I think we have to revert this line. 
That said, I do think we need to check (and raise an error) when it overflows. 
Easiest way of doing this is by converting it to nano's, and convert is back to 
micro's and check if it still the same value.



-- 
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