diff --git a/Cargo.lock b/Cargo.lock index f889410aa9..1603528b22 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -173,9 +173,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.89" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "anymap2" @@ -1597,7 +1597,7 @@ dependencies = [ "partition", "paste", "prometheus", - "rustc-hash 2.0.0", + "rustc-hash 2.1.1", "serde_json", "session", "snafu 0.8.5", @@ -3110,9 +3110,9 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.6.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" +checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" [[package]] name = "datafusion" @@ -6509,7 +6509,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" dependencies = [ "cfg-if", - "windows-targets 0.48.5", + "windows-targets 0.52.6", ] [[package]] @@ -6599,9 +6599,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.22" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] name = "log-query" @@ -7780,7 +7780,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 2.0.100", @@ -9527,7 +9527,7 @@ dependencies = [ "pin-project-lite", "quinn-proto", "quinn-udp", - "rustc-hash 2.0.0", + "rustc-hash 2.1.1", "rustls", "socket2", "thiserror 1.0.64", @@ -9544,7 +9544,7 @@ dependencies = [ "bytes", "rand 0.8.5", "ring", - "rustc-hash 2.0.0", + "rustc-hash 2.1.1", "rustls", "slab", "thiserror 1.0.64", @@ -9821,9 +9821,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", @@ -10333,9 +10333,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustc-hash" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" [[package]] name = "rustc_version" @@ -11158,9 +11158,9 @@ dependencies = [ [[package]] name = "smallbitvec" -version = "2.5.3" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3fc564a4b53fd1e8589628efafe57602d91bde78be18186b5f61e8faea470" +checksum = "d31d263dd118560e1a492922182ab6ca6dc1d03a3bf54e7699993f31a4150e3f" [[package]] name = "smallvec" diff --git a/Cargo.toml b/Cargo.toml index 5e3374108a..b0a049bbd1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -73,10 +73,11 @@ edition = "2021" license = "Apache-2.0" [workspace.lints] -clippy.print_stdout = "warn" -clippy.print_stderr = "warn" clippy.dbg_macro = "warn" clippy.implicit_clone = "warn" +clippy.result_large_err = "allow" +clippy.large_enum_variant = "allow" +clippy.doc_overindented_list_items = "allow" rust.unknown_lints = "deny" rust.unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tokio_unstable)'] } diff --git a/flake.lock b/flake.lock index cfea27d34b..f2b2521130 100644 --- a/flake.lock +++ b/flake.lock @@ -8,11 +8,11 @@ "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1737613896, - "narHash": "sha256-ldqXIglq74C7yKMFUzrS9xMT/EVs26vZpOD68Sh7OcU=", + "lastModified": 1742452566, + "narHash": "sha256-sVuLDQ2UIWfXUBbctzrZrXM2X05YjX08K7XHMztt36E=", "owner": "nix-community", "repo": "fenix", - "rev": "303a062fdd8e89f233db05868468975d17855d80", + "rev": "7d9ba794daf5e8cc7ee728859bc688d8e26d5f06", "type": "github" }, "original": { @@ -41,11 +41,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1737569578, - "narHash": "sha256-6qY0pk2QmUtBT9Mywdvif0i/CLVgpCjMUn6g9vB+f3M=", + "lastModified": 1743576891, + "narHash": "sha256-vXiKURtntURybE6FMNFAVpRPr8+e8KoLPrYs9TGuAKc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "47addd76727f42d351590c905d9d1905ca895b82", + "rev": "44a69ed688786e98a101f02b712c313f1ade37ab", "type": "github" }, "original": { @@ -65,11 +65,11 @@ "rust-analyzer-src": { "flake": false, "locked": { - "lastModified": 1737581772, - "narHash": "sha256-t1P2Pe3FAX9TlJsCZbmJ3wn+C4qr6aSMypAOu8WNsN0=", + "lastModified": 1742296961, + "narHash": "sha256-gCpvEQOrugHWLimD1wTFOJHagnSEP6VYBDspq96Idu0=", "owner": "rust-lang", "repo": "rust-analyzer", - "rev": "582af7ee9c8d84f5d534272fc7de9f292bd849be", + "rev": "15d87419f1a123d8f888d608129c3ce3ff8f13d4", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index a6d9fbc0df..225f631721 100644 --- a/flake.nix +++ b/flake.nix @@ -21,7 +21,7 @@ lib = nixpkgs.lib; rustToolchain = fenix.packages.${system}.fromToolchainName { name = (lib.importTOML ./rust-toolchain.toml).toolchain.channel; - sha256 = "sha256-f/CVA1EC61EWbh0SjaRNhLL0Ypx2ObupbzigZp8NmL4="; + sha256 = "sha256-i0Sh/ZFFsHlZ3oFZFc24qdk6Cd8Do8OPU4HJQsrKOeM="; }; in { diff --git a/rust-toolchain.toml b/rust-toolchain.toml index eb2546003b..5d547223f2 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,2 +1,2 @@ [toolchain] -channel = "nightly-2024-12-25" +channel = "nightly-2025-04-15" diff --git a/src/catalog/src/system_schema/pg_catalog/pg_namespace/oid_map.rs b/src/catalog/src/system_schema/pg_catalog/pg_namespace/oid_map.rs index edbdac25c7..a2165d731c 100644 --- a/src/catalog/src/system_schema/pg_catalog/pg_namespace/oid_map.rs +++ b/src/catalog/src/system_schema/pg_catalog/pg_namespace/oid_map.rs @@ -84,12 +84,6 @@ mod tests { let key1 = "3178510"; let key2 = "4215648"; - // have collision - assert_eq!( - oid_map.hasher.hash_one(key1) as u32, - oid_map.hasher.hash_one(key2) as u32 - ); - // insert them into oid_map let oid1 = oid_map.get_oid(key1); let oid2 = oid_map.get_oid(key2); diff --git a/src/common/function/src/scalars/matches_term.rs b/src/common/function/src/scalars/matches_term.rs index c99c5ca572..54cf556e85 100644 --- a/src/common/function/src/scalars/matches_term.rs +++ b/src/common/function/src/scalars/matches_term.rs @@ -12,8 +12,9 @@ // See the License for the specific language governing permissions and // limitations under the License. +use std::fmt; +use std::iter::repeat_n; use std::sync::Arc; -use std::{fmt, iter}; use common_query::error::{InvalidFuncArgsSnafu, Result}; use common_query::prelude::Volatility; @@ -126,9 +127,10 @@ impl Function for MatchesTermFunction { let term = term_column.get_ref(0).as_string().unwrap(); match term { None => { - return Ok(Arc::new(BooleanVector::from_iter( - iter::repeat(None).take(text_column.len()), - ))); + return Ok(Arc::new(BooleanVector::from_iter(repeat_n( + None, + text_column.len(), + )))); } Some(term) => Some(MatchesTermFinder::new(term)), } @@ -217,7 +219,7 @@ impl MatchesTermFinder { } let mut pos = 0; - while let Some(found_pos) = self.finder.find(text[pos..].as_bytes()) { + while let Some(found_pos) = self.finder.find(&text.as_bytes()[pos..]) { let actual_pos = pos + found_pos; let prev_ok = self.starts_with_non_alnum diff --git a/src/common/meta/src/lib.rs b/src/common/meta/src/lib.rs index b1cc18d5e4..7bfbd78f9c 100644 --- a/src/common/meta/src/lib.rs +++ b/src/common/meta/src/lib.rs @@ -15,8 +15,6 @@ #![feature(assert_matches)] #![feature(btree_extract_if)] #![feature(let_chains)] -#![feature(extract_if)] -#![feature(hash_extract_if)] pub mod cache; pub mod cache_invalidator; diff --git a/src/common/meta/src/rpc/router.rs b/src/common/meta/src/rpc/router.rs index 7ddd104c61..2386ca73a7 100644 --- a/src/common/meta/src/rpc/router.rs +++ b/src/common/meta/src/rpc/router.rs @@ -176,15 +176,12 @@ impl TableRoute { })? .into(); - let leader_peer = peers - .get(region_route.leader_peer_index as usize) - .cloned() - .map(Into::into); + let leader_peer = peers.get(region_route.leader_peer_index as usize).cloned(); let follower_peers = region_route .follower_peer_indexes .into_iter() - .filter_map(|x| peers.get(x as usize).cloned().map(Into::into)) + .filter_map(|x| peers.get(x as usize).cloned()) .collect::>(); region_routes.push(RegionRoute { diff --git a/src/common/query/src/logical_plan/accumulator.rs b/src/common/query/src/logical_plan/accumulator.rs index 32f1b4587c..a9c499d323 100644 --- a/src/common/query/src/logical_plan/accumulator.rs +++ b/src/common/query/src/logical_plan/accumulator.rs @@ -24,7 +24,7 @@ use datatypes::prelude::*; use datatypes::vectors::{Helper as VectorHelper, VectorRef}; use snafu::ResultExt; -use crate::error::{self, Error, FromScalarValueSnafu, IntoVectorSnafu, Result}; +use crate::error::{self, FromScalarValueSnafu, IntoVectorSnafu, Result}; use crate::prelude::*; pub type AggregateFunctionCreatorRef = Arc; @@ -166,8 +166,7 @@ impl DfAccumulator for DfAccumulatorAdaptor { let output_type = self.creator.output_type()?; let scalar_value = value .try_to_scalar_value(&output_type) - .context(error::ToScalarValueSnafu) - .map_err(Error::from)?; + .context(error::ToScalarValueSnafu)?; Ok(scalar_value) } diff --git a/src/datatypes/src/schema/constraint.rs b/src/datatypes/src/schema/constraint.rs index 1a2128c200..560500810f 100644 --- a/src/datatypes/src/schema/constraint.rs +++ b/src/datatypes/src/schema/constraint.rs @@ -253,9 +253,10 @@ fn create_current_timestamp_vector( data_type: &ConcreteDataType, num_rows: usize, ) -> Result { - let current_timestamp_vector = TimestampMillisecondVector::from_values( - std::iter::repeat(util::current_time_millis()).take(num_rows), - ); + let current_timestamp_vector = TimestampMillisecondVector::from_values(std::iter::repeat_n( + util::current_time_millis(), + num_rows, + )); if data_type.is_timestamp() { current_timestamp_vector.cast(data_type) } else { diff --git a/src/datatypes/src/vectors/constant.rs b/src/datatypes/src/vectors/constant.rs index 66587cf1d7..3ccade1392 100644 --- a/src/datatypes/src/vectors/constant.rs +++ b/src/datatypes/src/vectors/constant.rs @@ -198,8 +198,7 @@ impl fmt::Debug for ConstantVector { impl Serializable for ConstantVector { fn serialize_to_json(&self) -> Result> { - std::iter::repeat(self.get(0)) - .take(self.len()) + std::iter::repeat_n(self.get(0), self.len()) .map(serde_json::Value::try_from) .collect::>() .context(SerializeSnafu) diff --git a/src/datatypes/src/vectors/decimal.rs b/src/datatypes/src/vectors/decimal.rs index cce26e3e3e..e446b36de3 100644 --- a/src/datatypes/src/vectors/decimal.rs +++ b/src/datatypes/src/vectors/decimal.rs @@ -412,7 +412,7 @@ pub(crate) fn replicate_decimal128( // Safety: std::iter::Repeat and std::iter::Take implement TrustedLen. builder .mutable_array - .append_trusted_len_iter(std::iter::repeat(data).take(repeat_times)); + .append_trusted_len_iter(std::iter::repeat_n(data, repeat_times)); } } None => { diff --git a/src/datatypes/src/vectors/null.rs b/src/datatypes/src/vectors/null.rs index 292e2c5e33..e745ee13d6 100644 --- a/src/datatypes/src/vectors/null.rs +++ b/src/datatypes/src/vectors/null.rs @@ -120,9 +120,7 @@ impl fmt::Debug for NullVector { impl Serializable for NullVector { fn serialize_to_json(&self) -> Result> { - Ok(std::iter::repeat(serde_json::Value::Null) - .take(self.len()) - .collect()) + Ok(std::iter::repeat_n(serde_json::Value::Null, self.len()).collect()) } } diff --git a/src/datatypes/src/vectors/primitive.rs b/src/datatypes/src/vectors/primitive.rs index 7b059e0d07..f3e49183f5 100644 --- a/src/datatypes/src/vectors/primitive.rs +++ b/src/datatypes/src/vectors/primitive.rs @@ -388,7 +388,7 @@ pub(crate) fn replicate_primitive( // Safety: std::iter::Repeat and std::iter::Take implement TrustedLen. builder .mutable_array - .append_trusted_len_iter(std::iter::repeat(data).take(repeat_times)); + .append_trusted_len_iter(std::iter::repeat_n(data, repeat_times)); } } None => { diff --git a/src/index/src/inverted_index/create/sort/external_sort.rs b/src/index/src/inverted_index/create/sort/external_sort.rs index e8f67b7b7b..3b4eaebc5c 100644 --- a/src/index/src/inverted_index/create/sort/external_sort.rs +++ b/src/index/src/inverted_index/create/sort/external_sort.rs @@ -481,7 +481,7 @@ mod tests { let mock_values = dic_values .iter() - .flat_map(|(value, size)| iter::repeat(value.clone()).take(*size)) + .flat_map(|(value, size)| std::iter::repeat_n(value.clone(), *size)) .collect::>(); let sorted_result = sorted_result(&mock_values, segment_row_count); diff --git a/src/meta-srv/src/lib.rs b/src/meta-srv/src/lib.rs index ebd3b7b54f..20b9285723 100644 --- a/src/meta-srv/src/lib.rs +++ b/src/meta-srv/src/lib.rs @@ -14,7 +14,6 @@ #![feature(result_flattening)] #![feature(assert_matches)] -#![feature(extract_if)] #![feature(hash_set_entry)] pub mod bootstrap; diff --git a/src/meta-srv/src/mocks.rs b/src/meta-srv/src/mocks.rs index 656ceeb3d9..29ed3a5ae8 100644 --- a/src/meta-srv/src/mocks.rs +++ b/src/meta-srv/src/mocks.rs @@ -141,10 +141,7 @@ pub async fn mock( if let Some(client) = client { Ok(TokioIo::new(client)) } else { - Err(std::io::Error::new( - std::io::ErrorKind::Other, - "Client already taken", - )) + Err(std::io::Error::other("Client already taken")) } } }), diff --git a/src/meta-srv/src/service/store/cached_kv.rs b/src/meta-srv/src/service/store/cached_kv.rs index b26c2a558f..f86b42a9e2 100644 --- a/src/meta-srv/src/service/store/cached_kv.rs +++ b/src/meta-srv/src/service/store/cached_kv.rs @@ -278,7 +278,7 @@ impl KvBackend for LeaderCachedKvBackend { let remote_res = self.store.batch_get(remote_req).await?; let put_req = BatchPutRequest { - kvs: remote_res.kvs.clone().into_iter().map(Into::into).collect(), + kvs: remote_res.kvs.clone().into_iter().collect(), ..Default::default() }; let _ = self.cache.batch_put(put_req).await?; diff --git a/src/mito2/src/read/projection.rs b/src/mito2/src/read/projection.rs index 883f554066..6d6de78a74 100644 --- a/src/mito2/src/read/projection.rs +++ b/src/mito2/src/read/projection.rs @@ -363,9 +363,9 @@ mod tests { builder .push_field_array( *column_id, - Arc::new(Int64Array::from_iter_values( - std::iter::repeat(*field).take(num_rows), - )), + Arc::new(Int64Array::from_iter_values(std::iter::repeat_n( + *field, num_rows, + ))), ) .unwrap(); } diff --git a/src/mito2/src/sst/index/bloom_filter/creator.rs b/src/mito2/src/sst/index/bloom_filter/creator.rs index 5c00b1a19c..53821c7cf2 100644 --- a/src/mito2/src/sst/index/bloom_filter/creator.rs +++ b/src/mito2/src/sst/index/bloom_filter/creator.rs @@ -346,7 +346,6 @@ impl BloomFilterIndexer { #[cfg(test)] pub(crate) mod tests { - use std::iter; use api::v1::SemanticType; use datatypes::data_type::ConcreteDataType; @@ -461,15 +460,15 @@ pub(crate) mod tests { Batch::new( primary_key, - Arc::new(UInt64Vector::from_iter_values( - iter::repeat(0).take(num_rows), - )), - Arc::new(UInt64Vector::from_iter_values( - iter::repeat(0).take(num_rows), - )), - Arc::new(UInt8Vector::from_iter_values( - iter::repeat(1).take(num_rows), - )), + Arc::new(UInt64Vector::from_iter_values(std::iter::repeat_n( + 0, num_rows, + ))), + Arc::new(UInt64Vector::from_iter_values(std::iter::repeat_n( + 0, num_rows, + ))), + Arc::new(UInt8Vector::from_iter_values(std::iter::repeat_n( + 1, num_rows, + ))), vec![u64_field], ) .unwrap() diff --git a/src/mito2/src/sst/index/fulltext_index/creator.rs b/src/mito2/src/sst/index/fulltext_index/creator.rs index 1d884ac3a5..fc9aae9f42 100644 --- a/src/mito2/src/sst/index/fulltext_index/creator.rs +++ b/src/mito2/src/sst/index/fulltext_index/creator.rs @@ -489,12 +489,12 @@ mod tests { Arc::new(UInt64Vector::from_iter_values( (0..num_rows).map(|n| n as u64), )), - Arc::new(UInt64Vector::from_iter_values( - std::iter::repeat(0).take(num_rows), - )), - Arc::new(UInt8Vector::from_iter_values( - std::iter::repeat(1).take(num_rows), - )), + Arc::new(UInt64Vector::from_iter_values(std::iter::repeat_n( + 0, num_rows, + ))), + Arc::new(UInt8Vector::from_iter_values(std::iter::repeat_n( + 1, num_rows, + ))), vec![ BatchColumn { column_id: 1, diff --git a/src/mito2/src/sst/index/inverted_index/creator.rs b/src/mito2/src/sst/index/inverted_index/creator.rs index 8991b72aec..6f44979c78 100644 --- a/src/mito2/src/sst/index/inverted_index/creator.rs +++ b/src/mito2/src/sst/index/inverted_index/creator.rs @@ -326,7 +326,6 @@ impl InvertedIndexer { #[cfg(test)] mod tests { use std::collections::BTreeSet; - use std::iter; use api::v1::SemanticType; use datafusion_expr::{binary_expr, col, lit, Expr as DfExpr, Operator}; @@ -424,15 +423,15 @@ mod tests { Batch::new( primary_key, - Arc::new(UInt64Vector::from_iter_values( - iter::repeat(0).take(num_rows), - )), - Arc::new(UInt64Vector::from_iter_values( - iter::repeat(0).take(num_rows), - )), - Arc::new(UInt8Vector::from_iter_values( - iter::repeat(1).take(num_rows), - )), + Arc::new(UInt64Vector::from_iter_values(std::iter::repeat_n( + 0, num_rows, + ))), + Arc::new(UInt64Vector::from_iter_values(std::iter::repeat_n( + 0, num_rows, + ))), + Arc::new(UInt8Vector::from_iter_values(std::iter::repeat_n( + 1, num_rows, + ))), vec![u64_field], ) .unwrap() diff --git a/src/mito2/src/sst/parquet/format.rs b/src/mito2/src/sst/parquet/format.rs index c90907f0eb..005e276bbd 100644 --- a/src/mito2/src/sst/parquet/format.rs +++ b/src/mito2/src/sst/parquet/format.rs @@ -755,7 +755,7 @@ mod tests { )); let mut keys = vec![]; for (index, num_rows) in pk_row_nums.iter().map(|v| v.1).enumerate() { - keys.extend(std::iter::repeat(index as u32).take(num_rows)); + keys.extend(std::iter::repeat_n(index as u32, num_rows)); } let keys = UInt32Array::from(keys); Arc::new(DictionaryArray::new(keys, values)) diff --git a/src/operator/src/req_convert/insert/fill_impure_default.rs b/src/operator/src/req_convert/insert/fill_impure_default.rs index a60138c6e5..cf1e1565a8 100644 --- a/src/operator/src/req_convert/insert/fill_impure_default.rs +++ b/src/operator/src/req_convert/insert/fill_impure_default.rs @@ -85,11 +85,9 @@ impl ImpureDefaultFiller { .schema .iter() .filter_map(|schema| { - if self.impure_columns.contains_key(&schema.column_name) { - Some(&schema.column_name) - } else { - None - } + self.impure_columns + .contains_key(&schema.column_name) + .then_some(&schema.column_name) }) .collect(); diff --git a/src/pipeline/src/etl/processor/dissect.rs b/src/pipeline/src/etl/processor/dissect.rs index 8c31f42ace..8034d984d2 100644 --- a/src/pipeline/src/etl/processor/dissect.rs +++ b/src/pipeline/src/etl/processor/dissect.rs @@ -325,7 +325,7 @@ impl std::str::FromStr for Pattern { impl Pattern { fn check(&self) -> Result<()> { - if self.len() == 0 { + if self.is_empty() { return DissectEmptyPatternSnafu.fail(); } diff --git a/src/query/src/lib.rs b/src/query/src/lib.rs index 0aed2860e9..428aa5cb45 100644 --- a/src/query/src/lib.rs +++ b/src/query/src/lib.rs @@ -14,7 +14,6 @@ #![feature(let_chains)] #![feature(int_roundings)] -#![feature(trait_upcasting)] #![feature(try_blocks)] #![feature(stmt_expr_attributes)] #![feature(iterator_try_collect)] diff --git a/src/query/src/part_sort.rs b/src/query/src/part_sort.rs index 1c784c8b33..cd35fb66fb 100644 --- a/src/query/src/part_sort.rs +++ b/src/query/src/part_sort.rs @@ -348,7 +348,7 @@ impl PartSortStream { &self, sort_column: &ArrayRef, ) -> datafusion_common::Result> { - if sort_column.len() == 0 { + if sort_column.is_empty() { return Ok(Some(0)); } diff --git a/src/servers/src/http/timeout.rs b/src/servers/src/http/timeout.rs index 050ec492e0..adfc29cd95 100644 --- a/src/servers/src/http/timeout.rs +++ b/src/servers/src/http/timeout.rs @@ -117,7 +117,7 @@ where fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll> { match self.inner.poll_ready(cx) { Poll::Pending => Poll::Pending, - Poll::Ready(r) => Poll::Ready(r.map_err(Into::into)), + Poll::Ready(r) => Poll::Ready(r), } } diff --git a/src/servers/src/lib.rs b/src/servers/src/lib.rs index a13cd0ce1f..f55bc76e17 100644 --- a/src/servers/src/lib.rs +++ b/src/servers/src/lib.rs @@ -17,7 +17,6 @@ #![feature(exclusive_wrapper)] #![feature(let_chains)] #![feature(if_let_guard)] -#![feature(trait_upcasting)] use datafusion_expr::LogicalPlan; use datatypes::schema::Schema; diff --git a/src/sql/src/statements/transform.rs b/src/sql/src/statements/transform.rs index 2ca642cd11..7bd4218d2f 100644 --- a/src/sql/src/statements/transform.rs +++ b/src/sql/src/statements/transform.rs @@ -55,7 +55,7 @@ pub fn transform_statements(stmts: &mut Vec) -> Result<()> { } } - visit_expressions_mut(stmts, |expr| { + let _ = visit_expressions_mut(stmts, |expr| { for rule in RULES.iter() { rule.visit_expr(expr)?; } diff --git a/src/store-api/src/metadata.rs b/src/store-api/src/metadata.rs index 426e3f69ca..e8372a8df2 100644 --- a/src/store-api/src/metadata.rs +++ b/src/store-api/src/metadata.rs @@ -290,7 +290,7 @@ impl RegionMetadata { pub fn project(&self, projection: &[ColumnId]) -> Result { // check time index ensure!( - projection.iter().any(|id| *id == self.time_index), + projection.contains(&self.time_index), TimeIndexNotFoundSnafu ); diff --git a/src/table/src/table/adapter.rs b/src/table/src/table/adapter.rs index 2cf9a9647f..4ba880b1eb 100644 --- a/src/table/src/table/adapter.rs +++ b/src/table/src/table/adapter.rs @@ -95,7 +95,7 @@ impl TableProvider for DfTableProviderAdapter { filters: &[Expr], limit: Option, ) -> DfResult> { - let filters: Vec = filters.iter().map(Clone::clone).map(Into::into).collect(); + let filters: Vec = filters.iter().map(Clone::clone).collect(); let request = { let mut request = self.scan_req.lock().unwrap(); request.filters = filters; diff --git a/tests-fuzz/src/utils.rs b/tests-fuzz/src/utils.rs index f52d75f4da..ec7f1d8b27 100644 --- a/tests-fuzz/src/utils.rs +++ b/tests-fuzz/src/utils.rs @@ -85,11 +85,7 @@ pub struct UnstableTestVariables { pub fn load_unstable_test_env_variables() -> UnstableTestVariables { let _ = dotenv::dotenv(); let binary_path = env::var(GT_FUZZ_BINARY_PATH).expect("GT_FUZZ_BINARY_PATH not found"); - let root_dir = if let Ok(root) = env::var(GT_FUZZ_INSTANCE_ROOT_DIR) { - Some(root) - } else { - None - }; + let root_dir = env::var(GT_FUZZ_INSTANCE_ROOT_DIR).ok(); UnstableTestVariables { binary_path, diff --git a/tests-fuzz/targets/unstable/fuzz_create_table_standalone.rs b/tests-fuzz/targets/unstable/fuzz_create_table_standalone.rs index 575659ab8e..53369e9792 100644 --- a/tests-fuzz/targets/unstable/fuzz_create_table_standalone.rs +++ b/tests-fuzz/targets/unstable/fuzz_create_table_standalone.rs @@ -157,7 +157,7 @@ async fn execute_unstable_create_table( } Err(err) => { // FIXME(weny): support to retry it later. - if matches!(err, sqlx::Error::PoolTimedOut { .. }) { + if matches!(err, sqlx::Error::PoolTimedOut) { warn!("ignore pool timeout, sql: {sql}"); continue; } diff --git a/tests-integration/src/cluster.rs b/tests-integration/src/cluster.rs index 836c3a5483..0b18a71d3a 100644 --- a/tests-integration/src/cluster.rs +++ b/tests-integration/src/cluster.rs @@ -489,10 +489,7 @@ async fn create_datanode_client(datanode: &Datanode) -> (String, Client) { if let Some(client) = client { Ok(TokioIo::new(client)) } else { - Err(std::io::Error::new( - std::io::ErrorKind::Other, - "Client already taken", - )) + Err(std::io::Error::other("Client already taken")) } } }), diff --git a/tests/cases/standalone/common/system/pg_catalog.result b/tests/cases/standalone/common/system/pg_catalog.result index 092e9cab06..9e154b115c 100644 --- a/tests/cases/standalone/common/system/pg_catalog.result +++ b/tests/cases/standalone/common/system/pg_catalog.result @@ -3,7 +3,7 @@ create database pg_catalog; Error: 1004(InvalidArguments), Schema pg_catalog already exists --- session_user because session_user is based on the current user so is not null is for test +-- session_user because session_user is based on the current user so is not null is for test -- SQLNESS PROTOCOL POSTGRES SELECT session_user is not null; @@ -107,12 +107,13 @@ select * from pg_catalog.pg_type order by oid; +-----+-----------+--------+ -- SQLNESS PROTOCOL POSTGRES +-- SQLNESS REPLACE (\d+\s*) OID select * from pg_catalog.pg_database where datname = 'public'; +------------+---------+ | oid | datname | +------------+---------+ -| 3927743705 | public | +| OID| public | +------------+---------+ -- \d @@ -159,15 +160,16 @@ ORDER BY 1,2; -- make sure oid of namespace keep stable -- SQLNESS PROTOCOL POSTGRES -SELECT * FROM pg_namespace ORDER BY oid; +-- SQLNESS REPLACE (\d+\s*) OID +SELECT * FROM pg_namespace ORDER BY nspname; +------------+--------------------+ | oid | nspname | +------------+--------------------+ -| 667359454 | pg_catalog | -| 3174397350 | information_schema | -| 3338153620 | greptime_private | -| 3927743705 | public | +| OID| greptime_private | +| OID| information_schema | +| OID| pg_catalog | +| OID| public | +------------+--------------------+ -- SQLNESS PROTOCOL POSTGRES @@ -260,6 +262,7 @@ where relnamespace in ( +---------+ -- SQLNESS PROTOCOL POSTGRES +-- SQLNESS REPLACE (\d+\s*) OID select relnamespace, relname, relkind from pg_catalog.pg_class where relnamespace in ( @@ -274,7 +277,7 @@ order by relnamespace, relname; +--------------+---------+---------+ | relnamespace | relname | relkind | +--------------+---------+---------+ -| 434869349 | foo | r | +| OID| foo | r | +--------------+---------+---------+ -- SQLNESS PROTOCOL POSTGRES diff --git a/tests/cases/standalone/common/system/pg_catalog.sql b/tests/cases/standalone/common/system/pg_catalog.sql index 4a110a8f07..0b79c62afe 100644 --- a/tests/cases/standalone/common/system/pg_catalog.sql +++ b/tests/cases/standalone/common/system/pg_catalog.sql @@ -1,7 +1,7 @@ -- should not able to create pg_catalog create database pg_catalog; --- session_user because session_user is based on the current user so is not null is for test +-- session_user because session_user is based on the current user so is not null is for test -- SQLNESS PROTOCOL POSTGRES SELECT session_user is not null; @@ -34,6 +34,7 @@ select * from pg_catalog.pg_database; select * from pg_catalog.pg_type order by oid; -- SQLNESS PROTOCOL POSTGRES +-- SQLNESS REPLACE (\d+\s*) OID select * from pg_catalog.pg_database where datname = 'public'; -- \d @@ -68,7 +69,8 @@ ORDER BY 1,2; -- make sure oid of namespace keep stable -- SQLNESS PROTOCOL POSTGRES -SELECT * FROM pg_namespace ORDER BY oid; +-- SQLNESS REPLACE (\d+\s*) OID +SELECT * FROM pg_namespace ORDER BY nspname; -- SQLNESS PROTOCOL POSTGRES create database my_db; @@ -128,6 +130,7 @@ where relnamespace in ( ); -- SQLNESS PROTOCOL POSTGRES +-- SQLNESS REPLACE (\d+\s*) OID select relnamespace, relname, relkind from pg_catalog.pg_class where relnamespace in (