@@ -628,12 +628,11 @@ public VectorHolder read(VectorHolder reuse, int numValsToRead) {
628
628
VectorHolder ids = idReader .read (null , numValsToRead );
629
629
BigIntVector vec = allocateBigIntVector (ROW_ID_ARROW_FIELD , numValsToRead );
630
630
ArrowBuf dataBuffer = vec .getDataBuffer ();
631
- boolean isNullReader = ids .vector () == null ;
632
631
ArrowVectorAccessor <?, String , ?, ?> idsAccessor =
633
- isNullReader ? null : ArrowVectorAccessors .getVectorAccessor (ids );
632
+ ids . vector () == null ? null : ArrowVectorAccessors .getVectorAccessor (ids );
634
633
for (int i = 0 ; i < numValsToRead ; i += 1 ) {
635
634
long bufferOffset = (long ) i * Long .BYTES ;
636
- if (isNullReader || ids . nullabilityHolder (). isNullAt ( i ) == 1 ) {
635
+ if (idsAccessor == null || isNull ( ids , i ) ) {
637
636
long rowId = firstRowId + (Long ) positions .getObject (i );
638
637
dataBuffer .setLong (bufferOffset , rowId );
639
638
} else {
@@ -688,14 +687,14 @@ public VectorHolder read(VectorHolder reuse, int numValsToRead) {
688
687
BigIntVector vec = allocateBigIntVector (LAST_UPDATED_SEQ , numValsToRead );
689
688
ArrowBuf dataBuffer = vec .getDataBuffer ();
690
689
VectorHolder seqNumbers = seqReader .read (null , numValsToRead );
691
- ArrowVectorAccessor <?, String , ?, ?> accessor =
690
+ ArrowVectorAccessor <?, String , ?, ?> seqAccessor =
692
691
seqNumbers .vector () == null ? null : ArrowVectorAccessors .getVectorAccessor (seqNumbers );
693
692
for (int i = 0 ; i < numValsToRead ; i += 1 ) {
694
693
long bufferOffset = (long ) i * Long .BYTES ;
695
- if (seqNumbers . vector () == null || seqNumbers . nullabilityHolder (). isNullAt ( i ) == 1 ) {
694
+ if (seqAccessor == null || isNull ( seqNumbers , i ) ) {
696
695
dataBuffer .setLong (bufferOffset , lastUpdatedSeq );
697
696
} else {
698
- long materializedSeqNumber = accessor .getLong (i );
697
+ long materializedSeqNumber = seqAccessor .getLong (i );
699
698
dataBuffer .setLong (bufferOffset , materializedSeqNumber );
700
699
}
701
700
}
@@ -725,6 +724,10 @@ public void close() {
725
724
}
726
725
}
727
726
727
+ private static boolean isNull (VectorHolder holder , int index ) {
728
+ return holder .nullabilityHolder ().isNullAt (index ) == 1 ;
729
+ }
730
+
728
731
private static BigIntVector allocateBigIntVector (Field field , int valueCount ) {
729
732
BigIntVector vector = (BigIntVector ) field .createVector (ArrowAllocation .rootAllocator ());
730
733
vector .allocateNew (valueCount );
0 commit comments