I'm not quite following. What is the internal representation that Presto
uses for dates?

On Wed, Feb 19, 2020 at 12:58 PM Vlad Rozov <vro...@apache.org> wrote:

> While it is possible to convert to IntLiteral or even probably to
> DateLiteral, presto mostly delegates to  iceberg to do the proper
> conversion from LongLiteral, AFAIK (see
> https://github.com/prestosql/presto/blob/de97d1572d7da5570177627bd42fbb8b7fdd417e/presto-iceberg/src/main/java/io/prestosql/plugin/iceberg/ExpressionConverter.java#L167
> )
>
> Thank you,
>
> Vlad
>
> On 2020/02/19 20:10:14, Ryan Blue <rb...@netflix.com.INVALID> wrote:
> > Can you describe the use case a bit more? What prevents you from using an
> > IntLiteral instead?
> >
> > On Wed, Feb 19, 2020 at 11:26 AM Vlad Rozov <vro...@apache.org> wrote:
> >
> > > Hi Ryan,
> > >
> > > Thank you for the detailed explanation. Yes, there is a use case in
> Presto
> > > for LongLiteral to DateLiteral conversion as it uses long and allows
> it to
> > > be converted/cast to Date.
> > >
> > > Thank you,
> > >
> > > Vlad
> > >
> > > On 2020/02/19 18:54:35, Ryan Blue <rb...@netflix.com.INVALID> wrote:
> > > > Originally, we didn't allow int to date or long to timestamp, but we
> > > added
> > > > those to support expression conversion from Spark. It's much easier
> to
> > > > allow the LongLiteral created from a Spark timestamp expression
> directly
> > > to
> > > > a TimestampLiteral than to convert to an equivalent timestamp string
> > > > because the internal representation in Spark and Iceberg are the
> same.
> > > The
> > > > conversion from long to date was never really needed by this path,
> so we
> > > > probably didn't add it. Iceberg is fairly strict with allowed
> conversions
> > > > to date and timestamp because the validation we can apply is still
> very
> > > > permissive.
> > > >
> > > > I think it's fine to add long to date if there is a need, but
> otherwise
> > > I'd
> > > > leave it as it is. Do you have a use case for this?
> > > >
> > > > On Tue, Feb 18, 2020 at 3:19 PM Vlad Rozov <vro...@apache.org>
> wrote:
> > > >
> > > > > Hi,
> > > > >
> > > > > What is the reason iceberg does not allow LongLiteral to
> DateLiteral
> > > > > conversion while allowing LongLiteral to IntegerLiteral and
> > > IntegerLiteral
> > > > > to DateLiteral? Should not direct conversion from LongLiteral to
> > > > > DateLiteral be allowed when LongLiteral represents values in a
> proper
> > > range?
> > > > >
> > > > > Thank you,
> > > > >
> > > > > Vlad
> > > >
> > > >
> > > >
> > > > --
> > > > Ryan Blue
> > > > Software Engineer
> > > > Netflix
> > > >
> > >
> >
> >
> > --
> > Ryan Blue
> > Software Engineer
> > Netflix
> >
>


-- 
Ryan Blue
Software Engineer
Netflix

Reply via email to