diff options
author | Tor Egge <Tor.Egge@online.no> | 2021-12-03 18:55:45 +0100 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2021-12-03 18:55:45 +0100 |
commit | 472cb247d6d4d5e8cd58d537f58ce9515ef79869 (patch) | |
tree | abeba8051fbcca0f4a4a700d8f51b03e18d31b38 /vespalib/src | |
parent | 42e3653b19f95847d14b9b90478a967907611d98 (diff) |
Filter early on buffer id and pass vector of entries in normalize_posting_lists
and foreach_posting_list EnumStoreDictionary member functions to limit number
of callbacks.
Diffstat (limited to 'vespalib/src')
-rw-r--r-- | vespalib/src/vespa/vespalib/btree/btreeiterator.h | 6 | ||||
-rw-r--r-- | vespalib/src/vespa/vespalib/btree/btreenode.h | 5 |
2 files changed, 11 insertions, 0 deletions
diff --git a/vespalib/src/vespa/vespalib/btree/btreeiterator.h b/vespalib/src/vespa/vespalib/btree/btreeiterator.h index 325ce0e0e47..30123b1946e 100644 --- a/vespalib/src/vespa/vespalib/btree/btreeiterator.h +++ b/vespalib/src/vespa/vespalib/btree/btreeiterator.h @@ -113,6 +113,9 @@ public: return _node->getData(_idx); } + // Only use during compaction when changing reference to moved value + DataType &getWData() { return getWNode()->getWData(_idx); } + bool valid() const { @@ -881,6 +884,9 @@ public: _leaf.getWNode()->writeData(_leaf.getIdx(), data); } + // Only use during compaction when changing reference to moved value + DataType &getWData() { return _leaf.getWData(); } + /** * Set a new key for the current iterator position. * The new key must have the same semantic meaning as the old key. diff --git a/vespalib/src/vespa/vespalib/btree/btreenode.h b/vespalib/src/vespa/vespalib/btree/btreenode.h index d8752d77f0b..468f17fcd1a 100644 --- a/vespalib/src/vespa/vespalib/btree/btreenode.h +++ b/vespalib/src/vespa/vespalib/btree/btreenode.h @@ -99,6 +99,8 @@ public: } const DataT &getData(uint32_t idx) const { return _data[idx]; } + // Only use during compaction when changing reference to moved value + DataT &getWData(uint32_t idx) { return _data[idx]; } void setData(uint32_t idx, const DataT &data) { _data[idx] = data; } static bool hasData() { return true; } }; @@ -120,6 +122,9 @@ public: return BTreeNoLeafData::_instance; } + // Only use during compaction when changing reference to moved value + BTreeNoLeafData &getWData(uint32_t) const { return BTreeNoLeafData::_instance; } + void setData(uint32_t idx, const BTreeNoLeafData &data) { (void) idx; (void) data; |