2 more places that used old Key()
This commit is contained in:
parent
5f594d1acc
commit
8de860bf12
|
@ -438,18 +438,27 @@ func (udc *UpsideDownCouch) mergeOldAndNew(backIndexRow *BackIndexRow, rows []in
|
||||||
for _, row := range rows {
|
for _, row := range rows {
|
||||||
switch row := row.(type) {
|
switch row := row.(type) {
|
||||||
case *TermFrequencyRow:
|
case *TermFrequencyRow:
|
||||||
rowKey := string(row.Key())
|
keyBuf := GetRowBuffer()
|
||||||
if _, ok := existingTermKeys[rowKey]; ok {
|
if row.KeySize() > len(keyBuf) {
|
||||||
|
keyBuf = make([]byte, 2*row.KeySize())
|
||||||
|
}
|
||||||
|
keySize, _ := row.KeyTo(keyBuf)
|
||||||
|
if _, ok := existingTermKeys[string(keyBuf[:keySize])]; ok {
|
||||||
updateRows = append(updateRows, row)
|
updateRows = append(updateRows, row)
|
||||||
delete(existingTermKeys, rowKey)
|
delete(existingTermKeys, string(keyBuf[:keySize]))
|
||||||
} else {
|
} else {
|
||||||
addRows = append(addRows, row)
|
addRows = append(addRows, row)
|
||||||
}
|
}
|
||||||
|
PutRowBuffer(keyBuf)
|
||||||
case *StoredRow:
|
case *StoredRow:
|
||||||
rowKey := string(row.Key())
|
keyBuf := GetRowBuffer()
|
||||||
if _, ok := existingStoredKeys[rowKey]; ok {
|
if row.KeySize() > len(keyBuf) {
|
||||||
|
keyBuf = make([]byte, 2*row.KeySize())
|
||||||
|
}
|
||||||
|
keySize, _ := row.KeyTo(keyBuf)
|
||||||
|
if _, ok := existingStoredKeys[string(keyBuf[:keySize])]; ok {
|
||||||
updateRows = append(updateRows, row)
|
updateRows = append(updateRows, row)
|
||||||
delete(existingStoredKeys, rowKey)
|
delete(existingStoredKeys, string(keyBuf[:keySize]))
|
||||||
} else {
|
} else {
|
||||||
addRows = append(addRows, row)
|
addRows = append(addRows, row)
|
||||||
}
|
}
|
||||||
|
@ -617,15 +626,25 @@ func (udc *UpsideDownCouch) backIndexRowForDoc(kvreader store.KVReader, docID st
|
||||||
tempRow := &BackIndexRow{
|
tempRow := &BackIndexRow{
|
||||||
doc: []byte(docID),
|
doc: []byte(docID),
|
||||||
}
|
}
|
||||||
key := tempRow.Key()
|
|
||||||
value, err := kvreader.Get(key)
|
keyBuf := GetRowBuffer()
|
||||||
|
if tempRow.KeySize() > len(keyBuf) {
|
||||||
|
keyBuf = make([]byte, 2*tempRow.KeySize())
|
||||||
|
}
|
||||||
|
defer PutRowBuffer(keyBuf)
|
||||||
|
keySize, err := tempRow.KeyTo(keyBuf)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
value, err := kvreader.Get(keyBuf[:keySize])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if value == nil {
|
if value == nil {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
backIndexRow, err := NewBackIndexRowKV(key, value)
|
backIndexRow, err := NewBackIndexRowKV(keyBuf[:keySize], value)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user