This is an automated email from the ASF dual-hosted git repository.
etseidl pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-rs.git
The following commit(s) were added to refs/heads/main by this push:
new 1ae246942d chore: Remove some deprecated Arrow functions from the
public API (#10040)
1ae246942d is described below
commit 1ae246942d09888633338bc623dcc53b07ba9d75
Author: Ed Seidl <[email protected]>
AuthorDate: Tue Jun 2 11:12:12 2026 -0700
chore: Remove some deprecated Arrow functions from the public API (#10040)
# Which issue does this PR close?
None
- related to #9110
# Rationale for this change
Housecleaning for 59.0.0
# What changes are included in this PR?
Remove some deprecated functions from public Arrow APIs.
# Are these changes tested?
Covered by existing tests
# Are there any user-facing changes?
Yes, deprecated public functions are removed
---------
Co-authored-by: Andrew Lamb <[email protected]>
---
arrow-array/src/temporal_conversions.rs | 14 ----
arrow-array/src/types.rs | 127 --------------------------------
arrow-buffer/src/buffer/immutable.rs | 11 ---
arrow-data/src/data.rs | 6 --
arrow-data/src/decimal.rs | 100 -------------------------
arrow-ipc/src/reader.rs | 4 +-
arrow-ipc/src/reader/stream.rs | 2 +-
arrow-schema/src/fields.rs | 53 +------------
8 files changed, 5 insertions(+), 312 deletions(-)
diff --git a/arrow-array/src/temporal_conversions.rs
b/arrow-array/src/temporal_conversions.rs
index a5ec50da1f..375c19bc87 100644
--- a/arrow-array/src/temporal_conversions.rs
+++ b/arrow-array/src/temporal_conversions.rs
@@ -215,26 +215,12 @@ pub(crate) fn split_second(v: i64, base: i64) -> (i64,
u32) {
(v.div_euclid(base), v.rem_euclid(base) as u32)
}
-/// converts a `i64` representing a `duration(s)` to [`Duration`]
-#[inline]
-#[deprecated(since = "55.2.0", note = "Use `try_duration_s_to_duration`
instead")]
-pub fn duration_s_to_duration(v: i64) -> Duration {
- Duration::try_seconds(v).unwrap()
-}
-
/// converts a `i64` representing a `duration(s)` to [`Option<Duration>`]
#[inline]
pub fn try_duration_s_to_duration(v: i64) -> Option<Duration> {
Duration::try_seconds(v)
}
-/// converts a `i64` representing a `duration(ms)` to [`Duration`]
-#[inline]
-#[deprecated(since = "55.2.0", note = "Use `try_duration_ms_to_duration`
instead")]
-pub fn duration_ms_to_duration(v: i64) -> Duration {
- Duration::try_seconds(v).unwrap()
-}
-
/// converts a `i64` representing a `duration(ms)` to [`Option<Duration>`]
#[inline]
pub fn try_duration_ms_to_duration(v: i64) -> Option<Duration> {
diff --git a/arrow-array/src/types.rs b/arrow-array/src/types.rs
index 267011d8af..a8de9267b3 100644
--- a/arrow-array/src/types.rs
+++ b/arrow-array/src/types.rs
@@ -1205,17 +1205,6 @@ impl Date32Type {
}
impl Date64Type {
- /// Converts an arrow Date64Type into a chrono::NaiveDate
- ///
- /// # Arguments
- ///
- /// * `i` - The Date64Type to convert
- #[deprecated(since = "56.0.0", note = "Use to_naive_date_opt instead.")]
- pub fn to_naive_date(i: <Date64Type as ArrowPrimitiveType>::Native) ->
NaiveDate {
- Self::to_naive_date_opt(i)
- .unwrap_or_else(|| panic!("Date64Type::to_naive_date overflowed
for date: {i}",))
- }
-
/// Converts an arrow Date64Type into a chrono::NaiveDateTime if it fits
in the range that chrono::NaiveDateTime can represent.
/// Returns `None` if the calculation would overflow or underflow.
///
@@ -1241,25 +1230,6 @@ impl Date64Type {
d.sub(epoch).num_milliseconds() as <Date64Type as
ArrowPrimitiveType>::Native
}
- /// Adds the given IntervalYearMonthType to an arrow Date64Type
- ///
- /// # Arguments
- ///
- /// * `date` - The date on which to perform the operation
- /// * `delta` - The interval to add
- #[deprecated(
- since = "56.0.0",
- note = "Use `add_year_months_opt` instead, which returns an Option to
handle overflow."
- )]
- pub fn add_year_months(
- date: <Date64Type as ArrowPrimitiveType>::Native,
- delta: <IntervalYearMonthType as ArrowPrimitiveType>::Native,
- ) -> <Date64Type as ArrowPrimitiveType>::Native {
- Self::add_year_months_opt(date, delta).unwrap_or_else(|| {
- panic!("Date64Type::add_year_months overflowed for date: {date},
delta: {delta}",)
- })
- }
-
/// Adds the given IntervalYearMonthType to an arrow Date64Type
///
/// # Arguments
@@ -1278,25 +1248,6 @@ impl Date64Type {
Some(Date64Type::from_naive_date(posterior))
}
- /// Adds the given IntervalDayTimeType to an arrow Date64Type
- ///
- /// # Arguments
- ///
- /// * `date` - The date on which to perform the operation
- /// * `delta` - The interval to add
- #[deprecated(
- since = "56.0.0",
- note = "Use `add_day_time_opt` instead, which returns an Option to
handle overflow."
- )]
- pub fn add_day_time(
- date: <Date64Type as ArrowPrimitiveType>::Native,
- delta: <IntervalDayTimeType as ArrowPrimitiveType>::Native,
- ) -> <Date64Type as ArrowPrimitiveType>::Native {
- Self::add_day_time_opt(date, delta).unwrap_or_else(|| {
- panic!("Date64Type::add_day_time overflowed for date: {date},
delta: {delta:?}",)
- })
- }
-
/// Adds the given IntervalDayTimeType to an arrow Date64Type
///
/// # Arguments
@@ -1316,25 +1267,6 @@ impl Date64Type {
Some(Date64Type::from_naive_date(res))
}
- /// Adds the given IntervalMonthDayNanoType to an arrow Date64Type
- ///
- /// # Arguments
- ///
- /// * `date` - The date on which to perform the operation
- /// * `delta` - The interval to add
- #[deprecated(
- since = "56.0.0",
- note = "Use `add_month_day_nano_opt` instead, which returns an Option
to handle overflow."
- )]
- pub fn add_month_day_nano(
- date: <Date64Type as ArrowPrimitiveType>::Native,
- delta: <IntervalMonthDayNanoType as ArrowPrimitiveType>::Native,
- ) -> <Date64Type as ArrowPrimitiveType>::Native {
- Self::add_month_day_nano_opt(date, delta).unwrap_or_else(|| {
- panic!("Date64Type::add_month_day_nano overflowed for date:
{date}, delta: {delta:?}",)
- })
- }
-
/// Adds the given IntervalMonthDayNanoType to an arrow Date64Type
///
/// # Arguments
@@ -1355,25 +1287,6 @@ impl Date64Type {
Some(Date64Type::from_naive_date(res))
}
- /// Subtract the given IntervalYearMonthType to an arrow Date64Type
- ///
- /// # Arguments
- ///
- /// * `date` - The date on which to perform the operation
- /// * `delta` - The interval to subtract
- #[deprecated(
- since = "56.0.0",
- note = "Use `subtract_year_months_opt` instead, which returns an
Option to handle overflow."
- )]
- pub fn subtract_year_months(
- date: <Date64Type as ArrowPrimitiveType>::Native,
- delta: <IntervalYearMonthType as ArrowPrimitiveType>::Native,
- ) -> <Date64Type as ArrowPrimitiveType>::Native {
- Self::subtract_year_months_opt(date, delta).unwrap_or_else(|| {
- panic!("Date64Type::subtract_year_months overflowed for date:
{date}, delta: {delta}",)
- })
- }
-
/// Subtract the given IntervalYearMonthType to an arrow Date64Type
///
/// # Arguments
@@ -1392,25 +1305,6 @@ impl Date64Type {
Some(Date64Type::from_naive_date(posterior))
}
- /// Subtract the given IntervalDayTimeType to an arrow Date64Type
- ///
- /// # Arguments
- ///
- /// * `date` - The date on which to perform the operation
- /// * `delta` - The interval to subtract
- #[deprecated(
- since = "56.0.0",
- note = "Use `subtract_day_time_opt` instead, which returns an Option
to handle overflow."
- )]
- pub fn subtract_day_time(
- date: <Date64Type as ArrowPrimitiveType>::Native,
- delta: <IntervalDayTimeType as ArrowPrimitiveType>::Native,
- ) -> <Date64Type as ArrowPrimitiveType>::Native {
- Self::subtract_day_time_opt(date, delta).unwrap_or_else(|| {
- panic!("Date64Type::subtract_day_time overflowed for date: {date},
delta: {delta:?}",)
- })
- }
-
/// Subtract the given IntervalDayTimeType to an arrow Date64Type
///
/// # Arguments
@@ -1430,27 +1324,6 @@ impl Date64Type {
Some(Date64Type::from_naive_date(res))
}
- /// Subtract the given IntervalMonthDayNanoType to an arrow Date64Type
- ///
- /// # Arguments
- ///
- /// * `date` - The date on which to perform the operation
- /// * `delta` - The interval to subtract
- #[deprecated(
- since = "56.0.0",
- note = "Use `subtract_month_day_nano_opt` instead, which returns an
Option to handle overflow."
- )]
- pub fn subtract_month_day_nano(
- date: <Date64Type as ArrowPrimitiveType>::Native,
- delta: <IntervalMonthDayNanoType as ArrowPrimitiveType>::Native,
- ) -> <Date64Type as ArrowPrimitiveType>::Native {
- Self::subtract_month_day_nano_opt(date, delta).unwrap_or_else(|| {
- panic!(
- "Date64Type::subtract_month_day_nano overflowed for date:
{date}, delta: {delta:?}",
- )
- })
- }
-
/// Subtract the given IntervalMonthDayNanoType to an arrow Date64Type
///
/// # Arguments
diff --git a/arrow-buffer/src/buffer/immutable.rs
b/arrow-buffer/src/buffer/immutable.rs
index a73cc55086..fc001afe5a 100644
--- a/arrow-buffer/src/buffer/immutable.rs
+++ b/arrow-buffer/src/buffer/immutable.rs
@@ -103,17 +103,6 @@ unsafe impl Send for Buffer where Bytes: Send {}
unsafe impl Sync for Buffer where Bytes: Sync {}
impl Buffer {
- /// Create a new Buffer from a (internal) `Bytes`
- ///
- /// NOTE despite the same name, `Bytes` is an internal struct in arrow-rs
- /// and is different than [`bytes::Bytes`].
- ///
- /// See examples on [`Buffer`] for ways to create a buffer from a
[`bytes::Bytes`].
- #[deprecated(since = "54.1.0", note = "Use Buffer::from instead")]
- pub fn from_bytes(bytes: Bytes) -> Self {
- Self::from(bytes)
- }
-
/// Returns the offset, in bytes, of `Self::ptr` to `Self::data`
///
/// self.ptr and self.data can be different after slicing or advancing the
buffer.
diff --git a/arrow-data/src/data.rs b/arrow-data/src/data.rs
index 7b208b7af0..0ce98aa090 100644
--- a/arrow-data/src/data.rs
+++ b/arrow-data/src/data.rs
@@ -2210,12 +2210,6 @@ impl ArrayDataBuilder {
Ok(data)
}
- /// Creates an array data, validating all inputs, and aligning any buffers
- #[deprecated(since = "54.1.0", note = "Use ArrayData::align_buffers
instead")]
- pub fn build_aligned(self) -> Result<ArrayData, ArrowError> {
- self.align_buffers(true).build()
- }
-
/// Ensure that all buffers are aligned, copying data if necessary
///
/// Rust requires that arrays are aligned to their corresponding primitive,
diff --git a/arrow-data/src/decimal.rs b/arrow-data/src/decimal.rs
index 2c997753bd..a5986755ad 100644
--- a/arrow-data/src/decimal.rs
+++ b/arrow-data/src/decimal.rs
@@ -688,106 +688,6 @@ pub const MIN_DECIMAL256_FOR_EACH_PRECISION: [i256; 77] =
[
]),
];
-/// `MAX_DECIMAL_FOR_EACH_PRECISION[p-1]` holds the maximum `i128` value that
can
-/// be stored in a [`Decimal128`] value of precision `p`
-///
-/// [`Decimal128`]: arrow_schema::DataType::Decimal128
-#[deprecated(
- since = "54.1.0",
- note = "Use MAX_DECIMAL128_FOR_EACH_PRECISION (note indexes are different)"
-)]
-#[allow(dead_code)] // no longer used but is part of our public API
-pub const MAX_DECIMAL_FOR_EACH_PRECISION: [i128; 38] = [
- 9,
- 99,
- 999,
- 9999,
- 99999,
- 999999,
- 9999999,
- 99999999,
- 999999999,
- 9999999999,
- 99999999999,
- 999999999999,
- 9999999999999,
- 99999999999999,
- 999999999999999,
- 9999999999999999,
- 99999999999999999,
- 999999999999999999,
- 9999999999999999999,
- 99999999999999999999,
- 999999999999999999999,
- 9999999999999999999999,
- 99999999999999999999999,
- 999999999999999999999999,
- 9999999999999999999999999,
- 99999999999999999999999999,
- 999999999999999999999999999,
- 9999999999999999999999999999,
- 99999999999999999999999999999,
- 999999999999999999999999999999,
- 9999999999999999999999999999999,
- 99999999999999999999999999999999,
- 999999999999999999999999999999999,
- 9999999999999999999999999999999999,
- 99999999999999999999999999999999999,
- 999999999999999999999999999999999999,
- 9999999999999999999999999999999999999,
- 99999999999999999999999999999999999999,
-];
-
-/// `MIN_DECIMAL_FOR_EACH_PRECISION[p-1]` holds the minimum `i128` value that
can
-/// be stored in a [`Decimal128`] value of precision `p`
-///
-/// [`Decimal128`]: arrow_schema::DataType::Decimal128
-#[allow(dead_code)] // no longer used but is part of our public API
-#[deprecated(
- since = "54.1.0",
- note = "Use MIN_DECIMAL128_FOR_EACH_PRECISION (note indexes are different)"
-)]
-pub const MIN_DECIMAL_FOR_EACH_PRECISION: [i128; 38] = [
- -9,
- -99,
- -999,
- -9999,
- -99999,
- -999999,
- -9999999,
- -99999999,
- -999999999,
- -9999999999,
- -99999999999,
- -999999999999,
- -9999999999999,
- -99999999999999,
- -999999999999999,
- -9999999999999999,
- -99999999999999999,
- -999999999999999999,
- -9999999999999999999,
- -99999999999999999999,
- -999999999999999999999,
- -9999999999999999999999,
- -99999999999999999999999,
- -999999999999999999999999,
- -9999999999999999999999999,
- -99999999999999999999999999,
- -999999999999999999999999999,
- -9999999999999999999999999999,
- -99999999999999999999999999999,
- -999999999999999999999999999999,
- -9999999999999999999999999999999,
- -99999999999999999999999999999999,
- -999999999999999999999999999999999,
- -9999999999999999999999999999999999,
- -99999999999999999999999999999999999,
- -999999999999999999999999999999999999,
- -9999999999999999999999999999999999999,
- -99999999999999999999999999999999999999,
-];
-
/// `MAX_DECIMAL128_FOR_EACH_PRECISION[p]` holds the maximum `i128` value that
can
/// be stored in [`Decimal128`] value of precision `p`.
///
diff --git a/arrow-ipc/src/reader.rs b/arrow-ipc/src/reader.rs
index 1d5e06c687..6d1466febf 100644
--- a/arrow-ipc/src/reader.rs
+++ b/arrow-ipc/src/reader.rs
@@ -754,7 +754,7 @@ impl<'a> RecordBatchDecoder<'a> {
/// If `require_alignment` is false, this function will automatically allocate
a new aligned buffer
/// and copy over the data if any array data in the input `buf` is not
properly aligned.
/// (Properly aligned array data will remain zero-copy.)
-/// Under the hood it will use [`arrow_data::ArrayDataBuilder::build_aligned`]
to construct [`arrow_data::ArrayData`].
+/// Under the hood it will use [`arrow_data::ArrayDataBuilder::align_buffers`]
to construct [`arrow_data::ArrayData`].
pub fn read_record_batch(
buf: &Buffer,
batch: crate::RecordBatch,
@@ -1046,7 +1046,7 @@ impl FileDecoder {
/// If `require_alignment` is false (the default), this decoder will
automatically allocate a
/// new aligned buffer and copy over the data if any array data in the
input `buf` is not
/// properly aligned. (Properly aligned array data will remain zero-copy.)
- /// Under the hood it will use
[`arrow_data::ArrayDataBuilder::build_aligned`] to construct
+ /// Under the hood it will use
[`arrow_data::ArrayDataBuilder::align_buffers`] to construct
/// [`arrow_data::ArrayData`].
pub fn with_require_alignment(mut self, require_alignment: bool) -> Self {
self.require_alignment = require_alignment;
diff --git a/arrow-ipc/src/reader/stream.rs b/arrow-ipc/src/reader/stream.rs
index bfecf7b6ff..e18d32cea2 100644
--- a/arrow-ipc/src/reader/stream.rs
+++ b/arrow-ipc/src/reader/stream.rs
@@ -101,7 +101,7 @@ impl StreamDecoder {
/// If `require_alignment` is false (the default), this decoder will
automatically allocate a
/// new aligned buffer and copy over the data if any array data in the
input `buf` is not
/// properly aligned. (Properly aligned array data will remain zero-copy.)
- /// Under the hood it will use
[`arrow_data::ArrayDataBuilder::build_aligned`] to construct
+ /// Under the hood it will use
[`arrow_data::ArrayDataBuilder::align_buffers`] to construct
/// [`arrow_data::ArrayData`].
pub fn with_require_alignment(mut self, require_alignment: bool) -> Self {
self.require_alignment = require_alignment;
diff --git a/arrow-schema/src/fields.rs b/arrow-schema/src/fields.rs
index 93638181d9..3d19cb963f 100644
--- a/arrow-schema/src/fields.rs
+++ b/arrow-schema/src/fields.rs
@@ -534,55 +534,6 @@ impl UnionFields {
Ok(Self(out.into()))
}
- /// Create a new [`UnionFields`] from a [`Fields`] and array of type_ids
- ///
- /// See <https://arrow.apache.org/docs/format/Columnar.html#union-layout>
- ///
- /// # Deprecated
- ///
- /// Use [`UnionFields::try_new`] instead. This method panics on invalid
input,
- /// while `try_new` returns a `Result`.
- ///
- /// # Panics
- ///
- /// Panics if any type_id appears more than once (duplicate type ids).
- ///
- /// ```
- /// use arrow_schema::{DataType, Field, UnionFields};
- /// // Create a new UnionFields with type id mapping
- /// // 1 -> DataType::UInt8
- /// // 3 -> DataType::Utf8
- /// UnionFields::try_new(
- /// vec![1, 3],
- /// vec![
- /// Field::new("field1", DataType::UInt8, false),
- /// Field::new("field3", DataType::Utf8, false),
- /// ],
- /// );
- /// ```
- #[deprecated(since = "57.0.0", note = "Use `try_new` instead")]
- pub fn new<F, T>(type_ids: T, fields: F) -> Self
- where
- F: IntoIterator,
- F::Item: Into<FieldRef>,
- T: IntoIterator<Item = i8>,
- {
- let fields = fields.into_iter().map(Into::into);
- let mut set = 0_u128;
- type_ids
- .into_iter()
- .inspect(|&idx| {
- let mask = 1_u128 << idx;
- if (set & mask) != 0 {
- panic!("duplicate type id: {idx}");
- } else {
- set |= mask;
- }
- })
- .zip(fields)
- .collect()
- }
-
/// Return size of this instance in bytes.
pub fn size(&self) -> usize {
self.iter()
@@ -614,13 +565,13 @@ impl UnionFields {
/// ```
/// use arrow_schema::{DataType, Field, UnionFields};
///
- /// let fields = UnionFields::new(
+ /// let fields = UnionFields::try_new(
/// vec![1, 3],
/// vec![
/// Field::new("field1", DataType::UInt8, false),
/// Field::new("field3", DataType::Utf8, false),
/// ],
- /// );
+ /// ).unwrap();
///
/// assert!(fields.get(0).is_some());
/// assert!(fields.get(1).is_some());