• T
    ForwardIterator::status() checks all child iterators · 105c1e09
    Tomislav Novak 提交于
    Summary:
    Forward iterator only checked `status_` and `mutable_iter_->status()`, which is
    not sufficient. For example, when reading exclusively from cache
    (kBlockCacheTier), `mutable_iter_->status()` may return kOk (e.g. there's
    nothing in the memtable), but one of immutable iterators could be in
    kIncomplete. In this case, `ForwardIterator::status()` ought to return that
    status instead of kOk.
    
    This diff changes `status()` to also check `imm_iters_`, `l0_iters_`, and
    `level_iters_`.
    
    Test Plan:
      ROCKSDB_TESTS=TailingIteratorIncomplete ./db_test
    
    Reviewers: ljin, igor
    
    Reviewed By: igor
    
    Subscribers: dhruba, leveldb
    
    Differential Revision: https://reviews.facebook.net/D19581
    105c1e09
db_test.cc 228.3 KB