etseidl commented on PR #11157:
URL: https://github.com/apache/arrow-rs/pull/11157#issuecomment-5834422727

   Now that I've changed it, I'm not really happy with the merging behavior on 
subsequent calls to `read_page_indexes` (C11). Saving the old page index 
requires a nested loop over `num_row_groups X num_columns` elements, cloning 
any that exist. In the worst case of an existing fully populated page index, 
we're inefficiently cloning the entire thing, and then potentially re-decoding 
the entire structure and throwing away the clone. Also, this really complicated 
the `Grid` case because the original selection is not known via the provider 
interface, so we still have to do the full quadratic scan.
   
   I think it might be cleaner to just document that `read_page_indexes` will 
overwrite the page index in it's entirety, and if incremental builds are 
desired, one should provide their own `PageIndexProvider` and handle populating 
it themselves. Then we can modify `parse_page_index` to set the page index to 
`None` when both policies are `Skip`.
   
   Thoughts?
   
   cc @alamb


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to