| 483 | |
| 484 | template <bool is_row_fixed_length> |
| 485 | void EncoderBinary::DecodeImp(uint32_t start_row, uint32_t num_rows, |
| 486 | uint32_t offset_within_row, const RowTableImpl& rows, |
| 487 | KeyColumnArray* col) { |
| 488 | DecodeHelper<is_row_fixed_length>( |
| 489 | start_row, num_rows, offset_within_row, &rows, nullptr, col, col, |
| 490 | [](uint8_t* dst, const uint8_t* src, int64_t length) { |
| 491 | for (uint32_t istripe = 0; istripe < bit_util::CeilDiv(length, 8); ++istripe) { |
| 492 | auto dst64 = reinterpret_cast<uint64_t*>(dst); |
| 493 | auto src64 = reinterpret_cast<const uint64_t*>(src); |
| 494 | util::SafeStore(dst64 + istripe, src64[istripe]); |
| 495 | } |
| 496 | }); |
| 497 | } |
| 498 | |
| 499 | void EncoderBinaryPair::Decode(uint32_t start_row, uint32_t num_rows, |
| 500 | uint32_t offset_within_row, const RowTableImpl& rows, |