diff --git a/rust-toolchain b/rust-toolchain index 12f15f4d3c..746dd10072 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -1 +1 @@ -nightly-2022-04-03 +nightly-2022-07-14 diff --git a/src/api/src/v1.rs b/src/api/src/v1.rs index 1039092458..b729dce3c3 100644 --- a/src/api/src/v1.rs +++ b/src/api/src/v1.rs @@ -1,3 +1,4 @@ +#![allow(clippy::all)] tonic::include_proto!("greptime.v1"); pub mod codec { diff --git a/src/catalog/src/memory.rs b/src/catalog/src/memory.rs index 38bad99edd..6250efd4f2 100644 --- a/src/catalog/src/memory.rs +++ b/src/catalog/src/memory.rs @@ -26,7 +26,8 @@ impl MemoryCatalogList { catalog: Arc, ) -> Option { let mut catalogs = self.catalogs.write().unwrap(); - match catalogs.entry(name) { + let entry = catalogs.entry(name); + match entry { Entry::Occupied(v) => Some(v.get().clone()), Entry::Vacant(v) => { v.insert(catalog); diff --git a/src/catalog/src/system.rs b/src/catalog/src/system.rs index 25ad3a3eaa..becb8d5690 100644 --- a/src/catalog/src/system.rs +++ b/src/catalog/src/system.rs @@ -257,7 +257,7 @@ pub fn decode_system_catalog( } } -#[derive(Debug, Copy, Clone, PartialEq)] +#[derive(Debug, Copy, Clone, PartialEq, Eq)] pub enum EntryType { Catalog = 1, Schema = 2, @@ -280,25 +280,25 @@ impl TryFrom for EntryType { } } -#[derive(Debug, PartialEq)] +#[derive(Debug, PartialEq, Eq)] pub enum Entry { Catalog(CatalogEntry), Schema(SchemaEntry), Table(TableEntry), } -#[derive(Debug, PartialEq)] +#[derive(Debug, PartialEq, Eq)] pub struct CatalogEntry { pub catalog_name: String, } -#[derive(Debug, PartialEq)] +#[derive(Debug, PartialEq, Eq)] pub struct SchemaEntry { pub catalog_name: String, pub schema_name: String, } -#[derive(Debug, PartialEq)] +#[derive(Debug, PartialEq, Eq)] pub struct TableEntry { pub catalog_name: String, pub schema_name: String, @@ -306,7 +306,7 @@ pub struct TableEntry { pub table_id: TableId, } -#[derive(Debug, Serialize, Deserialize, PartialEq)] +#[derive(Debug, Serialize, Deserialize, PartialEq, Eq)] pub struct TableEntryValue { pub table_id: TableId, } diff --git a/src/common/error/src/status_code.rs b/src/common/error/src/status_code.rs index a7ab0edbd3..5b4d5329ee 100644 --- a/src/common/error/src/status_code.rs +++ b/src/common/error/src/status_code.rs @@ -1,7 +1,7 @@ use std::fmt; /// Common status code for public API. -#[derive(Debug, Clone, Copy, PartialEq)] +#[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum StatusCode { // ====== Begin of common status code ============== /// Success. diff --git a/src/datatypes/src/type_id.rs b/src/datatypes/src/type_id.rs index 2d008da11e..4d620d75df 100644 --- a/src/datatypes/src/type_id.rs +++ b/src/datatypes/src/type_id.rs @@ -1,7 +1,7 @@ use crate::data_type::ConcreteDataType; /// Unique identifier for logical data type. -#[derive(Clone, Copy, Debug, PartialEq)] +#[derive(Clone, Copy, Debug, PartialEq, Eq)] pub enum LogicalTypeId { Null, diff --git a/src/datatypes/src/types/binary_type.rs b/src/datatypes/src/types/binary_type.rs index adbe69aef1..e7f5625cb7 100644 --- a/src/datatypes/src/types/binary_type.rs +++ b/src/datatypes/src/types/binary_type.rs @@ -8,7 +8,7 @@ use crate::data_type::{DataType, DataTypeRef}; use crate::type_id::LogicalTypeId; use crate::value::Value; -#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct BinaryType; impl BinaryType { diff --git a/src/datatypes/src/types/boolean_type.rs b/src/datatypes/src/types/boolean_type.rs index 2394410299..9ea1a01882 100644 --- a/src/datatypes/src/types/boolean_type.rs +++ b/src/datatypes/src/types/boolean_type.rs @@ -7,7 +7,7 @@ use crate::data_type::{DataType, DataTypeRef}; use crate::type_id::LogicalTypeId; use crate::value::Value; -#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct BooleanType; impl BooleanType { diff --git a/src/datatypes/src/types/date.rs b/src/datatypes/src/types/date.rs index b362d30799..3f306b07b6 100644 --- a/src/datatypes/src/types/date.rs +++ b/src/datatypes/src/types/date.rs @@ -6,7 +6,7 @@ use serde::{Deserialize, Serialize}; use crate::data_type::DataType; use crate::prelude::{DataTypeRef, LogicalTypeId, Value}; -#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct DateType; impl DataType for DateType { diff --git a/src/datatypes/src/types/datetime.rs b/src/datatypes/src/types/datetime.rs index 31a0f8dec1..71ecc3ff66 100644 --- a/src/datatypes/src/types/datetime.rs +++ b/src/datatypes/src/types/datetime.rs @@ -6,7 +6,7 @@ use serde::{Deserialize, Serialize}; use crate::data_type::{DataType, DataTypeRef}; use crate::prelude::{LogicalTypeId, Value}; -#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct DateTimeType; const DATE_TIME_TYPE_NAME: &str = "DateTime"; diff --git a/src/datatypes/src/types/null_type.rs b/src/datatypes/src/types/null_type.rs index 27133c9755..2d9c9c5092 100644 --- a/src/datatypes/src/types/null_type.rs +++ b/src/datatypes/src/types/null_type.rs @@ -7,7 +7,7 @@ use crate::data_type::{DataType, DataTypeRef}; use crate::type_id::LogicalTypeId; use crate::value::Value; -#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct NullType; impl NullType { diff --git a/src/datatypes/src/types/primitive_type.rs b/src/datatypes/src/types/primitive_type.rs index 61785cad51..f355f696ff 100644 --- a/src/datatypes/src/types/primitive_type.rs +++ b/src/datatypes/src/types/primitive_type.rs @@ -1,3 +1,4 @@ +use std::any::TypeId; use std::marker::PhantomData; use arrow::datatypes::DataType as ArrowDataType; @@ -9,12 +10,20 @@ use crate::type_id::LogicalTypeId; use crate::types::primitive_traits::Primitive; use crate::value::Value; -#[derive(Clone, PartialEq, Serialize, Deserialize)] +#[derive(Clone, Serialize, Deserialize)] pub struct PrimitiveType { #[serde(skip)] _phantom: PhantomData, } +impl PartialEq> for PrimitiveType { + fn eq(&self, _other: &PrimitiveType) -> bool { + TypeId::of::() == TypeId::of::() + } +} + +impl Eq for PrimitiveType {} + /// Create a new [ConcreteDataType] from a primitive type. pub trait DataTypeBuilder { fn build_data_type() -> ConcreteDataType; @@ -88,3 +97,25 @@ impl_numeric!(i32, Int32); impl_numeric!(i64, Int64); impl_numeric!(f32, Float32); impl_numeric!(f64, Float64); + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_eq() { + assert_eq!(UInt8Type::default(), UInt8Type::default()); + assert_eq!(UInt16Type::default(), UInt16Type::default()); + assert_eq!(UInt32Type::default(), UInt32Type::default()); + assert_eq!(UInt64Type::default(), UInt64Type::default()); + assert_eq!(Int8Type::default(), Int8Type::default()); + assert_eq!(Int16Type::default(), Int16Type::default()); + assert_eq!(Int32Type::default(), Int32Type::default()); + assert_eq!(Int64Type::default(), Int64Type::default()); + assert_eq!(Float32Type::default(), Float32Type::default()); + assert_eq!(Float64Type::default(), Float64Type::default()); + + assert_ne!(Float32Type::default(), Float64Type::default()); + assert_ne!(Float32Type::default(), Int32Type::default()); + } +} diff --git a/src/datatypes/src/types/string_type.rs b/src/datatypes/src/types/string_type.rs index 20d6879430..e0ba6b6ca4 100644 --- a/src/datatypes/src/types/string_type.rs +++ b/src/datatypes/src/types/string_type.rs @@ -7,7 +7,7 @@ use serde::{Deserialize, Serialize}; use crate::data_type::DataType; use crate::prelude::{DataTypeRef, LogicalTypeId, Value}; -#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct StringType; impl StringType { diff --git a/src/log-store/src/fs/chunk.rs b/src/log-store/src/fs/chunk.rs index 38dba7a27a..3902801e00 100644 --- a/src/log-store/src/fs/chunk.rs +++ b/src/log-store/src/fs/chunk.rs @@ -63,7 +63,7 @@ impl Chunk { pub fn read(&self, dst: &mut [u8]) -> usize { let size = self.len().min(dst.len()); let range = self.read_offset..(self.read_offset + size); - (&mut dst[0..size]).copy_from_slice(&self.data[range]); + dst[0..size].copy_from_slice(&self.data[range]); size } diff --git a/src/log-store/src/fs/entry.rs b/src/log-store/src/fs/entry.rs index de0163634a..face0cd032 100644 --- a/src/log-store/src/fs/entry.rs +++ b/src/log-store/src/fs/entry.rs @@ -18,7 +18,7 @@ const ENTRY_MIN_LEN: usize = HEADER_LENGTH + 4; // length + offset + namespace id + epoch const HEADER_LENGTH: usize = 4 + 8 + 8 + 8; -#[derive(Debug, PartialEq, Clone)] +#[derive(Debug, PartialEq, Eq, Clone)] pub struct EntryImpl { pub data: Vec, pub offset: Offset, diff --git a/src/log-store/src/fs/index.rs b/src/log-store/src/fs/index.rs index 3504f93fe2..ba32d4b578 100644 --- a/src/log-store/src/fs/index.rs +++ b/src/log-store/src/fs/index.rs @@ -6,7 +6,7 @@ use store_api::logstore::entry::{Id, Offset}; use crate::error::Result; use crate::fs::file_name::FileName; -#[derive(Debug, Copy, Clone, PartialEq)] +#[derive(Debug, Copy, Clone, PartialEq, Eq)] pub struct Location { pub file_name: FileName, pub offset: Offset, diff --git a/src/sql/src/statements/create_table.rs b/src/sql/src/statements/create_table.rs index 4dda3e1641..ec30e287ca 100644 --- a/src/sql/src/statements/create_table.rs +++ b/src/sql/src/statements/create_table.rs @@ -3,7 +3,7 @@ use crate::ast::{ColumnDef, ObjectName, SqlOption, TableConstraint}; /// Time index name, used in table constraints. pub const TIME_INDEX: &str = "__time_index"; -#[derive(Debug, PartialEq, Clone)] +#[derive(Debug, PartialEq, Eq, Clone)] pub struct CreateTable { /// Create if not exists pub if_not_exists: bool, diff --git a/src/sql/src/statements/insert.rs b/src/sql/src/statements/insert.rs index 6dca41beaf..ad9064fd0b 100644 --- a/src/sql/src/statements/insert.rs +++ b/src/sql/src/statements/insert.rs @@ -3,7 +3,7 @@ use sqlparser::parser::ParserError; use crate::ast::{Expr, Value}; -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Eq)] pub struct Insert { // Can only be sqlparser::ast::Statement::Insert variant pub inner: Statement, diff --git a/src/sql/src/statements/query.rs b/src/sql/src/statements/query.rs index 419f2a106a..451b6eb64d 100644 --- a/src/sql/src/statements/query.rs +++ b/src/sql/src/statements/query.rs @@ -3,7 +3,7 @@ use sqlparser::ast::Query as SpQuery; use crate::error::Error; /// Query statement instance. -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Eq)] pub struct Query { pub inner: SpQuery, } diff --git a/src/sql/src/statements/show_database.rs b/src/sql/src/statements/show_database.rs index b792507e6d..154b6e6835 100644 --- a/src/sql/src/statements/show_database.rs +++ b/src/sql/src/statements/show_database.rs @@ -1,7 +1,7 @@ use crate::statements::show_kind::ShowKind; /// SQL structure for `SHOW DATABASES`. -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Eq)] pub struct SqlShowDatabase { pub kind: ShowKind, } diff --git a/src/sql/src/statements/show_kind.rs b/src/sql/src/statements/show_kind.rs index ca8e90113c..3b02af263c 100644 --- a/src/sql/src/statements/show_kind.rs +++ b/src/sql/src/statements/show_kind.rs @@ -2,7 +2,7 @@ use sqlparser::ast::Expr; use sqlparser::ast::Ident; /// Show kind for SQL expressions like `SHOW DATABASE` or `SHOW TABLE` -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Eq)] pub enum ShowKind { All, Like(Ident), diff --git a/src/sql/src/statements/statement.rs b/src/sql/src/statements/statement.rs index 379414c35d..da185e0c16 100644 --- a/src/sql/src/statements/statement.rs +++ b/src/sql/src/statements/statement.rs @@ -7,7 +7,7 @@ use crate::statements::query::Query; use crate::statements::show_database::SqlShowDatabase; /// Tokens parsed by `DFParser` are converted into these values. -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Eq)] pub enum Statement { // Databases. ShowDatabases(SqlShowDatabase), @@ -41,7 +41,7 @@ impl TryFrom for SpStatement { /// Comment hints from SQL. /// It'll be enabled when using `--comment` in mysql client. /// Eg: `SELECT * FROM system.number LIMIT 1; -- { ErrorCode 25 }` -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Eq)] pub struct Hint { pub error_code: Option, pub comment: String, diff --git a/src/storage/benches/wal/bench_decode.rs b/src/storage/benches/wal/bench_decode.rs index baab556675..58263aaa3d 100644 --- a/src/storage/benches/wal/bench_decode.rs +++ b/src/storage/benches/wal/bench_decode.rs @@ -4,8 +4,6 @@ use storage::write_batch::{codec, WriteBatch}; use super::util::gen_new_batch_and_extras; -tonic::include_proto!("greptime.storage.wal.v1"); - /* ------------------------------------- decode | diff --git a/src/storage/benches/wal/bench_encode.rs b/src/storage/benches/wal/bench_encode.rs index 707514a48c..8c8d2f590c 100644 --- a/src/storage/benches/wal/bench_encode.rs +++ b/src/storage/benches/wal/bench_encode.rs @@ -4,8 +4,6 @@ use storage::write_batch::{codec, WriteBatch}; use super::util::gen_new_batch_and_extras; -tonic::include_proto!("greptime.storage.wal.v1"); - /* ------------------------------------- encode | diff --git a/src/storage/benches/wal/bench_wal.rs b/src/storage/benches/wal/bench_wal.rs index 01659229ad..ca57e02c69 100644 --- a/src/storage/benches/wal/bench_wal.rs +++ b/src/storage/benches/wal/bench_wal.rs @@ -4,8 +4,6 @@ use storage::write_batch::{codec, WriteBatch}; use super::util::gen_new_batch_and_extras; -tonic::include_proto!("greptime.storage.wal.v1"); - /* ------------------------------------- encode & decode | diff --git a/src/storage/src/manifest/action.rs b/src/storage/src/manifest/action.rs index beb8479802..ef01774207 100644 --- a/src/storage/src/manifest/action.rs +++ b/src/storage/src/manifest/action.rs @@ -18,7 +18,7 @@ use crate::metadata::{ColumnFamilyMetadata, ColumnMetadata, VersionNumber}; use crate::sst::FileMeta; /// Minimal data that could be used to persist and recover [RegionMetadata](crate::metadata::RegionMetadata). -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] pub struct RawRegionMetadata { pub id: RegionId, pub name: String, @@ -38,7 +38,7 @@ pub struct RawColumnsMetadata { } /// Minimal data that could be used to persist and recover [ColumnFamiliesMetadata](crate::metadata::ColumnFamiliesMetadata). -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct RawColumnFamiliesMetadata { pub column_families: Vec, } @@ -48,12 +48,12 @@ pub struct RegionChange { pub metadata: RawRegionMetadata, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)] pub struct RegionRemove { pub region_id: RegionId, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)] pub struct RegionEdit { pub region_version: VersionNumber, pub flushed_sequence: SequenceNumber, diff --git a/src/storage/src/manifest/region.rs b/src/storage/src/manifest/region.rs index 633262977f..2ec340367a 100644 --- a/src/storage/src/manifest/region.rs +++ b/src/storage/src/manifest/region.rs @@ -44,7 +44,7 @@ mod tests { manifest .update(RegionMetaActionList::with_action(RegionMetaAction::Change( RegionChange { - metadata: (&*region_meta).into(), + metadata: region_meta.as_ref().into(), }, ))) .await diff --git a/src/storage/src/memtable.rs b/src/storage/src/memtable.rs index 2bc20eff37..a29283498a 100644 --- a/src/storage/src/memtable.rs +++ b/src/storage/src/memtable.rs @@ -76,7 +76,7 @@ impl Default for IterContext { } /// The ordering of the iterator output. -#[derive(Debug, PartialEq)] +#[derive(Debug, PartialEq, Eq)] pub enum RowOrdering { /// The output rows are unordered. Unordered, diff --git a/src/storage/src/metadata.rs b/src/storage/src/metadata.rs index b90b365821..43072e5f1c 100644 --- a/src/storage/src/metadata.rs +++ b/src/storage/src/metadata.rs @@ -117,8 +117,8 @@ impl From<&RegionMetadata> for RawRegionMetadata { RawRegionMetadata { id: data.id, name: data.name.clone(), - columns: (&*data.columns).into(), - column_families: (&data.column_families).into(), + columns: RawColumnsMetadata::from(&*data.columns), + column_families: RawColumnFamiliesMetadata::from(&data.column_families), version: data.version, } } @@ -274,7 +274,7 @@ impl From for ColumnsMetadata { } } -#[derive(Clone, Debug, PartialEq)] +#[derive(Clone, Debug, PartialEq, Eq)] pub struct ColumnFamiliesMetadata { /// Map column family id to column family metadata. id_to_cfs: HashMap, @@ -304,7 +304,7 @@ impl From for ColumnFamiliesMetadata { } } -#[derive(Clone, Debug, Serialize, Deserialize, PartialEq)] +#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] pub struct ColumnFamilyMetadata { /// Column family name. pub name: String, diff --git a/src/storage/src/read.rs b/src/storage/src/read.rs index d5e3e3f0d3..d5e4ff2c9b 100644 --- a/src/storage/src/read.rs +++ b/src/storage/src/read.rs @@ -7,7 +7,7 @@ use crate::error::Result; /// Storage internal representation of a batch of rows. // Now the structure of `Batch` is still unstable, all pub fields may be changed. -#[derive(Debug, Default, PartialEq)] +#[derive(Debug, Default, PartialEq, Eq)] pub struct Batch { /// Rows organized in columnar format. /// diff --git a/src/storage/src/region.rs b/src/storage/src/region.rs index d045c38f64..4f36bfa447 100644 --- a/src/storage/src/region.rs +++ b/src/storage/src/region.rs @@ -102,7 +102,7 @@ impl RegionImpl { .update(RegionMetaActionList::new(vec![ RegionMetaAction::Protocol(ProtocolAction::new()), RegionMetaAction::Change(RegionChange { - metadata: (&*metadata).into(), + metadata: metadata.as_ref().into(), }), ])) .await?; @@ -322,7 +322,7 @@ struct RegionInner { impl RegionInner { #[inline] fn version_control(&self) -> &VersionControl { - &*self.shared.version_control + self.shared.version_control.as_ref() } fn in_memory_metadata(&self) -> RegionMetaImpl { diff --git a/src/storage/src/region/tests.rs b/src/storage/src/region/tests.rs index 4377185dc2..d0c6131c3a 100644 --- a/src/storage/src/region/tests.rs +++ b/src/storage/src/region/tests.rs @@ -198,7 +198,7 @@ async fn test_recover_region_manifets() { manifest .update(RegionMetaActionList::with_action(RegionMetaAction::Change( RegionChange { - metadata: (&*region_meta).into(), + metadata: region_meta.as_ref().into(), }, ))) .await diff --git a/src/storage/src/snapshot.rs b/src/storage/src/snapshot.rs index 739783de32..ac3f343ff6 100644 --- a/src/storage/src/snapshot.rs +++ b/src/storage/src/snapshot.rs @@ -51,7 +51,7 @@ impl Snapshot for SnapshotImpl { builder = builder.pick_memtables(mem_set); } - let reader = builder.pick_ssts(&**self.version.ssts())?.build().await?; + let reader = builder.pick_ssts(self.version.ssts())?.build().await?; Ok(ScanResponse { reader }) } diff --git a/src/storage/src/sst.rs b/src/storage/src/sst.rs index 2fcbfa3e5d..a04bc6d642 100644 --- a/src/storage/src/sst.rs +++ b/src/storage/src/sst.rs @@ -158,7 +158,7 @@ impl FileHandleInner { } /// Immutable metadata of a sst file. -#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] +#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] pub struct FileMeta { pub file_name: String, /// SST level of the file. diff --git a/src/storage/src/sst/parquet.rs b/src/storage/src/sst/parquet.rs index dff35e3137..c9190769a6 100644 --- a/src/storage/src/sst/parquet.rs +++ b/src/storage/src/sst/parquet.rs @@ -65,7 +65,7 @@ impl<'a> ParquetWriter<'a> { let writer = object.writer(0).await.context(error::FlushIoSnafu)?; // now all physical types use plain encoding, maybe let caller to choose encoding for each type. - let encodings = get_encoding_for_schema(&*schema, |_| Encoding::Plain); + let encodings = get_encoding_for_schema(schema, |_| Encoding::Plain); let mut sink = FileSink::try_new( writer, diff --git a/src/storage/src/write_batch.rs b/src/storage/src/write_batch.rs index 7071c14347..e9f99db132 100644 --- a/src/storage/src/write_batch.rs +++ b/src/storage/src/write_batch.rs @@ -576,13 +576,10 @@ pub mod codec { let mut chunks = Vec::with_capacity(self.mutation_extras.len()); - for state_opt in stream_states { + for state_opt in stream_states.into_iter().flatten() { match state_opt { - Some(s) => match s { - StreamState::Some(chunk) => chunks.push(chunk), - StreamState::Waiting => return Err(WriteBatchError::StreamWaiting), - }, - None => (), + StreamState::Some(chunk) => chunks.push(chunk), + StreamState::Waiting => return Err(WriteBatchError::StreamWaiting), } } diff --git a/src/store-api/src/manifest/action.rs b/src/store-api/src/manifest/action.rs index dc784962b3..3675762c16 100644 --- a/src/store-api/src/manifest/action.rs +++ b/src/store-api/src/manifest/action.rs @@ -19,13 +19,13 @@ pub fn supported_protocol_version() -> (ProtocolVersion, ProtocolVersion) { /// Protocol action that used to block older clients from reading or writing the log when backwards /// incompatible changes are made to the protocol. clients should be tolerant of messages and /// fields that they do not understand. -#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] pub struct ProtocolAction { pub min_reader_version: ProtocolVersion, pub min_writer_version: ProtocolVersion, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)] pub struct VersionHeader { pub prev_version: ManifestVersion, } diff --git a/src/table-engine/src/manifest/action.rs b/src/table-engine/src/manifest/action.rs index 6b9cae8646..590ab8a37d 100644 --- a/src/table-engine/src/manifest/action.rs +++ b/src/table-engine/src/manifest/action.rs @@ -18,7 +18,7 @@ pub struct TableChange { pub table_info: TableInfo, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)] pub struct TableRemove { pub table_ident: TableIdent, pub table_name: String, diff --git a/src/table/src/metadata.rs b/src/table/src/metadata.rs index f34828bab6..96b28b8554 100644 --- a/src/table/src/metadata.rs +++ b/src/table/src/metadata.rs @@ -11,7 +11,7 @@ pub type TableVersion = u64; /// Indicates whether and how a filter expression can be handled by a /// Table for table scans. -#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)] +#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)] pub enum FilterPushDownType { /// The expression cannot be used by the provider. Unsupported, @@ -27,7 +27,7 @@ pub enum FilterPushDownType { } /// Indicates the type of this table for metadata/catalog purposes. -#[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq)] +#[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq, Eq)] pub enum TableType { /// An ordinary physical table. Base,