github-actions[bot] commented on code in PR #67205:
URL: https://github.com/apache/doris/pull/67205#discussion_r3877378376


##########
fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java:
##########
@@ -2968,7 +2968,32 @@ private boolean shouldUseRowStore(Relation rel, 
List<Slot> lazySlots) {
             useRowStore = olapTable.storeRowColumn()
                     && 
CollectionUtils.isEmpty(olapTable.getTableProperty().getCopiedRowStoreColumns());
         }
-        return useRowStore && canUseRowStoreForLazySlots(lazySlots);
+        return useRowStore && canUseRowStoreForLazySlots(lazySlots)
+                && !hasNestedAccessPaths(rel, lazySlots);

Review Comment:
   [P2] Preserve row-store fetch for whole-root access paths
   
   Please distinguish a one-segment whole-root marker from actual nested 
pruning here. `NestedColumnPruning` emits `[columnName]` for a full 
STRUCT/MAP/ARRAY/Variant consumer, so the access-path list is nonempty even 
though the slot keeps the full original type and row-store JSONB fetch is safe. 
On `store_row_column` tables, TopN lazy materialization of a full complex value 
now falls back to the slower per-column row-ID path. Base this decision on 
whether the effective all-access layout goes below the root (while continuing 
to reject `subPath` or inconsistent metadata), and add root-versus-pruned 
translator coverage.



-- 
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]


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

Reply via email to