github.com/cockroachdb/pebble@v0.0.0-20231214172447-ab4952c5f87b/merger.go (about) 1 // Copyright 2018 The LevelDB-Go and Pebble Authors. All rights reserved. Use 2 // of this source code is governed by a BSD-style license that can be found in 3 // the LICENSE file. 4 5 package pebble 6 7 import ( 8 "io" 9 10 "github.com/cockroachdb/pebble/internal/base" 11 ) 12 13 // Merge exports the base.Merge type. 14 type Merge = base.Merge 15 16 // Merger exports the base.Merger type. 17 type Merger = base.Merger 18 19 // ValueMerger exports the base.ValueMerger type. 20 type ValueMerger = base.ValueMerger 21 22 // DeletableValueMerger exports the base.DeletableValueMerger type. 23 type DeletableValueMerger = base.DeletableValueMerger 24 25 // DefaultMerger exports the base.DefaultMerger variable. 26 var DefaultMerger = base.DefaultMerger 27 28 func finishValueMerger( 29 valueMerger ValueMerger, includesBase bool, 30 ) (value []byte, needDelete bool, closer io.Closer, err error) { 31 if valueMerger2, ok := valueMerger.(DeletableValueMerger); ok { 32 value, needDelete, closer, err = valueMerger2.DeletableFinish(includesBase) 33 } else { 34 value, closer, err = valueMerger.Finish(includesBase) 35 } 36 return 37 }