@@ -37,6 +37,8 @@ import org.apache.arrow.vector.UInt8Vector
37
37
import org.apache.arrow.vector.VarBinaryVector
38
38
import org.apache.arrow.vector.VarCharVector
39
39
import org.apache.arrow.vector.VectorSchemaRoot
40
+ import org.apache.arrow.vector.ViewVarBinaryVector
41
+ import org.apache.arrow.vector.ViewVarCharVector
40
42
import org.apache.arrow.vector.complex.StructVector
41
43
import org.apache.arrow.vector.ipc.ArrowFileReader
42
44
import org.apache.arrow.vector.ipc.ArrowReader
@@ -214,6 +216,24 @@ private fun VarCharVector.values(range: IntRange): List<String?> =
214
216
}
215
217
}
216
218
219
+ private fun LargeVarCharVector.values (range : IntRange ): List <String ?> =
220
+ range.map {
221
+ if (isNull(it)) {
222
+ null
223
+ } else {
224
+ String (get(it))
225
+ }
226
+ }
227
+
228
+ private fun ViewVarCharVector.values (range : IntRange ): List <String ?> =
229
+ range.map {
230
+ if (isNull(it)) {
231
+ null
232
+ } else {
233
+ String (get(it))
234
+ }
235
+ }
236
+
217
237
private fun VarBinaryVector.values (range : IntRange ): List <ByteArray ?> =
218
238
range.map {
219
239
if (isNull(it)) {
@@ -232,12 +252,12 @@ private fun LargeVarBinaryVector.values(range: IntRange): List<ByteArray?> =
232
252
}
233
253
}
234
254
235
- private fun LargeVarCharVector .values (range : IntRange ): List <String ?> =
255
+ private fun ViewVarBinaryVector .values (range : IntRange ): List <ByteArray ?> =
236
256
range.map {
237
257
if (isNull(it)) {
238
258
null
239
259
} else {
240
- String ( get(it) )
260
+ get(it)
241
261
}
242
262
}
243
263
@@ -273,10 +293,14 @@ private fun readField(root: VectorSchemaRoot, field: Field, nullability: Nullabi
273
293
274
294
is LargeVarCharVector -> vector.values(range).withTypeNullable(field.isNullable, nullability)
275
295
296
+ is ViewVarCharVector -> vector.values(range).withTypeNullable(field.isNullable, nullability)
297
+
276
298
is VarBinaryVector -> vector.values(range).withTypeNullable(field.isNullable, nullability)
277
299
278
300
is LargeVarBinaryVector -> vector.values(range).withTypeNullable(field.isNullable, nullability)
279
301
302
+ is ViewVarBinaryVector -> vector.values(range).withTypeNullable(field.isNullable, nullability)
303
+
280
304
is BitVector -> vector.values(range).withTypeNullable(field.isNullable, nullability)
281
305
282
306
is SmallIntVector -> vector.values(range).withTypeNullable(field.isNullable, nullability)
0 commit comments