github-actions[bot] commented on code in PR #67906:
URL: https://github.com/apache/doris/pull/67906#discussion_r3999137002
##########
be/src/exec/rowid_fetcher.cpp:
##########
@@ -609,6 +635,36 @@ Status RowIdStorageReader::submit_external_scan_tasks(
return scan_status.ok() ? Status::OK() : scan_status.status();
}
+TFileScanRangeParams RowIdStorageReader::build_external_scan_params(
+ const TFileScanRangeParams& source_params, const TFileRangeDesc& range,
+ const std::vector<SlotDescriptor>& scan_slots,
+ const std::vector<uint32_t>& scan_column_idxs) {
+ DORIS_CHECK(scan_slots.size() == scan_column_idxs.size());
+ auto params = source_params;
+ params.required_slots.clear();
+ params.column_idxs.clear();
+ params.slot_name_to_schema_pos.clear();
+ const std::set partition_names(range.columns_from_path_keys.begin(),
+ range.columns_from_path_keys.end());
+ for (size_t slot_idx = 0; slot_idx < scan_slots.size(); ++slot_idx) {
+ const auto& slot = scan_slots[slot_idx];
+ const auto column_idx = scan_column_idxs[slot_idx];
+ TFileScanSlotInfo slot_info;
+ slot_info.__set_slot_id(slot.id());
Review Comment:
[P1] Preserve synthesized slot categories in the phase-two request
An Iceberg metadata column such as `_file` or `_pos` can be selected as a
TopN lazy slot (reduced path inferred from the code: `Materialize(lazy=[_file])
-> TopN -> IcebergFileScan(id, GLOBAL_ROWID)`). This rebuild creates every
non-partition slot with only `is_file_slot=true`. On the V2 path, the missing
`SYNTHESIZED` category makes `_build_projected_columns()` mark the slot as
physical; `TableColumnMapper` then skips the virtual `_file`/`_pos` mapping and
materializes a missing-column default instead of the metadata value. Please
carry the original category through the phase-two request/rebuild, including
slots pruned from phase one, derive `column_idxs` from it, and add a lazy
metadata-column regression test.
--
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]