| 1281 | } |
| 1282 | |
| 1283 | VectorPtr createAllNullsVector( |
| 1284 | const TypePtr& type, |
| 1285 | vector_size_t size, |
| 1286 | memory::MemoryPool* pool) { |
| 1287 | auto kind = type->kind(); |
| 1288 | switch (kind) { |
| 1289 | case TypeKind::ROW: { |
| 1290 | std::vector<VectorPtr> children(type->size(), nullptr); |
| 1291 | return std::make_shared<RowVector>( |
| 1292 | pool, type, allocateNulls(size, pool, bits::kNull), size, children); |
| 1293 | } |
| 1294 | case TypeKind::ARRAY: |
| 1295 | return std::make_shared<ArrayVector>( |
| 1296 | pool, |
| 1297 | type, |
| 1298 | allocateNulls(size, pool, bits::kNull), |
| 1299 | size, |
| 1300 | allocateSizes(size, pool), |
| 1301 | allocateSizes(size, pool), |
| 1302 | nullptr); |
| 1303 | case TypeKind::MAP: |
| 1304 | return std::make_shared<MapVector>( |
| 1305 | pool, |
| 1306 | type, |
| 1307 | allocateNulls(size, pool, bits::kNull), |
| 1308 | size, |
| 1309 | allocateSizes(size, pool), |
| 1310 | allocateSizes(size, pool), |
| 1311 | nullptr, |
| 1312 | nullptr); |
| 1313 | default: |
| 1314 | return BOLT_DYNAMIC_SCALAR_TYPE_DISPATCH( |
| 1315 | createAllNullsFlatVector, kind, size, pool, type); |
| 1316 | } |
| 1317 | } |
| 1318 | |
| 1319 | TEST_F(VectorTest, copyFromAllNulls) { |
| 1320 | vector_size_t size = 1'000; |
no test coverage detected