You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by tu...@apache.org on 2023/09/23 16:21:46 UTC
[arrow-rs] branch master updated: fix: make_primitive_scalar bug (#4852)
This is an automated email from the ASF dual-hosted git repository.
tustvold pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow-rs.git
The following commit(s) were added to refs/heads/master by this push:
new 1de21d29ad fix: make_primitive_scalar bug (#4852)
1de21d29ad is described below
commit 1de21d29ade3dbc48a89e150c00fd548f0b83aab
Author: JasonLi <li...@126.com>
AuthorDate: Sun Sep 24 00:21:41 2023 +0800
fix: make_primitive_scalar bug (#4852)
Co-authored-by: jasonnnli <ja...@tencent.com>
---
arrow-ord/src/comparison.rs | 42 ++++++++++++++++++++++++------------------
1 file changed, 24 insertions(+), 18 deletions(-)
diff --git a/arrow-ord/src/comparison.rs b/arrow-ord/src/comparison.rs
index 4e475d8fd5..ffd35a6070 100644
--- a/arrow-ord/src/comparison.rs
+++ b/arrow-ord/src/comparison.rs
@@ -105,15 +105,17 @@ fn make_primitive_scalar<T: num::ToPrimitive + std::fmt::Debug>(
}
DataType::Decimal128(_, _) => {
let right = try_to_type!(scalar, to_i128)?;
- Ok(Arc::new(PrimitiveArray::<Decimal128Type>::from(vec![
- right,
- ])))
+ Ok(Arc::new(
+ PrimitiveArray::<Decimal128Type>::from(vec![right])
+ .with_data_type(d.clone()),
+ ))
}
DataType::Decimal256(_, _) => {
let right = try_to_type!(scalar, to_i128)?;
- Ok(Arc::new(PrimitiveArray::<Decimal256Type>::from(vec![
- i256::from_i128(right),
- ])))
+ Ok(Arc::new(
+ PrimitiveArray::<Decimal256Type>::from(vec![i256::from_i128(right)])
+ .with_data_type(d.clone()),
+ ))
}
DataType::Date32 => {
let right = try_to_type!(scalar, to_i32)?;
@@ -125,27 +127,31 @@ fn make_primitive_scalar<T: num::ToPrimitive + std::fmt::Debug>(
}
DataType::Timestamp(TimeUnit::Nanosecond, _) => {
let right = try_to_type!(scalar, to_i64)?;
- Ok(Arc::new(PrimitiveArray::<TimestampNanosecondType>::from(
- vec![right],
- )))
+ Ok(Arc::new(
+ PrimitiveArray::<TimestampNanosecondType>::from(vec![right])
+ .with_data_type(d.clone()),
+ ))
}
DataType::Timestamp(TimeUnit::Microsecond, _) => {
let right = try_to_type!(scalar, to_i64)?;
- Ok(Arc::new(PrimitiveArray::<TimestampMicrosecondType>::from(
- vec![right],
- )))
+ Ok(Arc::new(
+ PrimitiveArray::<TimestampMicrosecondType>::from(vec![right])
+ .with_data_type(d.clone()),
+ ))
}
DataType::Timestamp(TimeUnit::Millisecond, _) => {
let right = try_to_type!(scalar, to_i64)?;
- Ok(Arc::new(PrimitiveArray::<TimestampMillisecondType>::from(
- vec![right],
- )))
+ Ok(Arc::new(
+ PrimitiveArray::<TimestampMillisecondType>::from(vec![right])
+ .with_data_type(d.clone()),
+ ))
}
DataType::Timestamp(TimeUnit::Second, _) => {
let right = try_to_type!(scalar, to_i64)?;
- Ok(Arc::new(PrimitiveArray::<TimestampSecondType>::from(vec![
- right,
- ])))
+ Ok(Arc::new(
+ PrimitiveArray::<TimestampSecondType>::from(vec![right])
+ .with_data_type(d.clone()),
+ ))
}
DataType::Time32(TimeUnit::Second) => {
let right = try_to_type!(scalar, to_i32)?;