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

morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 58504491c0e [fix](orc-reader)Fix orc complex type late 
materialization. (#50744)
58504491c0e is described below

commit 58504491c0ec5ea53e21177a29d1d4a793b7aa43
Author: Qi Chen <che...@selectdb.com>
AuthorDate: Fri May 9 18:03:37 2025 +0800

    [fix](orc-reader)Fix orc complex type late materialization. (#50744)
    
    ### What problem does this PR solve?
    
    ### Release note
    
    Fix complex type late materialization. Original logic for
    `computeRGIdx()` has bugs, it will return wrong result when `rowIdx =
    0`. But this error does not affect the correctness of most cases.
    
    In order to solve this problem,currently refactor the entire delayed
    materialized node filtering mechanism.
    
    Currently Filter/Non Filter Node types:
    ```
    /**
       * Filter Node Types:
       *
       * FILTER_CHILD: Primitive type that is a filter column.
       * FILTER_PARENT: Compound type that may contain both filter and 
non-filter children.
       * FILTER_COMPOUND_ELEMENT: Compound type that is a filter element 
(list/map).
       *                         The entire column will be read, and must have 
only filter children.
       * NON_FILTER: Non-filter column.
       *
       * Example:
       * struct<name:string,
       *        age:int,
       *        address:struct<city:string,
       *                       zip:int,
       *                       location:struct<latitude:double, 
longitude:double>>,
       *        hobbies:list<struct<name:string, level:int>>,
       *        scores:map<string, struct<subject:string, grade:int>>>
       *
       * Filter columns: name, address.city, address.location.latitude, 
hobbies, scores
       *
       * Column Structure:
       * struct<...>
       * ├── name (FILTER_CHILD)           # Primitive type, filter column
       * ├── age (NON_FILTER)              # Non-filter column
       * ├── address (FILTER_PARENT)       # Compound type with filter children
       * │   ├── city (FILTER_CHILD)       # Primitive type, filter column
       * │   ├── zip (NON_FILTER)          # Non-filter column
       * │   └── location (FILTER_PARENT)  # Compound type with filter children
       * │       ├── latitude (FILTER_CHILD)  # Primitive type, filter column
       * │       └── longitude (NON_FILTER)   # Non-filter column
       * ├── hobbies (FILTER_COMPOUND_ELEMENT)  # Compound type as filter 
element (list)
       * │   └── struct<name:string, level:int> (FILTER_PARENT)  # Compound 
type with filter children
       * │       ├── name (FILTER_CHILD)   # Primitive type, filter column
       * │       └── level (FILTER_CHILD)  # Primitive type, filter column
       * └── scores (FILTER_COMPOUND_ELEMENT)   # Compound type as filter 
element (map)
       *     ├── key (FILTER_CHILD)        # Primitive type, filter column
       *     └── value (FILTER_PARENT)     # Compound type with filter children
       *         ├── subject (FILTER_CHILD)  # Primitive type, filter column
       *         └── grade (FILTER_CHILD)    # Primitive type, filter column
       */
    ```
---
 be/src/apache-orc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/be/src/apache-orc b/be/src/apache-orc
index 77e8f92669c..13ada78b494 160000
--- a/be/src/apache-orc
+++ b/be/src/apache-orc
@@ -1 +1 @@
-Subproject commit 77e8f92669c9ad658ba7f626364c9ba7eb593e36
+Subproject commit 13ada78b494133cacc0ccb5120e3f4611828fdbb


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to