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]