I'll add that getObject is going to be expensive in general, since it boxes the integer and does a copy of the VarBinary data.
On Thu, Sep 9, 2021 at 9:25 AM Jacques Nadeau <[email protected]> wrote: > Fieldreader was defined to expose direct access in a type centric way. > > On Thu, Sep 9, 2021, 1:47 AM Daniel Hsu <[email protected]> wrote: > >> Perhaps a better way to phrase this question is: >> >> If the VectorSchemaRoot already stores BigIntVector's and >> VarBinaryVector's, how can I make the VectorSchemaRoot directly return >> `long` and `byte[]` values when doing random reads, instead of returning >> `Object` when doing random reads? >> >> On 2021/09/09 08:43:56, Daniel Hsu <[email protected]> wrote: >> > I have a VectorSchemaRoot object containing many BigIntVector's and >> VarBinaryVector's, and I want to do many random value reads. >> > >> > Right now I am doing the random value reads like this: >> > >> > VectorSchemaRoot # getVector(<vector number>) # getObject(<row number>) >> > >> > This returns an `Object` and then I look in VectorSchemaRoot # Schema # >> getField() to figure out whether to cast this object to a `long` or >> `byte[]`. >> > >> > Is it possible to avoid casting from `Object` to `long` or `byte[]` on >> every random read? >> > >> >
