Skip to content
  • Andres Notzli's avatar
    Simplify querying of merge results · f32a5720
    Andres Notzli authored
    Summary:
    While working on supporting mixing merge operators with
    single deletes ( https://reviews.facebook.net/D43179 ),
    I realized that returning and dealing with merge results
    can be made simpler. Submitting this as a separate diff
    because it is not directly related to single deletes.
    
    Before, callers of merge helper had to retrieve the merge
    result in one of two ways depending on whether the merge
    was successful or not (success = result of merge was single
    kTypeValue). For successful merges, the caller could query
    the resulting key/value pair and for unsuccessful merges,
    the result could be retrieved in the form of two deques of
    keys and values. However, with single deletes, a successful merge
    does not return a single key/value pair (if merge
    operands are merged with a single delete, we have to generate
    a value and keep the original single delete around to make
    sure that we are not accidentially producing a key overwrite).
    In addition, the two existing call sites of the merge
    helper were taking the same actions independently from whether
    the merge was successful or not, so this patch simplifies that.
    
    Test Plan: make clean all check
    
    Reviewers: rven, sdong, yhchiang, anthony, igor
    
    Reviewed By: igor
    
    Subscribers: dhruba, leveldb
    
    Differential Revision: https://reviews.facebook.net/D43353
    f32a5720