Fix clippy warnings

This commit is contained in:
Konstantin Knizhnik
2021-11-22 20:05:34 +03:00
parent 13f9565ff8
commit 915001c67e
3 changed files with 22 additions and 23 deletions

2
Cargo.lock generated
View File

@@ -2572,6 +2572,8 @@ checksum = "b07db065a5cf61a7e4ba64f29e67db906fb1787316516c4e6e5ff0fea1efcd8a"
[[package]]
name = "yakv"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ae1ec7c67193f20a10b113492c57f097c34958d5bdc3c974a65361559aa21d9"
dependencies = [
"anyhow",
"fs2",

View File

@@ -300,7 +300,7 @@ impl BufferedRepository {
fn get_buffered_timeline(&self, timelineid: ZTimelineId) -> Result<Arc<BufferedTimeline>> {
let mut timelines = self.timelines.lock().unwrap();
Ok(self.get_timeline_locked(timelineid, &mut timelines)?)
self.get_timeline_locked(timelineid, &mut timelines)
}
// Implementation of the public `get_timeline` function. This differs from the public
@@ -406,7 +406,7 @@ impl BufferedRepository {
.lock()
.unwrap()
.iter()
.map(|pair| (pair.0.clone(), pair.1.clone()))
.map(|pair| (*pair.0, pair.1.clone()))
.collect();
//let timelines = self.timelines.lock().unwrap();
for (timelineid, timeline) in timelines.iter() {
@@ -954,9 +954,9 @@ impl Timeline for BufferedTimeline {
let mut dropped: HashSet<RelishTag> = HashSet::new();
let store = self.store.read().unwrap();
'meta: loop {
let mut iter = store.data.range(&from.ser()?..);
let iter = store.data.range(&from.ser()?..);
while let Some(entry) = iter.next() {
for entry in iter {
let pair = entry?;
if let StoreKey::Metadata(dk) = StoreKey::des(&pair.0)? {
// processing metadata
@@ -1006,8 +1006,8 @@ impl Timeline for BufferedTimeline {
let mut from_blknum = 0;
let mut page_versions: Vec<(u32, Lsn, PageVersion)> = Vec::new();
'pages: loop {
let mut iter = store.data.range(&from.ser()?..);
while let Some(entry) = iter.next() {
let iter = store.data.range(&from.ser()?..);
for entry in iter {
let pair = entry?;
if let StoreKey::Data(dk) = StoreKey::des(&pair.0)? {
let same_seg = from_rel == dk.rel
@@ -1586,11 +1586,11 @@ impl BufferedTimeline {
'meta: loop {
let store = self.store.read().unwrap();
let mut iter = store.data.range(&from.ser()?..);
let iter = store.data.range(&from.ser()?..);
// We can not remove deteriorated version immediately, we need to check first that successor exists
let mut last_key: Option<yakv::storage::Key> = None;
while let Some(entry) = iter.next() {
for entry in iter {
let pair = entry?;
let raw_key = pair.0;
let key = StoreKey::des(&raw_key)?;
@@ -1665,9 +1665,9 @@ impl BufferedTimeline {
let mut from_blknum = 0;
'pages: loop {
let store = self.store.read().unwrap();
let mut iter = store.data.range(&from.ser()?..);
let iter = store.data.range(&from.ser()?..);
deteriorated.clear();
while let Some(entry) = iter.next() {
for entry in iter {
let pair = entry?;
let raw_key = pair.0;
let key = StoreKey::des(&raw_key)?;

View File

@@ -3,7 +3,6 @@ use lz4_flex;
use std::convert::TryInto;
use std::ops::{Bound, RangeBounds};
use std::path::Path;
use tracing::*;
use zenith_utils::lsn::Lsn;
use yakv::storage::{Key, Storage, StorageConfig, StorageIterator, Value};
@@ -32,7 +31,7 @@ impl<'a> Iterator for ToastIterator<'a> {
fn next(&mut self) -> Option<Self::Item> {
let mut toast: Option<Vec<u8>> = None;
let mut next_segno = 0u16;
while let Some(elem) = self.iter.next() {
for elem in &mut self.iter {
if let Ok((key, value)) = elem {
let key_len = key.len();
let n_segments =
@@ -73,7 +72,7 @@ impl<'a> DoubleEndedIterator for ToastIterator<'a> {
let mut next_segno = 0u16;
while let Some(elem) = self.iter.next_back() {
if let Ok((key, value)) = elem {
assert!(value.len() != 0);
assert!(!value.is_empty());
let key_len = key.len();
let n_segments =
u16::from_be_bytes(key[key_len - 4..key_len - 2].try_into().unwrap());
@@ -95,10 +94,7 @@ impl<'a> DoubleEndedIterator for ToastIterator<'a> {
next_segno = segno;
if next_segno == 0 {
let toast = toast.unwrap();
if toast.len() == 0 {
warn!("n_segments={}", n_segments);
}
assert!(toast.len() != 0);
assert!(!toast.is_empty());
let res = lz4_flex::decompress_size_prepended(&toast);
return Some(if let Ok(decompressed_data) = res {
Ok((key, decompressed_data))
@@ -135,10 +131,11 @@ impl ToastStore {
})
}
pub fn put(&mut self, key: &Key, value: &Value) -> Result<()> {
pub fn put(&mut self, key: &[u8], value: &[u8]) -> Result<()> {
let mut tx = self.db.start_transaction();
let value_len = value.len();
let mut key = key.clone();
let mut key = key.to_vec();
let value = &value.to_vec();
if value_len >= TOAST_SEGMENT_SIZE {
let compressed_data = lz4_flex::compress_prepend_size(value);
let compressed_data_len = compressed_data.len();
@@ -214,15 +211,15 @@ impl ToastStore {
}
}
pub fn remove(&mut self, key: &Key) -> Result<()> {
pub fn remove(&mut self, key: &[u8]) -> Result<()> {
let mut tx = self.db.start_transaction();
let mut min_key = key.clone();
let mut max_key = key.clone();
let mut min_key = key.to_vec();
let mut max_key = key.to_vec();
min_key.extend_from_slice(&[0u8; 4]);
max_key.extend_from_slice(&[0xFFu8; 4]);
let mut iter = tx.range(&min_key..&max_key);
if let Some(entry) = iter.next() {
let mut key = entry?.0.clone();
let mut key = entry?.0;
let key_len = key.len();
let n_segments = u16::from_be_bytes(key[key_len - 4..key_len - 2].try_into().unwrap());
if n_segments != 0 {