| 470 | } |
| 471 | |
| 472 | void deserializeString( |
| 473 | ByteInputStream& in, |
| 474 | vector_size_t index, |
| 475 | BaseVector& result, |
| 476 | bool exactSize) { |
| 477 | BOLT_CHECK_EQ(result.encoding(), VectorEncoding::Simple::FLAT); |
| 478 | auto values = result.asUnchecked<FlatVector<StringView>>(); |
| 479 | auto size = in.read<int32_t>(); |
| 480 | if (StringView::isInline(size)) { |
| 481 | char start[StringView::kInlineSize]; |
| 482 | in.readBytes(start, size); |
| 483 | values->setNoCopy(index, StringView(start, size)); |
| 484 | } else { |
| 485 | auto buffer = values->getBufferWithSpace(size, exactSize); |
| 486 | auto start = buffer->asMutable<char>() + buffer->size(); |
| 487 | in.readBytes(start, size); |
| 488 | buffer->setSize(buffer->size() + size); |
| 489 | values->setNoCopy(index, StringView(start, size)); |
| 490 | } |
| 491 | } |
| 492 | |
| 493 | template <> |
| 494 | void deserializeOne<TypeKind::VARCHAR>( |
no test coverage detected