This is an automated email from the ASF dual-hosted git repository.

xuanwo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg-rust.git


The following commit(s) were added to refs/heads/main by this push:
     new 257cdbd  Fix main branch building break (#541)
257cdbd is described below

commit 257cdbd64b4f3bff553a1301a79247edf057b93c
Author: Renjie Liu <[email protected]>
AuthorDate: Tue Aug 13 23:23:18 2024 +0800

    Fix main branch building break (#541)
---
 crates/iceberg/src/arrow/schema.rs | 34 +++++++++++++++++++++++-----------
 1 file changed, 23 insertions(+), 11 deletions(-)

diff --git a/crates/iceberg/src/arrow/schema.rs 
b/crates/iceberg/src/arrow/schema.rs
index 6215982..43875bf 100644
--- a/crates/iceberg/src/arrow/schema.rs
+++ b/crates/iceberg/src/arrow/schema.rs
@@ -608,26 +608,38 @@ pub fn schema_to_arrow_schema(schema: 
&crate::spec::Schema) -> crate::Result<Arr
 
 /// Convert Iceberg Datum to Arrow Datum.
 pub(crate) fn get_arrow_datum(datum: &Datum) -> Result<Box<dyn ArrowDatum + 
Send>> {
-    match datum.literal() {
-        PrimitiveLiteral::Boolean(value) => 
Ok(Box::new(BooleanArray::new_scalar(*value))),
-        PrimitiveLiteral::Int(value) => 
Ok(Box::new(Int32Array::new_scalar(*value))),
-        PrimitiveLiteral::Long(value) => 
Ok(Box::new(Int64Array::new_scalar(*value))),
-        PrimitiveLiteral::Float(value) => 
Ok(Box::new(Float32Array::new_scalar(value.as_f32()))),
-        PrimitiveLiteral::Double(value) => 
Ok(Box::new(Float64Array::new_scalar(value.as_f64()))),
-        PrimitiveLiteral::String(value) => 
Ok(Box::new(StringArray::new_scalar(value.as_str()))),
-        PrimitiveLiteral::Timestamp(value) => {
+    match (datum.data_type(), datum.literal()) {
+        (PrimitiveType::Boolean, PrimitiveLiteral::Boolean(value)) => {
+            Ok(Box::new(BooleanArray::new_scalar(*value)))
+        }
+        (PrimitiveType::Int, PrimitiveLiteral::Int(value)) => {
+            Ok(Box::new(Int32Array::new_scalar(*value)))
+        }
+        (PrimitiveType::Long, PrimitiveLiteral::Long(value)) => {
+            Ok(Box::new(Int64Array::new_scalar(*value)))
+        }
+        (PrimitiveType::Float, PrimitiveLiteral::Float(value)) => {
+            Ok(Box::new(Float32Array::new_scalar(value.as_f32())))
+        }
+        (PrimitiveType::Double, PrimitiveLiteral::Double(value)) => {
+            Ok(Box::new(Float64Array::new_scalar(value.as_f64())))
+        }
+        (PrimitiveType::String, PrimitiveLiteral::String(value)) => {
+            Ok(Box::new(StringArray::new_scalar(value.as_str())))
+        }
+        (PrimitiveType::Timestamp, PrimitiveLiteral::Long(value)) => {
             Ok(Box::new(TimestampMicrosecondArray::new_scalar(*value)))
         }
-        PrimitiveLiteral::Timestamptz(value) => Ok(Box::new(Scalar::new(
+        (PrimitiveType::Timestamptz, PrimitiveLiteral::Long(value)) => 
Ok(Box::new(Scalar::new(
             PrimitiveArray::<TimestampMicrosecondType>::new(vec![*value; 
1].into(), None)
                 .with_timezone("UTC"),
         ))),
 
-        l => Err(Error::new(
+        (typ, _) => Err(Error::new(
             ErrorKind::FeatureUnsupported,
             format!(
                 "Converting datum from type {:?} to arrow not supported yet.",
-                l
+                typ
             ),
         )),
     }

Reply via email to