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 2022/10/27 04:49:28 UTC
[arrow-rs] branch master updated: fix datatype for timestamptz debug fmt (#2948)
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 4cef58e2b fix datatype for timestamptz debug fmt (#2948)
4cef58e2b is described below
commit 4cef58e2becd3e532e0b4c1b672e2a484dfd601e
Author: Wei-Ting Kuo <wa...@gmail.com>
AuthorDate: Thu Oct 27 12:49:22 2022 +0800
fix datatype for timestamptz debug fmt (#2948)
---
arrow-array/src/array/primitive_array.rs | 35 ++++++++++++++++++++++++++++++--
1 file changed, 33 insertions(+), 2 deletions(-)
diff --git a/arrow-array/src/array/primitive_array.rs b/arrow-array/src/array/primitive_array.rs
index 3105cc6a9..016e5306c 100644
--- a/arrow-array/src/array/primitive_array.rs
+++ b/arrow-array/src/array/primitive_array.rs
@@ -535,8 +535,9 @@ where
impl<T: ArrowPrimitiveType> std::fmt::Debug for PrimitiveArray<T> {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
- write!(f, "PrimitiveArray<{:?}>\n[\n", T::DATA_TYPE)?;
- print_long_array(self, f, |array, index, f| match T::DATA_TYPE {
+ let data_type = self.data_type();
+ write!(f, "PrimitiveArray<{:?}>\n[\n", data_type)?;
+ print_long_array(self, f, |array, index, f| match data_type {
DataType::Date32 | DataType::Date64 => {
let v = self.value(index).to_isize().unwrap() as i64;
match as_date::<T>(v) {
@@ -1322,6 +1323,36 @@ mod tests {
);
}
+ #[test]
+ fn test_timestamp_with_tz_fmt_debug() {
+ let arr: PrimitiveArray<TimestampMillisecondType> =
+ TimestampMillisecondArray::from(vec![
+ 1546214400000,
+ 1546214400000,
+ -1546214400000,
+ ])
+ .with_timezone("Asia/Taipei".to_string());
+ assert_eq!(
+ "PrimitiveArray<Timestamp(Millisecond, Some(\"Asia/Taipei\"))>\n[\n 2018-12-31T00:00:00,\n 2018-12-31T00:00:00,\n 1921-01-02T00:00:00,\n]",
+ format!("{:?}", arr)
+ );
+ }
+
+ #[test]
+ fn test_timestamp_with_fixed_offset_tz_fmt_debug() {
+ let arr: PrimitiveArray<TimestampMillisecondType> =
+ TimestampMillisecondArray::from(vec![
+ 1546214400000,
+ 1546214400000,
+ -1546214400000,
+ ])
+ .with_timezone("+08:00".to_string());
+ assert_eq!(
+ "PrimitiveArray<Timestamp(Millisecond, Some(\"+08:00\"))>\n[\n 2018-12-31T00:00:00,\n 2018-12-31T00:00:00,\n 1921-01-02T00:00:00,\n]",
+ format!("{:?}", arr)
+ );
+ }
+
#[test]
fn test_date32_fmt_debug() {
let arr: PrimitiveArray<Date32Type> = vec![12356, 13548, -365].into();