Skip to content

Commit 856c4a5

Browse files
committed
withTypeNullableNothingList
1 parent 99d8e88 commit 856c4a5

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

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

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,15 @@ private inline fun <reified T> List<T?>.withTypeNullable(
223223
return this to typeOf<T>().withNullability(nullable)
224224
}
225225

226+
@JvmName("withTypeNullableNothingList")
227+
private fun List<Nothing?>.withTypeNullable(
228+
expectedNulls: Boolean,
229+
nullabilityOptions: NullabilityOptions,
230+
): Pair<List<Nothing?>, KType> {
231+
val nullable = nullabilityOptions.applyNullability(this, expectedNulls)
232+
return this to nothingType(nullable)
233+
}
234+
226235
private fun readField(root: VectorSchemaRoot, field: Field, nullability: NullabilityOptions): AnyBaseCol {
227236
try {
228237
val range = 0 until root.rowCount
@@ -256,7 +265,7 @@ private fun readField(root: VectorSchemaRoot, field: Field, nullability: Nullabi
256265
is TimeStampMilliVector -> vector.values(range).withTypeNullable(field.isNullable, nullability)
257266
is TimeStampSecVector -> vector.values(range).withTypeNullable(field.isNullable, nullability)
258267
is StructVector -> vector.values(range).withTypeNullable(field.isNullable, nullability)
259-
is NullVector -> vector.values(range) to nothingType(field.isNullable)
268+
is NullVector -> vector.values(range).withTypeNullable(field.isNullable, nullability)
260269
else -> {
261270
throw NotImplementedError("reading from ${vector.javaClass.canonicalName} is not implemented")
262271
}

0 commit comments

Comments
 (0)