rocksdb/utilities/write_batch_with_index
Levi Tamasi ef535039f3 Call PrepareValue on the base iterator in BaseDeltaIterator (#13105)
Summary:
Pull Request resolved: https://github.com/facebook/rocksdb/pull/13105

The `WriteBatchWithIndex::NewIteratorWithBase` interface enables creating a `BaseDeltaIterator` with an arbitrary base iterator passed in by the client, which has potentially been created with the `allow_unprepared_value` read option set. Because of this, `BaseDeltaIterator` has to call `PrepareValue` before using the `value()` or `columns()` from the base iterator. This includes both the case when `BaseDeltaIterator` exposes the `value()` and `columns()` of the base iterator as is and the case when the final `value()` / `columns()` is a result of merging key-values across the base and delta iterators. Note that `BaseDeltaIterator` itself does not support `allow_unprepared_value` yet; this will be implemented in an upcoming patch.

Reviewed By: jowlyzhang

Differential Revision: D65249643

fbshipit-source-id: b0a1ccc0dfd31105b2eef167b463ed15a8bb83b7
2024-10-31 14:20:33 -07:00
..
write_batch_with_index.cc Add GetEntityForUpdate to optimistic and WriteCommitted pessimistic transactions (#12668) 2024-05-20 10:43:05 -07:00
write_batch_with_index_internal.cc Call PrepareValue on the base iterator in BaseDeltaIterator (#13105) 2024-10-31 14:20:33 -07:00
write_batch_with_index_internal.h Fix compile errors in C++23 (#12106) 2024-05-28 15:33:57 -07:00
write_batch_with_index_test.cc Call PrepareValue on the base iterator in BaseDeltaIterator (#13105) 2024-10-31 14:20:33 -07:00