MCPcopy Create free account
hub / github.com/couchbase/moss / getMerged

Method getMerged

segment_stack.go:121–142  ·  view source on GitHub ↗

------------------------------------------------------ getMerged() retrieves a lower level val for a given key and returns a merged val, based on the configured merge operator.

(key, val []byte, segStart int,
	base *segmentStack, readOptions ReadOptions)

Source from the content-addressed store, hash-verified

119// getMerged() retrieves a lower level val for a given key and returns
120// a merged val, based on the configured merge operator.
121func (ss *segmentStack) getMerged(key, val []byte, segStart int,
122 base *segmentStack, readOptions ReadOptions) ([]byte, error) {
123 var mo MergeOperator
124 if ss.options != nil {
125 mo = ss.options.MergeOperator
126 }
127 if mo == nil {
128 return nil, ErrMergeOperatorNil
129 }
130
131 vLower, err := ss.get(key, segStart, base, readOptions)
132 if err != nil {
133 return nil, err
134 }
135
136 vMerged, ok := mo.FullMerge(key, vLower, [][]byte{val})
137 if !ok {
138 return nil, ErrMergeOperatorFullMergeFailed
139 }
140
141 return vMerged, nil
142}
143
144// ------------------------------------------------------
145

Callers 2

getMethod · 0.95
CurrentMethod · 0.80

Calls 2

getMethod · 0.95
FullMergeMethod · 0.95

Tested by

no test coverage detected