From 0831020ee9884d069ddc4714e62dcb6e65b87d0c Mon Sep 17 00:00:00 2001 From: Ivan Smirnov Date: Sat, 24 Dec 2022 14:19:44 +0200 Subject: [PATCH 1/2] Update multiple deps --- Cargo.toml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 6c7e50389e6..15d110044df 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,7 +16,7 @@ bench = false [dependencies] foreign_vec = "0.1.0" -either = "1.6" +either = "1.8" num-traits = "0.2" dyn-clone = "1" bytemuck = { version = "1", features = ["derive"] } @@ -29,13 +29,13 @@ ethnum = "1" # crate provides HashMap that assumes pre-hashed values. hash_hasher = "^2.0.3" # For SIMD utf8 validation -simdutf8 = "0.1.3" +simdutf8 = "0.1" # A Rust port of SwissTable -hashbrown = { version = "0.12", default-features = false, optional = true } +hashbrown = { version = "0.13", default-features = false, optional = true } # for timezone support -chrono-tz = { version = "0.6", optional = true } +chrono-tz = { version = "0.8", optional = true } # To efficiently cast numbers to strings lexical-core = { version = "0.8", optional = true } @@ -44,38 +44,38 @@ csv = { version = "^1.1", optional = true } csv-core = { version = "0.1", optional = true } # for csv async io -csv-async = { version = "^1.1", optional = true } +csv-async = { version = "^1.2", optional = true } -regex = { version = "^1.3", optional = true } +regex = { version = "^1.7", optional = true } regex-syntax = { version = "^0.6", optional = true } streaming-iterator = { version = "0.1", optional = true } fallible-streaming-iterator = { version = "0.1", optional = true } json-deserializer = { version = "0.4.4", optional = true, features = ["preserve_order"] } -indexmap = { version = "^1.6", optional = true } +indexmap = { version = "^1.9", optional = true } # used to print columns in a nice columnar format -comfy-table = { version = "5.0", optional = true, default-features = false } +comfy-table = { version = "6.1.0", optional = true, default-features = false } arrow-format = { version = "0.8", optional = true, features = ["ipc"] } hex = { version = "^0.4", optional = true } # for IPC compression -lz4 = { version = "1.23.1", optional = true } -zstd = { version = "0.11", optional = true } +lz4 = { version = "1.24", optional = true } +zstd = { version = "0.12", optional = true } rand = { version = "0.8", optional = true } itertools = { version = "^0.10", optional = true } -base64 = { version = "0.13.0", optional = true } +base64 = { version = "0.20", optional = true } # to write to parquet as a stream futures = { version = "0.3", optional = true } # to read IPC as a stream -async-stream = { version = "0.3.2", optional = true } +async-stream = { version = "0.3", optional = true } # avro support avro-schema = { version = "0.3", optional = true } @@ -113,13 +113,13 @@ default_features = false features = ["async"] [dev-dependencies] -criterion = "0.3" +criterion = "0.4" flate2 = "1" doc-comment = "0.3" -crossbeam-channel = "0.5.1" +crossbeam-channel = "0.5" # used to test async readers tokio = { version = "1", features = ["macros", "rt", "fs", "io-util"] } -tokio-util = { version = "0.6", features = ["compat"] } +tokio-util = { version = "0.7", features = ["compat"] } # used to run formal property testing proptest = { version = "1", default_features = false, features = ["std"] } avro-rs = { version = "0.13", features = ["snappy"] } From 7bcecb23313a0b082a1946a53bc80d44358eeff0 Mon Sep 17 00:00:00 2001 From: Ivan Smirnov Date: Sat, 24 Dec 2022 14:29:31 +0200 Subject: [PATCH 2/2] Bump multiversion to 0.7 --- Cargo.toml | 2 +- src/compute/aggregate/sum.rs | 6 ++---- src/compute/hash.rs | 9 +++------ 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 15d110044df..0893ced61b7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -92,7 +92,7 @@ serde_json = { version = "^1.0", features = ["preserve_order"], optional = true strength_reduce = { version = "0.2", optional = true } # For instruction multiversioning -multiversion = { version = "0.6.1", optional = true } +multiversion = { version = "0.7", optional = true } # For support for odbc odbc-api = { version = "0.36", optional = true } diff --git a/src/compute/aggregate/sum.rs b/src/compute/aggregate/sum.rs index 85336ddc292..63e866994cf 100644 --- a/src/compute/aggregate/sum.rs +++ b/src/compute/aggregate/sum.rs @@ -20,8 +20,7 @@ pub trait Sum { fn simd_sum(self) -> T; } -#[multiversion] -#[clone(target = "x86_64+avx")] +#[multiversion(targets("x86_64+avx"))] fn nonnull_sum(values: &[T]) -> T where T: NativeType + Simd + Add + std::iter::Sum, @@ -39,8 +38,7 @@ where /// # Panics /// iff `values.len() != bitmap.len()` or the operation overflows. -#[multiversion] -#[clone(target = "x86_64+avx")] +#[multiversion(targets("x86_64+avx"))] fn null_sum_impl(values: &[T], mut validity_masks: I) -> T where T: NativeType + Simd, diff --git a/src/compute/hash.rs b/src/compute/hash.rs index d5f8370d8b4..bce4460524f 100644 --- a/src/compute/hash.rs +++ b/src/compute/hash.rs @@ -21,8 +21,7 @@ use crate::{ use super::arity::unary; -#[multiversion] -#[clone(target = "x86_64+aes+sse3+ssse3+avx+avx2")] +#[multiversion(targets("x86_64+aes+sse3+ssse3+avx+avx2"))] /// Element-wise hash of a [`PrimitiveArray`]. Validity is preserved. pub fn hash_primitive(array: &PrimitiveArray) -> PrimitiveArray { let state = new_state!(); @@ -30,8 +29,7 @@ pub fn hash_primitive(array: &PrimitiveArray) -> Primit unary(array, |x| state.hash_one(x), DataType::UInt64) } -#[multiversion] -#[clone(target = "x86_64+aes+sse3+ssse3+avx+avx2")] +#[multiversion(targets("x86_64+aes+sse3+ssse3+avx+avx2"))] /// Element-wise hash of a [`BooleanArray`]. Validity is preserved. pub fn hash_boolean(array: &BooleanArray) -> PrimitiveArray { let state = new_state!(); @@ -45,8 +43,7 @@ pub fn hash_boolean(array: &BooleanArray) -> PrimitiveArray { PrimitiveArray::::new(DataType::UInt64, values, array.validity().cloned()) } -#[multiversion] -#[clone(target = "x86_64+aes+sse3+ssse3+avx+avx2")] +#[multiversion(targets("x86_64+aes+sse3+ssse3+avx+avx2"))] /// Element-wise hash of a [`Utf8Array`]. Validity is preserved. pub fn hash_utf8(array: &Utf8Array) -> PrimitiveArray { let state = new_state!();