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

jiacai2050 pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-horaedb.git


The following commit(s) were added to refs/heads/dev by this push:
     new 5377dfd5 feat: try load page indexes (#1425)
5377dfd5 is described below

commit 5377dfd5d078ec394d9401703ee5b62bf19fd94d
Author: Jiacai Liu <[email protected]>
AuthorDate: Thu Jan 4 17:04:17 2024 +0800

    feat: try load page indexes (#1425)
    
    ## Rationale
    See #1040
    
    ## Detailed Changes
    - Try load page indexes
    
    ## Test Plan
    CI
---
 analytic_engine/src/sst/parquet/async_reader.rs | 24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)

diff --git a/analytic_engine/src/sst/parquet/async_reader.rs 
b/analytic_engine/src/sst/parquet/async_reader.rs
index be984796..0b7ffdc2 100644
--- a/analytic_engine/src/sst/parquet/async_reader.rs
+++ b/analytic_engine/src/sst/parquet/async_reader.rs
@@ -37,7 +37,7 @@ use datafusion::{
 };
 use futures::{Stream, StreamExt};
 use generic_error::{BoxError, GenericResult};
-use logger::{debug, error};
+use logger::{debug, error, warn};
 use object_store::{ObjectStoreRef, Path};
 use parquet::{
     arrow::{arrow_reader::RowSelection, ParquetRecordBatchStreamBuilder, 
ProjectionMask},
@@ -397,7 +397,27 @@ impl<'a> Reader<'a> {
                     file_path: self.path.to_string(),
                 })?;
 
-        // TODO: Support page index until 
https://github.com/CeresDB/ceresdb/issues/1040 is fixed.
+        let mut parquet_meta_data = Arc::new(parquet_meta_data);
+        let object_store_reader = parquet_ext::reader::ObjectStoreReader::new(
+            self.store.clone(),
+            self.path.clone(),
+            parquet_meta_data.clone(),
+        );
+
+        if let Ok(meta_data) = 
parquet_ext::meta_data::meta_with_page_indexes(object_store_reader)
+            .await
+            .map_err(|e| {
+                // When loading page indexes failed, we just log the error and 
continue querying
+                // TODO: Fix this in stream. 
https://github.com/apache/incubator-horaedb/issues/1040
+                warn!(
+                    "Fail to load page indexes, path:{}, err:{:?}.",
+                    self.path, e
+                );
+                e
+            })
+        {
+            parquet_meta_data = meta_data;
+        }
 
         MetaData::try_new(&parquet_meta_data, ignore_sst_filter, 
self.store.clone())
             .await


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to