Ivan,

Nothing wrong except for performance concerns.
The following code looks up the column by name twice:

if (!tuple.isNull("weight"))
   doSomething(tuple.floatValue("weight"))

Whereas in other languages you could do it in one shot:

if (tuple.TryGetFloatValue("weight", out var weight))
    doSomething(weight)

or Option<float> weight = tuple.floatValue("weight") and so on.

On Tue, Jul 6, 2021 at 9:58 AM Ivan Daschinsky <ivanda...@gmail.com> wrote:

> Sorry, but what is wrong with simple method isNull()
>
> вт, 6 июл. 2021 г., 09:55 Pavel Tupitsyn <ptupit...@apache.org>:
>
> > Val,
> >
> > > I don't think there is a significantly better way
> > > of doing this in Java.
> >
> > Yep looks like there is no way to return two values without boxing.
> > No ref, no out, no value types.
> >
> > > Schema already provides this information, doesn't it?
> >
> > It does, though we don't have an agreement on how to expose this on
> public
> > API yet,
> > or do we?
> >
> > On Tue, Jul 6, 2021 at 12:44 AM Valentin Kulichenko <
> > valentin.kuliche...@gmail.com> wrote:
> >
> > > Pavel,
> > >
> > > That's a good point, but I don't think there is a significantly better
> > way
> > > of doing this in Java.
> > >
> > > There should be a way to check if a field is nullable or not though.
> > Schema
> > > already provides this information, doesn't it?
> > >
> > > -Val
> > >
> > > On Mon, Jul 5, 2021 at 11:03 AM Pavel Tupitsyn <ptupit...@apache.org>
> > > wrote:
> > >
> > > > Igniters,
> > > >
> > > > Looks like Tuple API has no efficient way to tell if a value for a
> > > nullable
> > > > column of primitive type is null.
> > > >
> > > > - Tuple#intValue() will return 0 when the actual value is null => not
> > > clear
> > > > if 0 is 0 or null.
> > > > - Tuple#value() works, but is more expensive due to boxing and type
> > > lookup.
> > > >
> > > > Any ideas on how to improve this?
> > > >
> > >
> >
>

Reply via email to