diff options
Diffstat (limited to 'include/framework/DynamicExtension.h')
| -rw-r--r-- | include/framework/DynamicExtension.h | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/include/framework/DynamicExtension.h b/include/framework/DynamicExtension.h index 422ca10..91d41f8 100644 --- a/include/framework/DynamicExtension.h +++ b/include/framework/DynamicExtension.h @@ -282,8 +282,8 @@ private: return buffer->append(rec, ts); } - std::vector<R> *filter_deletes(std::vector<R> *records, ShardID shid, Buffer *buffer) { - std::vector<R> *processed_records = new std::vector<R>(); + std::vector<R> filter_deletes(std::vector<Wrapped<R>> *records, ShardID shid, Buffer *buffer) { + std::vector<R> processed_records; processed_records->reserve(records->size()); // For delete tagging, we just need to check the delete bit on each @@ -294,7 +294,7 @@ private: continue; } - processed_records->emplace_back(static_cast<R>(rec.rec)); + processed_records.emplace_back(rec.rec); } delete records; @@ -324,7 +324,7 @@ private: } } - processed_records->emplace_back(static_cast<R>(rec.rec)); + processed_records.emplace_back(rec.rec); } delete records; @@ -401,7 +401,7 @@ private: level_index merge_level_idx; size_t incoming_rec_cnt = get_level_record_count(idx, buffer); - for (level_index i=idx+1; i<=m_levels.size(); i++) { + for (level_index i=idx+1; i<m_levels.size(); i++) { if (can_merge_with(i, incoming_rec_cnt)) { return i; } @@ -466,9 +466,6 @@ private: * levels below idx are below the limit. */ inline void enforce_delete_maximum(level_index idx) { - // FIXME: currently broken due to tombstone cancellation issues - return; - long double ts_prop = (long double) m_levels[idx]->get_tombstone_count() / (long double) calc_level_record_capacity(idx); if (ts_prop > (long double) m_max_delete_prop) { |