@@ -173,8 +173,8 @@ private fun StructVector.values(range: IntRange): List<Map<String, Any?>?> = ran
173
173
getObject(it)
174
174
}
175
175
176
- private fun NullVector.values (range : IntRange ): List <Any ?> = range.map {
177
- getObject(it)
176
+ private fun NullVector.values (range : IntRange ): List <Nothing ?> = range.map {
177
+ getObject(it) as Nothing?
178
178
}
179
179
180
180
private fun VarCharVector.values (range : IntRange ): List <String ?> = range.map {
@@ -209,6 +209,12 @@ private fun LargeVarCharVector.values(range: IntRange): List<String?> = range.ma
209
209
}
210
210
}
211
211
212
+ internal fun nothingType (nullable : Boolean ): KType = if (nullable) {
213
+ typeOf<List <Nothing ?>>()
214
+ } else {
215
+ typeOf<List <Nothing >>()
216
+ }.arguments.first().type!!
217
+
212
218
private inline fun <reified T > List<T?>.withTypeNullable (
213
219
expectedNulls : Boolean ,
214
220
nullabilityOptions : NullabilityOptions ,
@@ -250,7 +256,7 @@ private fun readField(root: VectorSchemaRoot, field: Field, nullability: Nullabi
250
256
is TimeStampMilliVector -> vector.values(range).withTypeNullable(field.isNullable, nullability)
251
257
is TimeStampSecVector -> vector.values(range).withTypeNullable(field.isNullable, nullability)
252
258
is StructVector -> vector.values(range).withTypeNullable(field.isNullable, nullability)
253
- is NullVector -> vector.values(range).withTypeNullable (field.isNullable, nullability )
259
+ is NullVector -> vector.values(range) to nothingType (field.isNullable)
254
260
else -> {
255
261
throw NotImplementedError (" reading from ${vector.javaClass.canonicalName} is not implemented" )
256
262
}
0 commit comments