| 106 | } // namespace |
| 107 | |
| 108 | void PeeledEncoding::setDictionaryWrapping( |
| 109 | DecodedVector& decoded, |
| 110 | const SelectivityVector& rows, |
| 111 | BaseVector& firstWrapper) { |
| 112 | wrapEncoding_ = VectorEncoding::Simple::DICTIONARY; |
| 113 | baseSize_ = decoded.base()->size(); |
| 114 | if (isDictionaryOverFlat(firstWrapper)) { |
| 115 | // Reuse indices and nulls buffers. |
| 116 | wrap_ = firstWrapper.wrapInfo(); |
| 117 | wrapNulls_ = firstWrapper.nulls(); |
| 118 | return; |
| 119 | } |
| 120 | auto wrapping = decoded.dictionaryWrapping(firstWrapper, rows.end()); |
| 121 | wrap_ = std::move(wrapping.indices); |
| 122 | wrapNulls_ = std::move(wrapping.nulls); |
| 123 | } |
| 124 | |
| 125 | bool PeeledEncoding::peelInternal( |
| 126 | const std::vector<VectorPtr>& vectorsToPeel, |
nothing calls this directly
no test coverage detected