github-actions[bot] commented on code in PR #69839:
URL: https://github.com/apache/doris/pull/69839#discussion_r4422539314
##########
be/src/format_v2/column_mapper.cpp:
##########
@@ -1285,6 +1296,15 @@ static VExprSPtr
rewrite_struct_or_slot_expr_to_file_expr(
return expr;
}
const auto& rewrite_info = rewrite_it->second;
+ DORIS_CHECK(rewrite_info.root_mapping != nullptr);
+ if (mapping_slot_has_unmapped_child(*rewrite_info.root_mapping)) {
Review Comment:
[P1] Generic wrappers can still filter on a partial nested struct. The new
guard rejects a partially mapped top-level slot, but
rewrite_struct_element_path_to_file_expr() still localizes element_at(s, 'a')
when a has an unmapped descendant because
projected_mapping_allows_file_filtering() skips missing children. A predicate
such as LIKE(CAST(element_at(s, 'a') AS STRING), '%missing%') then runs on the
file's STRUCT<x> before TableReader materializes the table's STRUCT<x,
missing=0>, so it can discard rows based on a different value (the same applies
through a runtime-filter wrapper). Keep nested complex results with unmapped
descendants at table level, and add a regression for this path.
--
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]