diff --git a/src/common/base/src/lib.rs b/src/common/base/src/lib.rs index 790a43c49dd0d..b66ab4a8eecde 100644 --- a/src/common/base/src/lib.rs +++ b/src/common/base/src/lib.rs @@ -35,7 +35,6 @@ pub mod http_client; pub mod mem_allocator; pub mod rangemap; pub mod runtime; -pub mod slice_ext; pub mod vec_ext; pub mod version; diff --git a/src/common/base/src/slice_ext.rs b/src/common/base/src/slice_ext.rs deleted file mode 100644 index a2ff8e30cea22..0000000000000 --- a/src/common/base/src/slice_ext.rs +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2021 Datafuse Labs -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -use std::slice::SliceIndex; - -pub trait GetSaferUnchecked { - /// # Safety - /// - /// Calling this method with an out-of-bounds index is *[undefined behavior]* - /// even if the resulting reference is not used. - unsafe fn get_unchecked_release(&self, index: I) -> &>::Output - where I: SliceIndex<[T]>; - - /// # Safety - /// - /// Calling this method with an out-of-bounds index is *[undefined behavior]* - /// even if the resulting reference is not used. - unsafe fn get_unchecked_release_mut( - &mut self, - index: I, - ) -> &mut >::Output - where - I: SliceIndex<[T]>; -} - -impl GetSaferUnchecked for [T] { - #[inline(always)] - unsafe fn get_unchecked_release(&self, index: I) -> &>::Output - where I: SliceIndex<[T]> { - if cfg!(debug_assertions) { - &self[index] - } else { - unsafe { self.get_unchecked(index) } - } - } - - #[inline(always)] - unsafe fn get_unchecked_release_mut( - &mut self, - index: I, - ) -> &mut >::Output - where - I: SliceIndex<[T]>, - { - if cfg!(debug_assertions) { - &mut self[index] - } else { - unsafe { self.get_unchecked_mut(index) } - } - } -} diff --git a/src/query/expression/src/kernels/take.rs b/src/query/expression/src/kernels/take.rs index f4957a1c19f3e..e142be5b4140a 100644 --- a/src/query/expression/src/kernels/take.rs +++ b/src/query/expression/src/kernels/take.rs @@ -19,7 +19,6 @@ use databend_common_arrow::arrow::array::Array; use databend_common_arrow::arrow::array::Utf8ViewArray; use databend_common_arrow::arrow::bitmap::Bitmap; use databend_common_arrow::arrow::buffer::Buffer; -use databend_common_base::slice_ext::GetSaferUnchecked; use databend_common_exception::Result; use string::StringColumnBuilder; @@ -258,7 +257,7 @@ where I: databend_common_arrow::arrow::types::Index let result: Vec = self .indices .iter() - .map(|index| unsafe { *col.get_unchecked_release(index.to_usize()) }) + .map(|index| unsafe { *col.get_unchecked(index.to_usize()) }) .collect(); result.into() } diff --git a/src/query/expression/src/types/string.rs b/src/query/expression/src/types/string.rs index bc06218b358fa..185e2a991fbcd 100644 --- a/src/query/expression/src/types/string.rs +++ b/src/query/expression/src/types/string.rs @@ -18,7 +18,6 @@ use std::ops::Range; use databend_common_arrow::arrow::array::MutableBinaryViewArray; use databend_common_arrow::arrow::array::Utf8ViewArray; use databend_common_arrow::arrow::trusted_len::TrustedLen; -use databend_common_base::slice_ext::GetSaferUnchecked; use databend_common_exception::ErrorCode; use databend_common_exception::Result; @@ -293,8 +292,8 @@ impl StringColumn { } pub fn compare(col_i: &Self, i: usize, col_j: &Self, j: usize) -> Ordering { - let view_i = unsafe { col_i.data.views().as_slice().get_unchecked_release(i) }; - let view_j = unsafe { col_j.data.views().as_slice().get_unchecked_release(j) }; + let view_i = unsafe { col_i.data.views().as_slice().get_unchecked(i) }; + let view_j = unsafe { col_j.data.views().as_slice().get_unchecked(j) }; if view_i.prefix == view_j.prefix { unsafe { @@ -311,7 +310,7 @@ impl StringColumn { } pub fn compare_str(col: &Self, i: usize, value: &str) -> Ordering { - let view = unsafe { col.data.views().as_slice().get_unchecked_release(i) }; + let view = unsafe { col.data.views().as_slice().get_unchecked(i) }; let prefix = load_prefix(value.as_bytes()); if view.prefix == prefix {