Skip to content

Commit 68c99c5

Browse files
committed
Read arrow NullVector
1 parent 0d4c052 commit 68c99c5

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

dataframe-arrow/src/main/kotlin/org/jetbrains/kotlinx/dataframe/io/arrowReadingImpl.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import org.apache.arrow.vector.Float8Vector
1313
import org.apache.arrow.vector.IntVector
1414
import org.apache.arrow.vector.LargeVarBinaryVector
1515
import org.apache.arrow.vector.LargeVarCharVector
16+
import org.apache.arrow.vector.NullVector
1617
import org.apache.arrow.vector.SmallIntVector
1718
import org.apache.arrow.vector.TimeMicroVector
1819
import org.apache.arrow.vector.TimeMilliVector
@@ -172,6 +173,10 @@ private fun StructVector.values(range: IntRange): List<Map<String, Any?>?> = ran
172173
getObject(it)
173174
}
174175

176+
private fun NullVector.values(range: IntRange): List<Any?> = range.map {
177+
getObject(it)
178+
}
179+
175180
private fun VarCharVector.values(range: IntRange): List<String?> = range.map {
176181
if (isNull(it)) {
177182
null
@@ -245,6 +250,7 @@ private fun readField(root: VectorSchemaRoot, field: Field, nullability: Nullabi
245250
is TimeStampMilliVector -> vector.values(range).withTypeNullable(field.isNullable, nullability)
246251
is TimeStampSecVector -> vector.values(range).withTypeNullable(field.isNullable, nullability)
247252
is StructVector -> vector.values(range).withTypeNullable(field.isNullable, nullability)
253+
is NullVector -> vector.values(range).withTypeNullable(field.isNullable, nullability)
248254
else -> {
249255
throw NotImplementedError("reading from ${vector.javaClass.canonicalName} is not implemented")
250256
}

0 commit comments

Comments
 (0)