You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@iceberg.apache.org by "viirya (via GitHub)" <gi...@apache.org> on 2024/03/10 00:09:40 UTC

[PR] feat: Read Parquet data file with projection [iceberg-rust]

viirya opened a new pull request, #245:
URL: https://github.com/apache/iceberg-rust/pull/245

   close #244


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org


Re: [PR] feat: Read Parquet data file with projection [iceberg-rust]

Posted by "viirya (via GitHub)" <gi...@apache.org>.
viirya commented on PR #245:
URL: https://github.com/apache/iceberg-rust/pull/245#issuecomment-2028854180

   > Thanks @viirya for this pr, looks great! It would be better to report the error as `FeatureNotSupport` to make it more friendly to user, what do you think?
   
   Thank you @liurenjie1024. Yea, I think it should be better to use `FeatureUnsupported` (I think you meant that). I changed the error type.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org


Re: [PR] feat: Read Parquet data file with projection [iceberg-rust]

Posted by "viirya (via GitHub)" <gi...@apache.org>.
viirya commented on code in PR #245:
URL: https://github.com/apache/iceberg-rust/pull/245#discussion_r1545542266


##########
crates/iceberg/src/scan.rs:
##########
@@ -187,6 +190,46 @@ impl TableScan {
         let mut arrow_reader_builder =
             ArrowReaderBuilder::new(self.file_io.clone(), self.schema.clone());
 
+        let mut field_ids = vec![];
+        for column_name in &self.column_names {
+            let field_id = self.schema.field_id_by_name(column_name).ok_or_else(|| {
+                Error::new(
+                    ErrorKind::DataInvalid,
+                    format!(
+                        "Column {} not found in table. Schema: {}",
+                        column_name, self.schema
+                    ),
+                )
+            })?;
+
+            let field = self.schema
+                .as_struct()
+                .field_by_id(field_id)
+                .ok_or_else(|| {
+                    Error::new(
+                        ErrorKind::DataInvalid,
+                        format!(
+                            "Column {} is not a direct child of schema but a nested field. Schema: {}",
+                            column_name, self.schema

Review Comment:
   Okay. I used `FeatureUnsupported`.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org


Re: [PR] feat: Read Parquet data file with projection [iceberg-rust]

Posted by "liurenjie1024 (via GitHub)" <gi...@apache.org>.
liurenjie1024 merged PR #245:
URL: https://github.com/apache/iceberg-rust/pull/245


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org


Re: [PR] feat: Read Parquet data file with projection [iceberg-rust]

Posted by "liurenjie1024 (via GitHub)" <gi...@apache.org>.
liurenjie1024 commented on code in PR #245:
URL: https://github.com/apache/iceberg-rust/pull/245#discussion_r1545535512


##########
crates/iceberg/src/arrow.rs:
##########
@@ -101,8 +114,53 @@ impl ArrowReader {
         .boxed())
     }
 
-    fn get_arrow_projection_mask(&self, _task: &FileScanTask) -> ProjectionMask {
-        // TODO: full implementation
-        ProjectionMask::all()
+    fn get_arrow_projection_mask(
+        &self,
+        parquet_schema: &SchemaDescriptor,
+    ) -> crate::Result<ProjectionMask> {
+        if self.field_ids.is_empty() {
+            Ok(ProjectionMask::all())
+        } else {
+            let mut column_map = HashMap::new();
+            for (idx, field) in parquet_schema.columns().iter().enumerate() {
+                let field_type = field.self_type();
+                match field_type {
+                    Type::PrimitiveType { basic_info, .. } => {
+                        if !basic_info.has_id() {
+                            return Err(Error::new(
+                                ErrorKind::DataInvalid,
+                                format!(
+                                    "Leave column {:?} in schema doesn't have field id",
+                                    field_type
+                                ),
+                            ));
+                        }
+                        column_map.insert(basic_info.id(), idx);

Review Comment:
   Yes, I agree that maybe we should modify `filter_leaves`'s api to return error.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org


Re: [PR] feat: Read Parquet data file with projection [iceberg-rust]

Posted by "viirya (via GitHub)" <gi...@apache.org>.
viirya commented on PR #245:
URL: https://github.com/apache/iceberg-rust/pull/245#issuecomment-2008556920

   @liurenjie1024 Thanks for providing some references to #251, #252.
   
   I took at the Python reading projection in https://github.com/apache/iceberg-python/blob/6c8ea0effac0942ad4e880e5eef627473a354040/pyiceberg/io/pyarrow.py#L939. I'm wondering if we actually need #251 and #252 for pruning column here.
   
   For the arrow Parquet reader, it only requires us to identify the columns to read through `ProjectionMask`. It can be obtained by using field ids from the selected columns from `TableScan`. 
   
   In the Python implementation, it requires #251 because it calls the scanner API that needs the pruned schema. For us, I don't see where we need the pruned schema.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org


Re: [PR] feat: Read Parquet data file with projection [iceberg-rust]

Posted by "liurenjie1024 (via GitHub)" <gi...@apache.org>.
liurenjie1024 commented on PR #245:
URL: https://github.com/apache/iceberg-rust/pull/245#issuecomment-2008989780

   > @liurenjie1024 Thanks for providing some references to #251, #252.
   > 
   > I took at the Python reading projection in https://github.com/apache/iceberg-python/blob/6c8ea0effac0942ad4e880e5eef627473a354040/pyiceberg/io/pyarrow.py#L939. I'm wondering if we actually need #251 and #252 for pruning column here.
   > 
   > For the arrow Parquet reader, it only requires us to identify the columns to read through `ProjectionMask`. It can be obtained by using field ids from the selected columns from `TableScan`.
   > 
   > In the Python implementation, it requires #251 because it calls the scanner API that needs the pruned schema. For us, I don't see where we need the pruned schema.
   > 
   > I updated how to leverage `ProjectionMask` using field ids and fixed previous approach which doesn't look correct. Please take a look again. Thanks.
   
   Cool, I'll take a look later. Maybe java's version is similar to this one.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org


Re: [PR] feat: Read Parquet data file with projection [iceberg-rust]

Posted by "viirya (via GitHub)" <gi...@apache.org>.
viirya commented on code in PR #245:
URL: https://github.com/apache/iceberg-rust/pull/245#discussion_r1545178174


##########
crates/iceberg/src/scan.rs:
##########
@@ -187,6 +190,22 @@ impl TableScan {
         let mut arrow_reader_builder =
             ArrowReaderBuilder::new(self.file_io.clone(), self.schema.clone());
 
+        let mut field_ids = vec![];
+        for column_name in &self.column_names {
+            let field_id = self.schema.field_id_by_name(column_name).ok_or_else(|| {

Review Comment:
   Added these checks.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org


Re: [PR] feat: Read Parquet data file with projection [iceberg-rust]

Posted by "liurenjie1024 (via GitHub)" <gi...@apache.org>.
liurenjie1024 commented on code in PR #245:
URL: https://github.com/apache/iceberg-rust/pull/245#discussion_r1537479886


##########
crates/iceberg/src/arrow.rs:
##########
@@ -49,10 +54,17 @@ impl ArrowReaderBuilder {
         self
     }
 
+    /// Sets the desired column projection with a list of field ids.
+    pub fn with_field_ids(mut self, field_ids: Vec<usize>) -> Self {

Review Comment:
   ```suggestion
       pub fn with_field_ids(mut self, field_ids: impl IntoIterator<Item=usize>) -> Self {
   ```



##########
crates/iceberg/src/scan.rs:
##########
@@ -187,6 +190,22 @@ impl TableScan {
         let mut arrow_reader_builder =
             ArrowReaderBuilder::new(self.file_io.clone(), self.schema.clone());
 
+        let mut field_ids = vec![];
+        for column_name in &self.column_names {
+            let field_id = self.schema.field_id_by_name(column_name).ok_or_else(|| {

Review Comment:
   As discussed in #244, we need to do two checks here to ensure that it's valid:
   
   1. The field is a direct child of schema, e.g. not a nested field. We can do this by calling `Schema::as_struct::field_by_id::is_some`
   2. Ensure that this field is primitive type. 



##########
crates/iceberg/src/arrow.rs:
##########
@@ -101,8 +114,53 @@ impl ArrowReader {
         .boxed())
     }
 
-    fn get_arrow_projection_mask(&self, _task: &FileScanTask) -> ProjectionMask {
-        // TODO: full implementation
-        ProjectionMask::all()
+    fn get_arrow_projection_mask(
+        &self,
+        parquet_schema: &SchemaDescriptor,
+    ) -> crate::Result<ProjectionMask> {
+        if self.field_ids.is_empty() {
+            Ok(ProjectionMask::all())
+        } else {
+            let mut column_map = HashMap::new();
+            for (idx, field) in parquet_schema.columns().iter().enumerate() {
+                let field_type = field.self_type();
+                match field_type {
+                    Type::PrimitiveType { basic_info, .. } => {
+                        if !basic_info.has_id() {
+                            return Err(Error::new(
+                                ErrorKind::DataInvalid,
+                                format!(
+                                    "Leave column {:?} in schema doesn't have field id",
+                                    field_type
+                                ),
+                            ));
+                        }
+                        column_map.insert(basic_info.id(), idx);

Review Comment:
   We need also a check that their types are matched. How about converting parquet schema to arrow schema, and uses [`filter_leaves`](https://arrow.apache.org/rust/arrow_schema/fields/struct.Fields.html#method.filter_leaves) to do this match check? This way we only need to deal with iceberg schema and arrow schema.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org


Re: [PR] feat: Read Parquet data file with projection [iceberg-rust]

Posted by "viirya (via GitHub)" <gi...@apache.org>.
viirya commented on code in PR #245:
URL: https://github.com/apache/iceberg-rust/pull/245#discussion_r1545542266


##########
crates/iceberg/src/scan.rs:
##########
@@ -187,6 +190,46 @@ impl TableScan {
         let mut arrow_reader_builder =
             ArrowReaderBuilder::new(self.file_io.clone(), self.schema.clone());
 
+        let mut field_ids = vec![];
+        for column_name in &self.column_names {
+            let field_id = self.schema.field_id_by_name(column_name).ok_or_else(|| {
+                Error::new(
+                    ErrorKind::DataInvalid,
+                    format!(
+                        "Column {} not found in table. Schema: {}",
+                        column_name, self.schema
+                    ),
+                )
+            })?;
+
+            let field = self.schema
+                .as_struct()
+                .field_by_id(field_id)
+                .ok_or_else(|| {
+                    Error::new(
+                        ErrorKind::DataInvalid,
+                        format!(
+                            "Column {} is not a direct child of schema but a nested field. Schema: {}",
+                            column_name, self.schema

Review Comment:
   Okay.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org


Re: [PR] feat: Read Parquet data file with projection [iceberg-rust]

Posted by "viirya (via GitHub)" <gi...@apache.org>.
viirya commented on code in PR #245:
URL: https://github.com/apache/iceberg-rust/pull/245#discussion_r1545181844


##########
crates/iceberg/src/arrow.rs:
##########
@@ -101,8 +114,53 @@ impl ArrowReader {
         .boxed())
     }
 
-    fn get_arrow_projection_mask(&self, _task: &FileScanTask) -> ProjectionMask {
-        // TODO: full implementation
-        ProjectionMask::all()
+    fn get_arrow_projection_mask(
+        &self,
+        parquet_schema: &SchemaDescriptor,
+    ) -> crate::Result<ProjectionMask> {
+        if self.field_ids.is_empty() {
+            Ok(ProjectionMask::all())
+        } else {
+            let mut column_map = HashMap::new();
+            for (idx, field) in parquet_schema.columns().iter().enumerate() {
+                let field_type = field.self_type();
+                match field_type {
+                    Type::PrimitiveType { basic_info, .. } => {
+                        if !basic_info.has_id() {
+                            return Err(Error::new(
+                                ErrorKind::DataInvalid,
+                                format!(
+                                    "Leave column {:?} in schema doesn't have field id",
+                                    field_type
+                                ),
+                            ));
+                        }
+                        column_map.insert(basic_info.id(), idx);

Review Comment:
   I changed to use `filter_leaves`. Compared to what I did with Parquet schema, However, it doesn't look quite good for the usage.
   
   Because the filter of `filter_leaves` is not supported to propagate error inside the closure, we cannot make it well propagating error happened during matching the fields.
   
   Although it can be improved as we can probably go to propose a change to the `filter_leaves` API . But in this version, we might tolerant it if we want to use `filter_leaves`.
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org


Re: [PR] feat: Read Parquet data file with projection [iceberg-rust]

Posted by "viirya (via GitHub)" <gi...@apache.org>.
viirya commented on code in PR #245:
URL: https://github.com/apache/iceberg-rust/pull/245#discussion_r1518693422


##########
crates/iceberg/src/scan.rs:
##########
@@ -383,18 +389,29 @@ mod tests {
 
             // prepare data
             let schema = {
-                let fields =
-                    vec![
-                        arrow_schema::Field::new("col", arrow_schema::DataType::Int64, true)
-                            .with_metadata(HashMap::from([(
-                                PARQUET_FIELD_ID_META_KEY.to_string(),
-                                "0".to_string(),
-                            )])),

Review Comment:
   I took a look at the table metadata. The written Parquet schema doesn't match with the table schema.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org


Re: [PR] feat: Read Parquet data file with projection [iceberg-rust]

Posted by "viirya (via GitHub)" <gi...@apache.org>.
viirya commented on code in PR #245:
URL: https://github.com/apache/iceberg-rust/pull/245#discussion_r1518693422


##########
crates/iceberg/src/scan.rs:
##########
@@ -383,18 +389,29 @@ mod tests {
 
             // prepare data
             let schema = {
-                let fields =
-                    vec![
-                        arrow_schema::Field::new("col", arrow_schema::DataType::Int64, true)
-                            .with_metadata(HashMap::from([(
-                                PARQUET_FIELD_ID_META_KEY.to_string(),
-                                "0".to_string(),
-                            )])),

Review Comment:
   I took a look at the table metadata. The written Parquet schema doesn't match with the table schema. As we need to project correct columns in the parquet file, I changed this.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org


Re: [PR] feat: Read Parquet data file with projection [iceberg-rust]

Posted by "liurenjie1024 (via GitHub)" <gi...@apache.org>.
liurenjie1024 commented on PR #245:
URL: https://github.com/apache/iceberg-rust/pull/245#issuecomment-2019864557

   Hi, @viirya Sorry for late reply, it took me some time to totally understand the projection in iceberg, and I've written up a summary [here](https://github.com/apache/iceberg-rust/issues/244#issuecomment-2019857203).
   
   Thanks for the idea of using projection mask, it helps a lot in pruning unnecessary columns. However I feel that we still miss sth, let's continue the discussion in #244, what do you think?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org


Re: [PR] feat: Read Parquet data file with projection [iceberg-rust]

Posted by "viirya (via GitHub)" <gi...@apache.org>.
viirya commented on PR #245:
URL: https://github.com/apache/iceberg-rust/pull/245#issuecomment-2020510184

   @liurenjie1024 Thanks. Let me read through your summary first and explain what I've done in this PR in #244.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org


Re: [PR] feat: Read Parquet data file with projection [iceberg-rust]

Posted by "liurenjie1024 (via GitHub)" <gi...@apache.org>.
liurenjie1024 commented on code in PR #245:
URL: https://github.com/apache/iceberg-rust/pull/245#discussion_r1545534908


##########
crates/iceberg/src/scan.rs:
##########
@@ -187,6 +190,46 @@ impl TableScan {
         let mut arrow_reader_builder =
             ArrowReaderBuilder::new(self.file_io.clone(), self.schema.clone());
 
+        let mut field_ids = vec![];
+        for column_name in &self.column_names {
+            let field_id = self.schema.field_id_by_name(column_name).ok_or_else(|| {
+                Error::new(
+                    ErrorKind::DataInvalid,
+                    format!(
+                        "Column {} not found in table. Schema: {}",
+                        column_name, self.schema
+                    ),
+                )
+            })?;
+
+            let field = self.schema
+                .as_struct()
+                .field_by_id(field_id)
+                .ok_or_else(|| {
+                    Error::new(
+                        ErrorKind::DataInvalid,
+                        format!(
+                            "Column {} is not a direct child of schema but a nested field. Schema: {}",
+                            column_name, self.schema

Review Comment:
   ```suggestion
                           ErrorKind::FeatureNotSupported,
                           format!(
                               "Column {} is not a direct child of schema but a nested field, which is not supported now. Schema: {}",
                               column_name, self.schema
   ```



##########
crates/iceberg/src/scan.rs:
##########
@@ -187,6 +190,46 @@ impl TableScan {
         let mut arrow_reader_builder =
             ArrowReaderBuilder::new(self.file_io.clone(), self.schema.clone());
 
+        let mut field_ids = vec![];
+        for column_name in &self.column_names {
+            let field_id = self.schema.field_id_by_name(column_name).ok_or_else(|| {
+                Error::new(
+                    ErrorKind::DataInvalid,
+                    format!(
+                        "Column {} not found in table. Schema: {}",
+                        column_name, self.schema
+                    ),
+                )
+            })?;
+
+            let field = self.schema
+                .as_struct()
+                .field_by_id(field_id)
+                .ok_or_else(|| {
+                    Error::new(
+                        ErrorKind::DataInvalid,
+                        format!(
+                            "Column {} is not a direct child of schema but a nested field. Schema: {}",
+                            column_name, self.schema
+                        ),
+                    )
+                })?;
+
+            if !field.field_type.is_primitive() {
+                return Err(Error::new(
+                    ErrorKind::DataInvalid,
+                    format!(
+                        "Column {} is not a primitive type. Schema: {}",
+                        column_name, self.schema

Review Comment:
   Ditto, returning a feature not supported error would be more user friendly.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org


Re: [PR] feat: Read Parquet data file with projection [iceberg-rust]

Posted by "liurenjie1024 (via GitHub)" <gi...@apache.org>.
liurenjie1024 commented on PR #245:
URL: https://github.com/apache/iceberg-rust/pull/245#issuecomment-2029035942

   > > Thanks @viirya for this pr, looks great! It would be better to report the error as `FeatureNotSupport` to make it more friendly to user, what do you think?
   > 
   > Thank you @liurenjie1024. Yea, I think it should be better to use `FeatureUnsupported` (I think you meant that). I changed the error type.
   
   Cool, thanks!


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org


Re: [PR] feat: Read Parquet data file with projection [iceberg-rust]

Posted by "viirya (via GitHub)" <gi...@apache.org>.
viirya commented on PR #245:
URL: https://github.com/apache/iceberg-rust/pull/245#issuecomment-2024206522

   Thank you @liurenjie1024 for review. I will address these comments soon.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org